我们致力于量化策略开发,高质量社群和交易思路分享等相关内容。在本期策略中,我们将以图文方式讲解如何构建一个“高胜率”的“短线”商品策略,以螺纹钢5分钟为数据样本进行开发。当然,这个策略也可以应用于其他品种,但由于品种之间的点价值、波动率、交易成本和活跃程度的不同,需要对参数进行调整。
需要注意的是,不一定要用统一的参数组来适用于所有品种。这是传统教条的理念,往往负作用大于正作用。关于参数优化,我们主要关注以下四个方面:
1. 交易条件设置的合理性;
2. 样本数据多样性;
3. 参数范围的科学性;
4. 使用平原参数。
以上四点,我们不在这里一一展开,因为本期内容是如何构建一个高胜率的短线策略。如果读者有兴趣探究参数优化的内容,可以在评论区或者公众号后台留言,我们会根据人数多少考虑出一期参数优化的专题贴。
在指标计算部分,我们采用了昨收、昨高、昨低、今开这四个价格,并称为菲阿里四价。它由日本期货冠军菲阿里实盘采用的主要突破交易参照系。我们这里只是使用这四个价格,并非完全按照非阿里交易的规则。通过观察发现,每一天的区间宽窄程度不一样,通过数据统计我们发现较窄的区间往往意味着震荡。如果这时突破上轨开多,下轨开空就会产生穿头破脚的亏损交易,也就是假突破信号。
那么,我们想过滤掉这些信号,就需要定义出哪些是“窄区间”。图中我们用红色虚线和绿色虚线表示出上一个区间的上下轨道。过滤原理是新区间宽度小于上一个区间的宽度。代码实现如下:
√知识点:这里有一个需要注意的地方,不能直接使用DATE这个系统函数。自从有了夜盘以来,一日BAR线是从作晚的夜盘开始,而不是今早9点开始。所以我们使用用户函数TrueDate来取得完整的数据日期。
计算出新区间的宽度和上一个区间的宽度,分别赋值到变量HL_band和RHL_band里面。我们在构建开仓条件时会用到这两个变量。交易条件非常简单,就是本区间上下轨突破+过滤条件。
√知识点:虽然简单,但有效。这就是我们前面提到的交易条件的合理性。过多的条件组合效果不一定好,还有可能存在条件过度拟合的问题。
接下来是移动出场的部分:lastprice是开仓价格;HL_band是区间幅度;N是系数;具体实现如下:
最后总结一下,本期策略主要以图文方式讲解如何构建一个“高胜率”的“短线”商品策略,并介绍了交易条件的合理性、样本数据多样性、参数范围的科学性和使用平原参数等方面的知识。同时还讲解了过滤条件设定、开仓条件、移动出场及分段止盈等内容。希望对大家有所帮助!
以下是重构后的内容:
分段止盈:
关于这一段的代码,网上有现成的代码模块。是一个简单的功能模块,没有什么特殊的写法,大家可以拿来参考使用。
交易信号:
我们看到图中红色框是震荡部分,通过以上代码的编写,实现了比较好的震荡过滤效果;√知识点:那么是不是百分百过滤呢?当然不是,世界上也不存在这种算法,震荡是行情的一部分,所有的过滤都是相对的。例如下图:也有过滤不了和交易亏损的部分,或者是判断错误的信号。这也是策略真实性的表现;√知识点:亏损是交易的一部分,是一种试错成本。只要是在风险可控的前提下,模型长时间产生的是正期望收益,那就OK。
SF10策略绩效:
首先你要明白这是一个趋势策略,趋势策略的胜率往往是30-50之间,趋势策略的重点是盈亏比,最大回撤,夏普率,胜率。 胜率越高,盈亏比就越低,胜率与盈亏比是成反比的,如果是高频或者震荡策略那就另当别论。绩效图中的胜率是61%,平均盈亏比是0.94,这是正常现象。如果胜率我们降低到30-50之内,那么对应的平均盈亏比最少也会在2.5以上。交易次数并不频繁,这就对了,这个策略本来就是过滤信号的,如果频繁交易反而是不正常了。
如果你阅读完上面的内容,你发现这个策略并不复杂,代码也不多。重点在于交易条件设定的合理性,其中涉及的参数都是主观设定,并没有参与海量优化。如果你想试试其他品种,策略是没有任何限制的,关键是你要合理的调整里面的俩个核心参数K系数和N系数,还有就是分段止盈的回撤幅度。切记任何参数都要有一个主观的合理范围,过大的参数造成交易迟钝,掩盖了真实的权益浮动,即使最终收益很漂亮,但实盘会很难受。过小的参数会造成交易信号频繁,交易成本巨大,实盘会很惨。√
重点知识:
在交易条件设定合理的前提下进行有限范围内的参数优化,同时要分段采用样本数据进行优化,取得平原参数。可以参考一下【SF08】:经典KD指标另类使用有奇效,股指商品双版本策略;或者可以看一下魔方量化课程里的进阶篇关于参数和绩效解读这一块内容。
非常感谢您的提问。我们非常欢迎您在评论区发表自己的观点和看法,但是请您提出的问题有完整的逻辑或者有理有据,这样我们才能更好地为您解答。同时,为了保持良好的交流氛围,我们不支持任何形式的无脑喷子、粗言鄙语等不良行为。如果您有任何问题需要咨询,请随时联系我们。
此外,我们想提醒您一下,本策略仅供学习和交流使用,实际操作中的盈亏风险需要投资者个人承担。如果您对这个问题感到困惑或者需要更多的解释,请告诉我。