Python量化策略:Dual Thrust日内交易策略
免责声明:本文所有内容仅用于交流学习,不构成任何投资建议!投资有风险,入市需谨慎!
策略介绍
Dual Thrust(双重推力)是一种经典且广泛使用的日内趋势跟踪交易策略,由Michael Chalek在20世纪80年代开发。其核心思想是通过动态计算价格波动区间,设定上下两个触发轨道,捕捉市场在交易日内的突破行情,实现“追涨杀跌”。该策略不预设多空方向,完全根据开盘后价格相对于波动区间的突破来决定交易信号,具有系统化、规则清晰的优点。
策略核心逻辑与计算步骤如下:
1、计算关键价格:首先取前N个交易日(如5-20日)的数据,计算四个关键价:最高价(H)、最低价(L)、收盘价(C)和前一个交易日的开盘价(O)。通常使用前一日的收盘价作为当前交易日的重要参考。
2、确定波动区间:
计算两个范围值:
范围1:H - C (昨日最高价减收盘价)
范围2:C - L (昨日收盘价减最低价)
取两者中的较大值,再与 H - L(昨日全日波幅)进行比较,最终确定一个“波动值”(Range)。Range = Max( H - C, C - L, H - L )。更常见的简化公式是:Range = Max( H - C, C - L )。
3、设定多空触发线:
上轨(多头触发线):今日开盘价 + K1 * Range
下轨(空头触发线):今日开盘价 - K2 * Range
其中,K1和K2是两个核心参数,由交易者根据市场波动性和交易风格自行设定(常见范围在0.5-0.8之间)。K1和K2可以相等,也可以不等(例如K1稍小于K2以使做多条件更严格)。这两条轨道在开盘时即确定,日内保持不变。
4、生成交易信号:
买入做多:当盘中价格向上突破上轨时,立即买入开仓。
卖出做空:当盘中价格向下跌破下轨时,立即卖出开仓。
策略通常附带简单的出场规则,例如在当日收盘前平仓(纯日内),或设置固定的止损止盈点。
策略特点与评价:
趋势跟随性:在单边趋势明显的交易日,策略能有效抓住突破动能,获利潜力大。
参数敏感:K1和K2的取值至关重要,直接影响交易频率和胜率。较小的参数会导致信号频繁、易受噪音干扰;较大的参数则信号稀少,可能错过机会。
市场适应性:在震荡市中,价格频繁上下假突破轨道,会导致连续的小额亏损(“拉锯”现象)。因此,该策略并非万能,需结合市场状态判断使用。
风险控制:作为日内策略,隔夜风险被规避,但仍需设置严格的日内止损。
总之,Dual Thrust是一个结构优美、逻辑简单的定量突破策略。它的效力高度依赖于参数的优化、交易品种的波动特性以及交易者严格的执行力。在实际应用中,常作为多策略组合的一部分,或需结合其他过滤器(如开盘后等待时段、量能确认)来提高胜率。
策略实现
【 扫描文末二维码加入星球获取完整源码 】
源码


策略参数

回测效果




我们致力于人工智能、量化交易领域前沿研究,分享前沿论文、模型代码、策略实现。如有相关需求,请私信与我们联系。
请加微信“LingDuTech163”,或公众号后台私信“联系方式”。
关注【灵度智能】公众号,获取更多AI资讯。