SF23 | 朴实无华的Dual Thrust策略长期保持正期望收益

 

  公众号致力于分享量化策略,培训视频,Python,程序化交易等相关内容

一、Dual Thrust策略介绍

Dual Thrust,由Michael Chalek在20世纪80年代开发,曾被FutureTrust杂志评为最赚钱的策略之一。Dual Thrust系统策略十分简单,思路简明,但正所谓大道至简,该策略适用于股票、期货、外汇等多类型市场,如果配合上良好的资金管理和策略择时,可以为投资者带来长期稳定的收益。

Dual Thrust是典型的区间突破型策略,以今日开盘价加减一定比例的N周期内的价格振幅(Range),确定上下轨;

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

具体计算过程如下:

N日High的最高价HH, N日Close的最低价LC;

N日Close的最高价HC,N日Low的最低价LL;

Range = Max(HH-LC,HC-LL)

上轨(upperLine )= Open + K1*Range

下轨(lowerLine )= Open + K2*Range

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

(2)当价格向下突破下轨时,如果当时持有多仓,泽县平川,再开空仓;如果没有仓位,则直接开空仓;

二、CTA策略改进

默认的Dual Thrust策略是一个收盘清仓的交易模式,这种模式在国内商品上的表现并不佳,所以还是要以抓住大趋势为主。我们对Dual Thrust策略加工改进一下看看结果如何。

趋势判断

Dual Thrust策略本身不具备趋势判断的功能,只是计算日内的区间。为了让它可以判断方向,抓住主要趋势,我们需要写一个趋势判断的代码:

condRHL=HL<>HL[1];  If(condRHL)  {
   
       R_HL=HL[1];    X=X+1;    sumAG=sumAG+HL[1];    If(X>2)    {
   
         HLAverage=sumAG/X;      sumAG=0;      X=0;    }  }

图中的红色线就是我们的趋势线,在HLAverage之上做多,之下做空;

然后在加入移动止盈和止损。

没了,就是这么简单。

我们来看看绩效:

螺纹:

焦炭:

铁矿:

PP:

甲醇:

动力煤:

苹果:

其他平台_螺纹:

MC:

文华8:

提供源码:

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

猜你喜欢

转载自blog.csdn.net/m0_56236921/article/details/123345092
sf
今日推荐