深入探索量化交易的艺术,我们专注于策略创新、优质社群互动以及交易思路的交流与分享。

本期我们将以图像和文字结合的形式,深入剖析构建一个“高胜率”“短线”商品交易策略的步骤,本次策略以螺纹钢5分钟数据为样本进行开发。虽然该策略同样适用于其他商品品种,但由于不同商品的点价值、波动率、交易成本及活跃度存在差异,因此需要对参数进行调整。值得注意的是,并非所有商品都适用相同的参数设置,这一传统思维定式往往会产生负面影响。

以下是策略构建的四个关键要素:合理的交易条件设置、样本数据的多样性、参数范围的科学性、以及平原参数的使用。本期我们将聚焦于高胜率短线策略的构建,若读者对参数优化感兴趣,可在评论区留言或通过公众号后台联系我们,我们将根据反馈情况考虑推出相关的专题文章。

本期策略采用了“菲阿里四价”——昨日收盘价、昨日最高价、昨日最低价和今日开盘价,这一概念源自日本期货冠军菲阿里的交易体系。我们运用这四个价格点,但并非完全遵循菲阿里的交易规则。

在图表中,我们可以看到上下两条轨道线,即Band_up和Band_dn。若直接根据这些轨道线进行开仓和平仓操作,很可能会导致亏损。有趣的是,我们观察到每个交易日的价格区间宽度并不相同。通过数据分析,我们发现较窄的价格区间往往预示着市场震荡,此时若突破上轨做多或下轨做空,可能会遭遇亏损,即所谓的假突破信号。因此,我们需要定义何为“窄区间”以过滤掉这些信号。

图表中,我们使用红色虚线和绿色虚线来表示上一个交易日的上下轨道。在数据处理上,我们不能直接使用系统函数DATE,因为自夜盘推出以来,一个交易日的数据是从前一晚的夜盘开始计算的,而非当日的早上9点。因此,我们使用自定义函数TrueDate来获取完整的数据日期。

接下来,我们计算新区间的宽度和上一个区间的宽度,并将它们分别赋值给变量HL_band和RHL_band,这些变量将在我们构建开仓条件时使用。

交易条件相对简单:本区间上下轨突破,并附加过滤条件。这一方法简洁而有效,正如我们之前提到的,复杂的条件组合并不总是带来更好的效果,有时甚至会导致过度拟合。

在交易参数中,lastprice代表开仓价格,HL_band代表区间幅度,N是系数。lastprice可以使用lowafter和Highafter,或者用HL_band与ATR相结合来代替,这样的设置可以形成一个吊灯或阶梯状的出场线,简单实用。

短线螺纹交易:打造胜率超60%的高效策略

关于代码实现,网络上有许多现成的模块可供参考。这些模块的编写并无特殊之处,读者可以借鉴使用。接下来,让我们分析交易信号。

图表中的红色框标记了震荡区域,通过我们编写的代码,可以有效过滤这些震荡。然而,不存在百分之百的过滤算法,震荡是市场的一部分,所有的过滤都是相对的。例如,在某些情况下,仍然会有无法过滤的信号或交易亏损的情况,这也是策略真实性的体现。

短线螺纹交易:打造胜率超60%的高效策略

知识点提醒:亏损是交易的一部分,是一种试错成本。只要模型在风险可控的前提下能够长期产生正期望收益,那么就是可以接受的。

SF10策略的绩效表现如下:这是一个趋势跟踪策略,通常趋势策略的胜率在30-50%之间,其重点在于盈亏比、最大回撤和夏普比率。胜率越高,盈亏比通常越低,两者呈反比关系。对于高频交易或震荡策略则另当别论。

绩效图中显示,胜率为61%,平均盈亏比为0.94,这是正常现象。如果胜率降至30-50%,相应的平均盈亏比至少会在2.5以上。交易次数并不频繁,这正是策略的设计初衷,若频繁交易则可能意味着策略设置存在问题。

如果你发现这个策略并不复杂,代码也不多,那是因为重点在于交易条件的合理设置,所有涉及的参数都是基于主观判断,并未经过大量数据优化。若你想尝试其他品种,策略本身没有限制,关键在于合理调整K系数和N系数,以及分段止盈的回撤幅度。

请记住,任何参数都需要设定一个合理的范围,过大的参数会导致交易迟钝,掩盖了真实的权益波动;即使最终收益看似不错,实盘操作可能会很困难。而过小的参数则可能导致交易信号过于频繁,交易成本巨大,实盘操作可能会很糟糕。

在确保交易条件合理的基础上,进行有限范围内的参数优化,并结合样本数据进行优化以获取平原参数。可以参考【SF08】策略:经典KD指标的非常规应用,适用于股指和商品的策略;或者查看魔方量化课程中的进阶篇,了解参数和绩效解读的相关内容。

我们非常欢迎读者在评论区分享自己的观点,我们期待有逻辑、有根据的问题,我们将根据这些问题提供相应的回复。我们支持和鼓励文明交流,对于那些无理取闹、言语粗俗的评论,我们建议取消关注。

最后,本策略仅供学习交流使用,实盘交易的盈亏由投资者个人负责。