程序化交易入门
一句话速览
程序化能解决执行一致性,不能解决策略有效性。以及它在期货上要额外处理的那些细节。
这节课要你带走的
看完你知道程序化能解决什么、不能解决什么、期货程序化的五个技术要点,以及那个必须有的停机开关。
程序化交易在期货上比在股票上更常见,原因很实际: T+0、双向、多品种、还有夜盘,人工盯不过来。
这一节讲它能解决什么、不能解决什么。
它解决的:执行一致性
这是程序化唯一确定的好处。
心理篇讲过:下决心的你和执行的你不是同一个人。 程序不会因为浮亏而犹豫,不会因为连赢而加仓, 不会在凌晨两点因为困倦而看错方向。
还有两个附带好处:可以同时盯多个品种、 可以覆盖夜盘全时段。
它不解决的:策略有效性
一个负期望的策略,程序化之后只会亏得更快更稳定。
这一点听起来显然,但实践中很多人把「策略不赚钱」 误诊成「执行不到位」,然后去做程序化, 结果是把同一个错误执行得更彻底了。
期货程序化的几个技术要点
| 要点 | 要处理什么 |
|---|---|
| 合约切换 | 什么时候移仓、移仓时持仓怎么处理、信号要不要重算 |
| 数据源 | 实盘用真实合约,而回测可能用的是连续合约 |
| 交易时段 | 夜盘、日盘、休市,程序要知道什么时候能下单 |
| 断线重连 | 网络中断时持仓怎么办、重连后怎么对账 |
| 风控开关 | 单日亏损触线时程序要能自己停下来 |
第二行是最容易出问题的:回测和实盘用了不同的数据源, 于是实盘的信号跟回测对不上。
最重要的一个开关
程序必须有一个能自己触发的停机条件。
比如:单日亏损超过 X% 就停止开新仓、 连续 N 笔亏损就停机、或者出现异常数据(价格跳变超过某个阈值)就停机。
理由很直接:程序不会自己怀疑自己。 它会在行情结构变化、数据出错、或者策略失效的情况下, 继续忠实地执行错误的规则。
从哪里开始
如果你想做程序化,一个务实的顺序:
一是先把规则写清楚。能写成程序的前提是规则已经完全可判定。 很多人在这一步就发现自己的规则其实是模糊的。
二是先做半自动。程序只负责计算信号和提醒, 下单还是手动。这样能验证信号逻辑,风险可控。
三是小资金全自动。用很小的资金跑一段时间, 重点观察实盘信号跟回测信号是否一致,而不是赚了多少。
四是逐步加资金。而且每次加完都要重新观察一段时间。
程序化解决执行一致性,不解决策略有效性。一个负期望的策略,程序化之后只会亏得更快更稳定。
做
今天就做这一件事
把你的规则写成伪代码,看能不能写完。写不完的地方,就是规则还模糊的地方。
带走这一条:程序化解决执行一致性,不解决策略有效性。而程序不会自己怀疑自己,所以必须有一个能自己触发的停机条件。