龙听期货论坛's Archiver

龙听 发表于 2014-2-16 23:36

恒温器策略

[size=+0][size=18px][size=3][color=#0501fe][size=18px][font=宋体][b]策略简述[/b][/font][/size][/color][/size][/size]

[p=30, 2, left][font=微软雅黑][size=3][font=宋体]当[/font][font=微软雅黑]CMI[/font][font=宋体]指标小于[/font][font=微软雅黑]20[/font][font=宋体]时,策略处于[color=#ff0000][b]震荡模式[/b][/color]。[/font][/size][/font][/p][p=30, 2, left][font=微软雅黑][size=3][font=宋体]若处于[color=#ff2604]趋买市[/color]:[/font][/size][/font][/p][p=30, 2, left][font=微软雅黑][size=3][font=宋体]最新价[/font][font=微软雅黑]>max([/font][font=宋体]开盘价[/font][font=微软雅黑]+0.5*10[/font][font=宋体]日[/font][font=微软雅黑]ART[/font][font=宋体],[/font][font=微软雅黑]3[/font][font=宋体]日平均低价),做多。[/font][/size][/font][/p][p=30, 2, left][font=微软雅黑][size=3][font=宋体]最新价[/font][font=微软雅黑]>max([/font][font=宋体]开盘价[/font][font=微软雅黑]-0.75*10[/font][font=宋体]日[/font][font=微软雅黑]ART[/font][font=宋体],[/font][font=微软雅黑]3[/font][font=宋体]日平均高价),做空。[/font][/size][/font][/p][p=30, 2, left][font=微软雅黑][size=3][font=宋体]若处于[color=#ff2604]趋卖市[/color]:[/font][/size][/font][/p][p=30, 2, left][font=微软雅黑][size=3][font=宋体]最新价[/font][font=微软雅黑]>max([/font][font=宋体]开盘价[/font][font=微软雅黑]-0.75*10[/font][font=宋体]日[/font][font=微软雅黑]ART,3[/font][font=宋体]日最低价[/font][font=微软雅黑]),[/font][font=宋体]做多。[/font][/size][/font][/p][p=30, 2, left][font=微软雅黑][size=3][font=宋体]最新价[/font][font=微软雅黑]>max([/font][font=宋体]开盘价[/font][font=微软雅黑]+0.5*10[/font][font=宋体]日[/font][font=微软雅黑][font=微软雅黑]ART[/font][/font][font=宋体],[/font][font=微软雅黑]3[/font][font=宋体]日最高价[/font][font=微软雅黑]),[/font][font=宋体]做空。[/font][/size][/font][/p]
[p=30, 2, left][font=微软雅黑][size=3][font=宋体]当[/font][font=微软雅黑]CMI[/font][font=宋体]指标大于[/font][font=Calibri][font=微软雅黑]20[/font][/font][font=宋体]时,策略处于[color=#ff0000][b]趋势模式[/b][/color]。[/font][/size][/font][/p][p=30, 2, left][font=微软雅黑][size=3][font=宋体]趋势策略使用[/font][font=宋体]布林带策略。[/font][/size][/font][/p][p=30, 2, left][font=微软雅黑][size=3][font=宋体]进入趋势模式后,有[color=#ff0000]震荡模式下的持仓[/color],以开仓价[/font][font=Calibri][font=微软雅黑]+-3[/font][/font][font=宋体]个[/font][font=Calibri][font=微软雅黑]10[/font][/font][font=宋体]日[/font][font=Calibri][font=微软雅黑]ATR[/font][/font][font=宋体]为出场条件。[/font][/size][/font][/p]
[font=Calibri][font=微软雅黑][size=3][/size][/font][/font]


[color=#0000ff][size=3][size=18px][font=宋体][b]策略详述[/b][/font][/size][/size][/color]

[font=微软雅黑][size=3][font=宋体][b]恒温器策略以其能够在震荡和趋势市场中自动调节交易行为而得名。[/b]看到自动调节的字眼,很多人会觉得这一定是个[color=#ff6600]高级[/color]、[color=#ff6600]神秘[/color]的策略。但事实恰恰相反,这是个[color=#ff0000]简单[/color]的策略组合,[u]这类策略的[color=#ff0000]关键[/color]在于将不同市场状态下能成功应用的策略相结合。[/u][/font][/size][/font]

[font=微软雅黑][size=3][font=宋体][color=#ff0000]市场状态转换[/color],我们采用[/font][font=微软雅黑][color=#0000ff]CMI[/color][/font][font=宋体]指标[/font][font=微软雅黑]([/font][font=宋体]市场波皱指标[/font][font=微软雅黑])[/font][font=宋体]作为评判[color=#ff0000]标准[/color]。[/font][/size][/font]

[font=微软雅黑][size=3][font=宋体]当[/font][font=微软雅黑]CMI[/font][font=宋体]值小于[/font][font=微软雅黑]20[/font][font=宋体],短周期震荡模式下运用的是[color=#0400fd]区间突破结合模式识别策略[/color],[/font][font=宋体]我们将系统归于震荡模式。模式识别依靠关键价指标[/font][font=微软雅黑]([/font][font=宋体]关键价指标是[/font][font=微软雅黑](high+low+close)/3)[/font][font=宋体],如果当收盘价高于昨天的关键价,我们推测明天的市场是熊市(趋卖市),反之亦然。但是我们需明白,我们不是神算,不可能预测明天的市场,所以我们是计划以熊市手段去操作,但仍可以做多,只不过需要走出一定的行情。[/font][/size][/font]

[font=微软雅黑][size=3][font=宋体]当[/font][font=微软雅黑]CMI[/font][font=宋体]值大于[/font][font=微软雅黑]20[/font][font=宋体],该策略系统在趋势模式下[/font][font=微软雅黑]([/font][font=宋体]长周期[/font][font=微软雅黑])[/font][font=宋体]运用的是个类似布林通道策略[/font][font=微软雅黑]([/font][font=宋体]常规布林策略此处不做介绍[/font][font=微软雅黑])[/font][font=宋体]。[i][color=#ff0000]值得称道[/color]的是,该模型考虑了[color=#ff0000]趋势模式[/color]下,原有[color=#ff0000]震荡持仓[/color]的处理问题。[/i]因为震荡模式的出场是以[/font][font=微软雅黑]3[/font][font=宋体]日高低均价为准。但是把这个标准放在趋势模式下就不合时宜了,该策略的方法是[/font][font=宋体]以开仓价[/font][font=Calibri][font=微软雅黑]+-3[/font][/font][font=宋体]个[/font][font=Calibri][font=微软雅黑]10[/font][/font][font=宋体]日[/font][font=Calibri][font=微软雅黑]ATR[/font][/font][font=宋体]为出场条件[/font][font=Calibri][font=微软雅黑]([/font][/font][font=宋体]一个相对较长期的条件[/font][font=Calibri][font=微软雅黑])[/font][/font][font=宋体]。[/font][/size][/font]


[font=微软雅黑][size=3][color=#0000ff][font=宋体][b][font=微软雅黑][size=4][color=#0000ff]代码[/color][/size][/font][/b][/font][/color][/size][/font]

[font=微软雅黑][size=3][font=Verdana][size=3]//策略:恒温器系统
//类型:中长期通道突破
//版本:1.0
//修订时间:2012.11.6
//Designed By Rogarz[/size][/font][/size][/font]

[font=Verdana][size=3][b]//中间变量
[/b]input:m(50,5,300,30),N(1.25,0.1,10,0.1),ss(1,1,100,1),k1(0.5,0.1,1,0.1),k2(0.75,0.1,1,0.1);
variable:A:=0;//0表示仓位是在趋势模式下下单  1表示在震荡模式下下单
MID :  MA(CLOSE,M);//布林中轨
UPPER:MID + N*STD(CLOSE,M);//布林上轨
LOWER:MID - N*STD(CLOSE,M);//布林下轨
今开:=callstock(stklabel,vtopen,6,0);
CMI:=abs(close-ref(close,29))/(hhv(high,30)-LLV(L,30))*100;//0-100 取值越大,说明趋势越强,CMI<20震荡模式,反之为趋势
关键价:(high+low+close)/3;//关键价的计算,国外常称作中枢价格(pivot point)
ATR10:=ma(tr,10);
3日均低价:=ma(L,3);[/size][/font]
[font=Verdana][size=3]3日均高价:=ma(h,3);[/size][/font]
[font=Verdana][size=3]手数:=ss;[/size][/font]

[font=Verdana][size=3][b]//交易条件
[/b]if C<关键价 then begin
趋买市开多平空条件:=C>max(今开+k1*ATR10,3日均低价);
趋买市开空平多条件:=C
end
if c>关键价 then begin
趋卖市开多平空条件:=C>max(今开+k2*atr10,3日均低价);
趋卖市开空平多条件:=C
end[/size][/font]
[font=Verdana][size=3]趋势开多条件:=c>upper;
趋势开空条件:=c
趋势平多条件:=c
趋势平空条件:=c>mid;[/size][/font]
[font=Verdana][size=3]震荡多单平仓条件:=c<=enterprice-3*atr10;
震荡空单平仓条件:=c>=enterprice+3*ATR10;[/size][/font]
[font=Verdana]
[size=3][b]//交易系统
[/b]if cmi<20 then begin {震荡模式}
   if C<关键价 then begin
   趋买市平空:sellshort(趋买市开多平空条件 and holding<=0,手数,market);
   趋买市平多:sell(趋买市开空平多条件 and holding>=0,手数,market);
   趋买市开多:buy(趋买市开多平空条件 and holding<=0,手数,market);
   趋买市开空:buyshort(趋买市开空平多条件 and holding>=0,手数,market);
   A:=1;
   end
   if c>关键价 then begin
   趋卖市平空:sellshort(趋卖市开多平空条件 and holding<=0,手数,market);
   趋卖市平多:sell(趋卖市开空平多条件 and holding>=0,手数,market);
   趋卖市开多:buy(趋卖市开多平空条件 and holding<=0,手数,market);
   趋卖市开空:buyshort(趋卖市开空平多条件 and holding>=0,手数,market);
   a:=1;
   end
[font=宋体]end[/font]
[/size][/font][size=3]if cmi>=20 then BEGIN {趋势模式}
if a:=1 then begin //趋势模式下原震荡模式下仓位处理
    震荡多单平仓:sell(震荡多单平仓条件 and holding>0,手数,market);
    震荡空单平仓:sellshort(震荡空单平仓条件 and holding<0,手数,market);
    a:=0;
    end
if a:=0 then begin
趋势平空:sellshort(趋势平空条件 and holding<0,手数,market);
趋势平多:sell(趋势平多条件 and holding>0,手数,market);
趋势开多:buy(趋势开多条件 and holding<=0,手数,market);
趋势开空:buyshort(趋势开空条件 and holding>=0,手数,market);
A:=0;
end
end
//注意先平后开原则
[/size]

[font=微软雅黑][size=3][color=#000000]仅用于开拓思路,若用于实盘,后果自负。[/color][/size][/font]

页: [1]