半自动化交易系统(六)
本文是交易系统系列的第六篇,主要记录近期在期权策略和系统功能上的优化。我把一部分组合功能做了整合, 重点是我常用的牛市价差;另外,也把出错订单单独记录下来,方便后续复盘和优化。
组合订单的实现
如前文《期权策略-变种比例价差》所述,我目前主要做科创50ETF期权的价差策略。单一标的的好处是,页面和流程都能做得更聚焦、更高效。 在上一篇《半自动化交易系统(五)》里,我提到过按月份做持仓管理。每个月的仓位,基本都由单腿期权和比例价差这类组合构成。

我发现自己高频会用到价差组合的构建和释放。比如创建一个价差时,每次都要做这三步:
- 买入低行权价看涨期权
- 卖出高行权价看涨期权
- 构建价差组合
实现细节
这个过程完全可以自动化,而且能尽量规避短时价格波动。流动性足够好的时候,滑点也能控制在可接受范围内。 所以我把这三个步骤整合成了一个独立服务,做成了一个非常简单的组合订单,结构大概如下:
1 | [ |
这类指令会被放进消息队列,由单独服务消费,再直接和交易系统交互。 我这里为了尽快成交,直接挂对手方一档。科创50ETF期权流动性本身也不错,通常几秒内就能完成交易, 实际滑点非常小,执行效率和质量都比较高。
注意:这里用的是对手方一档,也就是优先保证立刻成交的价格。如果合约流动性不好,这样做风险会很高,利润空间也会被明显压缩。
组合订单的管理
现在 AI 写代码确实很好用。需求说清楚后,页面雏形很快就能出来;我自己再把前后端对接和细节收一收, 基本就可以快速上线。下面是组合订单管理页面的截图:

我还加了出错订单的“分步骤重试”能力。卡在哪一步都没关系,人肉检查一下,确认没问题就从下一步继续执行。 后面如果再接 AI 做检查,会更省事。甚至当开仓单子很多时,也能靠这种组合订单形式批量处理, operator 在开平仓上的手工工作量会小很多。
价差移仓
做完这套组合订单后,我开始更系统地思考一个问题:不同月份之间平移牛市价差,成本到底有多高, 以及是否值得移仓。比如我持有的是由虚值看涨构成的牛市价差,如果当月机会已经不大, 那把整个组合顺延一个月,盈利概率会不会更好?
因此我也做了一个图表,持续记录我关注的价差在不同月份的价格,用来评估“为了维持盈利机会,我需要支付多少移仓成本”。

只要合约时间价值没有被完全吃掉,移仓成本通常都比较低,大多数情况下在 100 元以内。 也就是说,花不超过 100 元,通常就能把一个临近到期的价差组合平移到后一个月,或者换到更低行权价, 从而明显提升盈利概率。如果再叠加后续可卖出的单腿期权,这项成本并不高,但对胜率和收益改善很明显。
订单记录
股票交易的订单记录相对简单,因为频率低。但期权不一样,一天几十单并不夸张。 所以我想把订单“日历化”,方便后续分析交易习惯和月度盈亏。 于是我也做了一个订单记录页面,直接落每一笔订单的细节。

其中绿色块表示交易日。点进某一天,就能看到当天全部订单及状态,这样交易习惯会非常直观。
总结与展望
我一直把期权看成一种“给市场打工”的工具。只要愿意做风险可控的套利, 就有机会在这个市场里持续、稳定地赚钱。 这和股票不太一样,股票很多时候要同时承受系统性风险和个股风险。
这篇文章里介绍的组合订单功能,本质上就是为了更高效地执行价差策略和移仓操作, 让我能更稳定地“在市场里打工赚钱”。 你也能看到,我的大多数期权操作并不依赖方向预测。市场按预期走会赚得更多; 不按预期走,也不至于失控,我依然保留下一月份继续操作的权利。
另外,我做这些事情的目标也很明确:把操作流程标准化,最后交给其他人或 AI 去执行。