手把手教你写一个商品期货多品种Dual Thrust策略
Dual Thrust 是一个经典的趋势策略,众所周知,趋势策略在震荡行情下表现很不好。 如果改造成一个多品种的策略,是否会有好的表现呢?
摘要
我们无非是需要把 Dual Thrust 策略的逻辑迭代 到每个设置的合约下去执行。 这样我们就要先构造策略要执行哪些合约,并且设置每个合约在执行Dual Thrust 策略逻辑时的参数。 不了解 Dual Thrust 策略的小伙伴可以先看下这个策略:
这样我们把策略的参数写在策略代码中,当然这样是为了方便理解策略参数在代码中的体现形式,在自己实际开发策略时也可以把策略参数配置成为策略界面上的参数,这里为了让策略和界面无关,索性直接把策略参数写入代码中。
- manager.OpenShort : 开空仓
- manager.OpenLong : 开多仓
- manager.Cover : 平仓
- State : 持仓状态
- LastBarTime : K线数据中,最后一个K线bar的时间戳
- UpTrack : 上轨数值
- DownTrack : 下轨数值
可以看到我们用了一个函数封装了交易逻辑,函数名为: DualThrustProcess 。 函数参数就传入 我们上边定义好的 参数数组 _Symbols 这个函数调用就写在上文「策略架构」中讲的主循环中。
这样一个多品种的 Dual Thrust 策略就完成了,当然为了学习主要逻辑,这个策略减去了很多状态信息,日志输出, 有兴趣的可以增加上收益统计,图表显示,状态栏实时显示等功能。 在发明者量化交易平台上开发,改写策略,是非常便捷、迅速的。 各种策略思路、创新的交易方法等你来发现、实现。