交易系统 · 第 12 节

程序化交易入门

建立你自己的期货系统 · 第 12 页。

一句话速览 程序化能解决执行一致性,不能解决策略有效性。以及它在期货上要额外处理的那些细节。
这节课要你带走的 看完你知道程序化能解决什么、不能解决什么、期货程序化的五个技术要点,以及那个必须有的停机开关。

程序化交易在期货上比在股票上更常见,原因很实际: T+0、双向、多品种、还有夜盘,人工盯不过来。

这一节讲它能解决什么、不能解决什么。

它解决的:执行一致性

这是程序化唯一确定的好处。

心理篇讲过:下决心的你和执行的你不是同一个人。 程序不会因为浮亏而犹豫,不会因为连赢而加仓, 不会在凌晨两点因为困倦而看错方向。

还有两个附带好处:可以同时盯多个品种可以覆盖夜盘全时段

它不解决的:策略有效性

一个负期望的策略,程序化之后只会亏得更快更稳定。

这一点听起来显然,但实践中很多人把「策略不赚钱」 误诊成「执行不到位」,然后去做程序化, 结果是把同一个错误执行得更彻底了。

期货程序化的几个技术要点

要点要处理什么
合约切换什么时候移仓、移仓时持仓怎么处理、信号要不要重算
数据源实盘用真实合约,而回测可能用的是连续合约
交易时段夜盘、日盘、休市,程序要知道什么时候能下单
断线重连网络中断时持仓怎么办、重连后怎么对账
风控开关单日亏损触线时程序要能自己停下来

第二行是最容易出问题的:回测和实盘用了不同的数据源, 于是实盘的信号跟回测对不上。

最重要的一个开关

程序必须有一个能自己触发的停机条件。

比如:单日亏损超过 X% 就停止开新仓、 连续 N 笔亏损就停机、或者出现异常数据(价格跳变超过某个阈值)就停机。

理由很直接:程序不会自己怀疑自己。 它会在行情结构变化、数据出错、或者策略失效的情况下, 继续忠实地执行错误的规则。

从哪里开始

如果你想做程序化,一个务实的顺序:

一是先把规则写清楚。能写成程序的前提是规则已经完全可判定。 很多人在这一步就发现自己的规则其实是模糊的。

二是先做半自动。程序只负责计算信号和提醒, 下单还是手动。这样能验证信号逻辑,风险可控。

三是小资金全自动。用很小的资金跑一段时间, 重点观察实盘信号跟回测信号是否一致,而不是赚了多少。

四是逐步加资金。而且每次加完都要重新观察一段时间。

程序化解决执行一致性,不解决策略有效性。一个负期望的策略,程序化之后只会亏得更快更稳定。

今天就做这一件事

把你的规则写成伪代码,看能不能写完。写不完的地方,就是规则还模糊的地方。

带走这一条:程序化解决执行一致性,不解决策略有效性。而程序不会自己怀疑自己,所以必须有一个能自己触发的停机条件。