核心解答
一个交易想法写成代码以后,回测赚钱并不意味着研究已经完成。
恰恰相反。
第一条盈利曲线出现的时候,真正的验证才刚刚开始。
一、先写假设,再看回测
研究之前先写清楚:
为什么这个信号可能有效?
它依赖趋势还是震荡?
适合什么市场?
在什么情况下应该失效?
如果先看结果,再不停增加条件,很容易把历史噪声包装成一套看起来合理的故事。
二、先做数据审计
不同市场需要检查不同问题。
EA需要考虑:
Tick质量;
点差;
佣金;
执行延迟。
加密货币需要考虑:
手续费;
滑点;
资金费率;
现货与永续差异。
股票需要考虑:
幸存者偏差;
前视偏差;
复权;
财报发布时间;
历史成分股。
数据错误可以制造一个完全虚假的优秀策略。
三、样本内阶段不是为了证明未来
样本内数据主要用于:
开发规则;
理解策略;
寻找参数稳定区。
真正应该寻找的不是收益最高的一个参数点。
而是一片相对稳定的参数区域。
四、Walk-Forward模拟时间向前推进
Walk-Forward可以把历史切成多段。
例如:
先用过去一段时间进行研究或参数选择;
然后在紧接着的未来区间验证;
再向前滚动。
这样更接近真实世界:
你只能用过去的信息决定未来怎么做。
五、严格样本外不能反复修改
一个常见错误是:
样本外结果不好;
回去修改参数;
再看样本外;
继续修改。
这样所谓“样本外”最终也会被研究人员看熟。
正确做法是:
规则冻结;
测试;
记录结果。
如果失败,就承认这个版本没有通过。
六、压力测试故意让环境变差
可靠策略不应该只在最理想条件下工作。
可以故意:
增加手续费;
增加滑点;
改变成交延迟;
扰动部分交易;
测试不同市场阶段;
模拟连续亏损。
目的不是让报告难看。
而是提前知道策略的安全边界。
七、Monte Carlo看的是风险分布
一条历史收益曲线只有一种交易顺序。
Monte Carlo可以通过不同方式扰动收益路径,观察:
可能出现多大的回撤;
最长连续亏损有多长;
极端结果分布怎么样。
它不能预测未来。
但可以帮助研究人员理解“历史这一条路径可能有多幸运”。
八、最后才是小规模真实环境
所有历史测试通过后,还要验证:
真实API;
真实订单;
真实滑点;
服务器稳定性;
异常处理;
断线恢复;
风险限制。
只有这些都能正常工作,才进入下一阶段。
结论
真正专业的量化研究并不是追求:
最高年化;
最高胜率;
最好看的净值曲线。
而是不断尝试证明自己的策略可能是错的。
如果经历多层测试以后仍然保持稳定,它才更值得继续研究。
这套方法同时适用于EA、加密货币量化和股票量化。
继续阅读相关研究
继续了解这个主题
信号没有明显变化,实盘结果却比回测差很多,问题往往不只在策略,而在滑点、点差、延迟、费用和参数过拟合。
阅读全文 →加密货币量化BTC量化回测最会骗人的,往往不是胜率,而是你漏算的成本一个BTC策略回测看起来赚钱,加入手续费、滑点、资金费率和真实成交以后,结果可能完全不同。
阅读全文 →股票量化股票量化回测最隐蔽的坑:今天看到的股票池,过去并不存在如果拿今天仍然上市的公司去回测十年前的策略,可能已经在无意中删除了历史里的失败公司,这就是幸存者偏差。
阅读全文 →加密货币量化Walk-Forward + Monte Carlo:一个币圈策略上线前到底要过几关?单次历史回测只是一条过去路径。准备上线的策略还应经过Walk-Forward、严格样本外、成本压力和Monte Carlo等验证。
阅读全文 →淄博卓亚网络科技服务有限公司
电话:15269365953
地址:山东省淄博市张店区体育场街道办事处华光路2号泽泉消防市场三楼S18