运维开发网

Python量化交易-Dual Thrust策略

运维开发网 https://www.qedev.com 2021-04-08 21:01 出处:51CTO 作者:mob604756f5460a
Dual Thrust策略     Dual Thrust策略是一种趋势跟踪系统,属于日内交易策略。该策略由Michael Chalek 在20世纪80年代开发,曾被Future Thruth杂志评为最赚钱的策略之一。    Dual Thrust系统具有简单易用和适用度广的特点,其思路简单且参数少,配合不同的参数、止盈止损和仓位管理可以为投资者带来长期稳定的收益。而且该策略适用品种较多,
  •     Dual Thrust策略 

    Dual Thrust策略是一种趋势跟踪系统,属于日内交易策略。该策略由Michael Chalek 在20世纪80年代开发,曾被Future Thruth杂志评为最赚钱的策略之一。

    Dual Thrust系统具有简单易用和适用度广的特点,其思路简单且参数少,配合不同的参数、止盈止损和仓位管理可以为投资者带来长期稳定的收益。而且该策略适用品种较多,被投资者广泛应用于股票、货币、贵金属、债券、能源及股指期货市场等。在Dual Thrust交易系统中,对于震荡区间的定义非常关键,这也是该交易系统的核心。

  Dual Thrust在Range的设置上,引入前N日的四个价位,Range = Max(HH-LC,HC-LL) 来描述震荡区间的大小。

  其中HH 是N日High的最高价,LC是N日Close的最低价,HC是N日Close的最高价,LL是N日Low的最低价。这种方法使得一定时期内的Range相对稳定,可以适用于日间的趋势跟踪。

        Dual Thrust对于多头和空头的触发条件,考虑了非对称的幅度,做多和做空参考的Range可以选择不同的周期数,也可以通过参数K1和K2来确定。具体分为两步来实现:

第一步:计算相关参数,得到上轨Buyline 和下轨Sellline:

N日High的最高价HH, N日Close的最低价LCN日Close的最高价HC,N日Low的最低价LLRange = Max(HH-LC,HC-LL)BuyLine = Open + K1*RangeSellLine = Open - K2*Range

第二步:交易逻辑:

        当价格向上突破上轨时,如果当时持有空仓,则先平仓,再开多仓;如果没有仓位,则直接开多仓;

  当价格向下突破下轨时,如果当时持有多仓,则先平仓,再开空仓;如果没有仓位,则直接开空仓;

  当K1时,多头相对容易被触发,当K1>K2时,空头相对容易被触发。因此,投资者在使用该策略时,一方面可以参考历史数据测试的最优参数,另一方面,则可以根据自己对后势的判断,或从其他大周期的技术指标入手,阶段性地动态调整K1和K2的值。

  • 策略优化:

         k1和k2的不同大小使得上下轨线的位置产生变化,触发产生信号的时间和价格也不同。不同的期货品种所适合的参数也表现不一。为了体现出Dual Thrust 策略的历史表现,我们以全样本数据集进行样本内测试。经过策略回测,得到有效参数。

扫码领视频副本.gif

0

精彩评论

暂无评论...
验证码 换一张
取 消

关注公众号