在自建私有量化交易平台中,策略开发与回测是承上启下的核心环节:
向上承接数据系统(行情、指标、特征)
向下决定是否值得进入实盘执行
一个成熟的平台,并不是“策略跑得快”,而是策略逻辑清晰、可复现、可验证、可淘汰。
1. 策略开发
1.1 用编程语言实现交易逻辑
私有量化平台的策略开发,本质是把交易思想工程化。
常见技术选型:
Python:主流选择,生态完整(pandas / numpy / ta-lib / backtrader 等)
R:偏统计建模与学术研究
C++ / Java:高频或低延迟系统中使用
在平台设计上,策略通常以以下形式存在:
单独策略模块 / 插件
统一接口(如
on_bar、on_tick、generate_signal)与回测引擎、实盘引擎共用一套策略代码(强烈推荐)
示例逻辑结构(抽象):
输入:行情数据 + 指标数据
↓
信号生成(买 / 卖 / 空仓)
↓
仓位管理(开仓、加仓、减仓、平仓)
↓
风控约束(最大仓位、止损、止盈)
↓
输出:标准化交易指令
关键原则:
策略代码 ≠ 一次性脚本
策略代码 = 可长期维护、可回测、可实盘复用的模块
1.2 确保规则可量化、可复现
这是策略是否“合格”的分水岭。
合格策略必须满足:
所有条件都可被代码明确表达
不依赖主观判断(如“感觉”“大概”“明显”)
给定同样的数据,任何时间回测结果一致
❌ 不可量化示例:
“股价处于相对低位”
“成交量明显放大”
“趋势已经走坏”
✅ 可量化示例:
close < MA20 * 0.95volume > MA(volume, 20) * 1.5MA5 < MA20 且 MA20 斜率为负
在自建平台中,策略是否标准化,直接决定平台能否规模化运行。
2. 回测设计
回测不是为了证明策略“很厉害”,而是为了尽早发现策略的致命缺陷。
2.1 历史数据覆盖市场不同周期
回测数据必须覆盖:
牛市
熊市
震荡市
极端行情(暴涨、暴跌)
否则回测结论毫无意义。
建议做法:
至少 5–10 年历史数据
包含不同宏观环境
如果是 A 股,尽量覆盖:
大牛市(如 2014–2015)
长熊阶段
最近几年结构性行情
原则:
在“难赚的钱阶段”还能活下来的策略,才值得进入实盘。
2.2 考虑交易成本与滑点
这是很多回测“看起来很美”的根源问题。
必须纳入:
手续费(双边)
印花税(若适用)
滑点(固定 or 按成交额比例)
建议:
手续费略高于实际(保守)
滑点不要设为 0
高频策略要特别严格
如果一个策略:
在不计成本时赚钱
一加成本立刻变亏
👉 那说明策略本身没有统计优势。
2.3 避免未来数据泄露(极其重要)
未来数据泄露(Look-Ahead Bias)是回测中的“隐形杀手”。
常见错误:
使用当日收盘价生成当日交易信号并成交
使用未来财报数据回测历史策略
技术指标计算时不注意窗口对齐
正确做法:
信号生成只能使用“已知数据”
T 日收盘生成信号 → T+1 日成交
所有指标严格向后对齐
一句话:
回测中只允许你“当时能知道的东西”
3. 指标评估
回测结果不是看一条收益曲线,而是看一组指标的整体质量。
3.1 年化收益率
衡量策略的赚钱能力,但绝不能单独看。
高收益 + 高风险 = 未必可用
稳定中等收益,往往更具实盘价值
3.2 最大回撤
量化交易中最重要的指标之一。
描述资金曲线最大“痛苦程度”
决定你能否在实盘中坚持执行
经验参考:
回撤 > 40%:多数人无法长期承受
回撤可控,才有长期复利可能
3.3 夏普比率、盈亏比
夏普比率:单位风险下的收益
盈亏比:赚一次 vs 亏一次的比例
注意:
高胜率 ≠ 好策略
低胜率 + 高盈亏比,反而可能更稳健
3.4 策略稳定性
这是自建平台特别要关注的一点。
常见验证方式:
不同时间段回测
不同参数组合
不同市场环境
如果策略:
只在某一年有效
对参数极度敏感
👉 大概率是过拟合。
4. 回测的真正目的
回测不是为了证明策略完美,而是为了暴露问题。
成熟的量化平台,回测阶段通常用于:
发现逻辑漏洞
验证风险是否可控
淘汰不可实盘化的策略
一句非常重要的话:
“能通过回测的策略不一定能赚钱,但通不过回测的策略一定不能进实盘。”
评论区