龙听期货论坛's Archiver

龙听 发表于 2017-12-24 14:25

Dual Thrust策略 [MC模型源码]

[code]
[LegacyColorValue = TRUE];

Inputs: K1(.5),K2(.5),Mday(1),Nday(1);
Vars: BuyRange(0), SellRange(0);
Vars: BuyTrig(0),SellTrig(0);
Vars: HH(0),LL(0),HC(0),LC(0);

If CurrentBar > 1 Then Begin
HH = Highest(High,Mday);
HC = Highest(Close,Mday);
LL = Lowest(Low,Mday);
LC = Lowest(Close,Mday);

If (HH - LC) >= (HC - LL) Then Begin
SellRange = HH - LC;
End Else Begin
SellRange = HC - LL;
End;

HH = Highest(High,Nday);
HC = Highest(Close,Nday);
LL = Lowest(Low,Nday);
LC = Lowest(Close,Nday);

If (HH - LC) >= (HC - LL) Then Begin
BuyRange = HH - LC;
End Else Begin
BuyRange = HC - LL;
End;

BuyTrig = K1*BuyRange;
SellTrig = K2*SellRange;

If MarketPosition = 0 Then Begin

Buy at next bar Open of next bar + BuyTrig Stop;
Sell at next bar Open of next bar - SellTrig Stop;
End;

If MarketPosition = -1 Then Begin
Buy at next bar Open of next bar + Buytrig Stop;
End;

If MarketPosition = 1 Then Begin
Sell at next bar Open of next bar - SellTrig Stop;
End;

End;
[/code]

龙听 发表于 2017-12-25 22:40

Dual Thrust系统是 Michael Chalek 在80 年代开发的 Dual Thrust。在自动化交易排名中,目前为止,仍然排名第二左右。下表是我自己按5分钟周期跑回测的结果,效果非常好:

[img]http://p.qhlt.cn/filestores/2017/12/25/ae295f6948bf61b25a26d8b908a708a3.jpg[/img]

这是上表成绩最好的沪铜指数的成绩走势图:

[img]http://p.qhlt.cn/filestores/2017/12/25/934dad0bd6967409e9b2ea2679fe580e.jpg[/img]

通过几个关键数据的对比发现,该模型对于多品种还是有一定的普适性,模型中的参数也采用默认,未针对个别产品进行优化,虽然选出的四个产品都达到了正收益,但由于品种的差异性,区别还是较大的。

龙听 发表于 2017-12-25 22:44

短短几十行而已,难度并不大,但其背后的交易策略却是很厉害。

它的逻辑原型是较为常见的日内交易策略之一开盘区间突破策略,以今日开盘价加减一定比例的昨日振幅,确定上下轨。日内突破上轨时平空做多,突破下轨时平多做空。

开盘区间突破策略基本原理 1. 在今天的收盘,计算两个值:最高价-收盘价,和收盘价-最低价。然后取这两个值较大的那个,乘以k值0.7。把结果称为触发值。

2. 在明天的开盘,记录开盘价,然后在价格超过(开盘+触发值)时马上买入,或者价格低于(开盘-触发值)时马上卖空。 3. 没有明确止损。这个系统是反转系统,也就是说,如果在价格超过(开盘+触发值)时手头有一口空单,则买入两口。同理,如果在价格低于(开盘-触发值)时手上有一口多单,则卖出两口

[img]http://p.qhlt.cn/filestores/2017/12/25/83a6bd6b717c854248016e22c891aeb9.jpg[/img]

Dual Thrust在开盘区间突破策略上进行了相关改进:
1、在范围(range)的设置上,引入前N日的四个价位,使得一定时期内的范围相对稳定,可以适用于日间的趋势跟踪;
2、Dual Thrust对于多头和空头的触发条件,考虑了非对称的幅度,做多和做空参考的Range可以选择不同的周期数,也可以通过参数K1和K2来确定。当K1时,多头相对容易被触发,当K1>K2时,空头相对容易被触发。

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

就是一个典型的观望、等待信号、进场、套利、离场的套路,却效果卓著。

因此对于学习程序化,一是对编程语言和工具的掌握,这个和所有的码农进阶之路一样,练是硬道理,技术要求与你的策略复杂程度成正相关。二就是对交易策略的领会,赚钱本身是体力活,赚钱的逻辑才是脑力活

作者:量化投资Quant
链接:[url]https://xueqiu.com/5256769224/32429363[/url]
来源:雪球
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

瑋元 发表于 2018-5-5 02:28

下载 学习 谢谢大大 {:biggrin:}

龙听 发表于 2018-5-5 06:46

[b]回复 [url=http://www.qhlt.cn/redirect.php?goto=findpost&pid=20000&ptid=6847]4#[/url] [i]瑋元[/i] [/b]
{:smile:}

龙听小虎 发表于 2023-11-2 22:28

{:48:}

页: [1]