期权回测架构的尝试

      我想实现,加载主连rb888,实现回测期权的目的。

       架构优缺点:架构优点是可以拉长测试时间;同时期货价格也比较准确。架构的缺点:主力合约被切换后,还有一段时间可以交易。在这个架构内,只能交易是主力的那个时间段。


       实现思路如下:

一、测试环境:交易策略加载主连rb888。

二、策略刚开始运行时,判断当时主力合约,比如rb2505。然后动态加载rb2505相关的期权合约。(多图层运行,一个888合约,带n个call,n个put合约)

三、策略进入交易代码,交易rb2505期权。

四、价格波动大的时候,有新的期权合约出现,则继续加载。

五、判断主力合约是否变换。如果变化了,在没有持仓的情况下,卸载rb2505期权。加载rb2510期权。

六、继续下一阶段交易,交易rb2510期权。


       一些涉及的技术点和代码如下:

1、判断主力合约:基础数据 dic> MainContract("TB_ROLLOVER_v2");

2、动态加载期权合约:subscribeBar()-订阅bar行情。

3、动态卸载UnsubscribeBar-取消订阅bar行情


       搭建失败的原因:subscribeBar()订阅bar行情,这个函数运行后,会将整个程序重新运行ReRun()。之前时间段的交易数据就全部破坏掉了。无法达到连续回测的目的。

       解决方法:还没找到。有实现方法吗?或者更好的方法?

期权是否可回测
如何获取期权合约的到期日期?
卖方期权的 函数
实盘和回测的问题
关于 模型的 回测 问题
萌新尝试策略选股(附选股结果)
多图层期权合约平仓失败
期权
回测的手续费
a函数获期权的报价问题

回测数据自然要准备好数据,期权的合约多 自然就是这种结果

你要么一开始就订阅号全部,不存在中途订阅

和合约订阅机制有关系。

假如订阅新合约,不需要restart,很多问题就解决了。

相当于U盘,可以“热拔叉”,而不是一定要电脑重启才可以用。

期权是没办法刚开始就全部订阅的。

1、行情激烈变化时,会随时有新的期权合约出现。

2、主力合约变化,期权也变了。像上海的合约、股指,一月一变。

能理解,实现非常困难。感谢回复。🙏

实现思路不难

弄个二维数组获得周期内各主力合约,并一次性订阅期权

不要换月时候restart

只不过有几个问题

一是数据源订阅量是有限制的

二是要设计逐bar对应交易标的期权算法

总体来说

编码复杂度上升

不想写

这个思路真没想到,一次性全部订阅出来。

确实可以解决回测问题!高!实在是高!

等你好消息🤝

但是


告诉你一个不好的消息

期权历史数据有限

股指期权25年之前的获取不到

商品我没试过


不知道是没有数据

还是需要续费获得


我是不想写啊

就等你弄好了共享

5m切片我试过

没有25年前的数据


所以

回溯方案自己可以做

但是没有数据

所以我放弃了一系列函数的编写计划😂

我也不打算写了。平台陆续会开发出功能来的,现在写了也是白写。

现在想着,用最简单的方式,实现实盘。

期权的博弈还没有白热化,先走起来。