很多人以为,一个量化交易系统会随着时间越来越复杂。
事实上,我做的事情刚好相反。
过去两年,我一直在删代码。
删掉那些看起来很聪明,但实际上没有价值的逻辑。
删掉那些只在历史数据里表现优秀,却经不起实盘验证的策略。
删掉那些让我自己半年后都看不懂的代码。
程序员有一句话,我一直很认同:
最好的代码,不是写出来的,而是删出来的。
后来我发现,交易系统也是一样。
刚开始研究量化的时候,我特别兴奋。
写了一个策略。
回测一年,收益不错。
我觉得自己可能找到了一条正确的路。
结果放到更多历史数据里重新测试,结果完全变了。
再换一个时间段,又变了。
后来我终于明白了一件事。
很多策略,并不是有效。
只是刚好适合那一段行情。
如果把历史数据当成答案,那程序迟早会在未来交学费。
从那以后,我做策略有了一个原则:
宁可少赚一点,也不要只在历史里赚钱。
而是自己太想找到规律。
这是做数据分析最容易犯的错误。
当你坚信一个想法的时候,大脑会下意识寻找支持它的证据。
可真正的数据分析,不应该证明自己。
而应该不断推翻自己。
所以后来,每写完一个策略,我都会问自己几个问题。
如果把时间往前推两年,它还能跑吗?
如果市场突然进入震荡,它会怎么样?
如果波动率突然翻倍,它还能正常运行吗?
如果这些问题没有答案,我就不会急着上线。
以前,一个策略收益不好,我第一反应就是改参数。
后来发现,这是一个坏习惯。
参数可以优化。
但市场不会按照参数运行。
如果一个系统必须依赖非常精准的参数才能赚钱,那说明它本身就不够稳定。
真正好的策略,应该允许一定程度的误差。
就像一个优秀的软件。
不会因为用户多点了一次按钮就崩溃。
也不会因为网络慢了一秒就停止运行。
交易系统,也应该有这种容错能力。
很多朋友问我,为什么程序员喜欢研究量化。
我的答案一直没变。
因为本质太像了。
开发软件,是把复杂的问题拆解成一个个可以解决的小问题。
研究交易,也是一样。
行情为什么会这样?
数据有没有规律?
策略为什么失效?
风险来自哪里?
所有问题,都可以拆开分析。
然后再一步步解决。
我一直相信,优秀的交易系统,不是灵光一现写出来的。
而是无数次测试、修改、推翻之后留下来的结果。
很多用户问我:
"为什么又更新版本了?"
其实很多更新,大家根本感觉不到。
不是增加了多少新功能。
而是修复了一些边界情况。
优化了一些执行细节。
降低了一些特殊行情下的风险。
作为程序员,我更在意系统是否稳定,而不是版本号是否漂亮。
魔方量化(CubeQuants)从来不是一个完成品。
它更像一个持续成长的项目。
市场每天都在变化。
系统也必须不断学习和迭代。
这也是软件开发最基本的思维。
第一,相信数据。
第二,相信长期。
短期行情可以有运气。
短期收益也可能有偶然。
但把时间拉长之后,真正留下来的,一定是那些经得起验证的东西。
代码如此。
策略如此。
做人做事也是如此。
有人喜欢把量化交易说得很神秘。
在我眼里,它其实没有那么复杂。
它只是把程序员解决问题的方法,应用到了交易市场。
收集数据。
提出假设。
验证结果。
不断迭代。
循环往复。
直到系统越来越稳定。
我始终觉得,真正优秀的量化系统,不是拥有最多的策略,而是拥有最少的漏洞。
而我每天写下的每一行代码,最终目的都只有一个:
让系统比昨天更可靠一点,让交易比昨天更理性一点。
这也是我一直坚持开发魔方量化(CubeQuants)的原因。
No comments yet.
Size: 350×600 px
Daily Traffic: > 1,000 UV
Price: $10 / month
Visible on all pages, ideal for targeted brand exposure.
Contact Us