: | : | :期货量化学习 | :期货量化 |
返回列表 发帖

[金字塔源码] 恒温器策略

[金字塔源码] 恒温器策略

[size=+0]策略简述

CMI指标小于20时,策略处于震荡模式

若处于趋买市

最新价>max(开盘价+0.5*10ART3日平均低价),做多。

最新价>max(开盘价-0.75*10ART3日平均高价),做空。

若处于趋卖市

最新价>max(开盘价-0.75*10ART,3日最低价),做多。

最新价>max(开盘价+0.5*10ART3日最高价),做空。


CMI指标大于20时,策略处于趋势模式

趋势策略使用布林带策略。

进入趋势模式后,有震荡模式下的持仓,以开仓价+-310ATR为出场条件。





策略详述

恒温器策略以其能够在震荡和趋势市场中自动调节交易行为而得名。看到自动调节的字眼,很多人会觉得这一定是个高级神秘的策略。但事实恰恰相反,这是个简单的策略组合,这类策略的关键在于将不同市场状态下能成功应用的策略相结合。

市场状态转换,我们采用CMI指标(市场波皱指标)作为评判标准

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

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


代码

//策略:恒温器系统
//类型:中长期通道突破
//版本:1.0
//修订时间:2012.11.6
//Designed By Rogarz


//中间变量
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);

3日均高价:=ma(h,3);
手数:=ss;

//交易条件
if C<关键价 then begin
趋买市开多平空条件:=C>max(今开+k1*ATR10,3日均低价);
趋买市开空平多条件:=C
end
if c>关键价 then begin
趋卖市开多平空条件:=C>max(今开+k2*atr10,3日均低价);
趋卖市开空平多条件:=C
end

趋势开多条件:=c>upper;
趋势开空条件:=c
趋势平多条件:=c
趋势平空条件:=c>mid;

震荡多单平仓条件:=c<=enterprice-3*atr10;
震荡空单平仓条件:=c>=enterprice+3*ATR10;


//交易系统
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
end
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
//注意先平后开原则


仅用于开拓思路,若用于实盘,后果自负。

论坛官方微信、群(期货热点、量化探讨、开户与绑定实盘)
 
期货论坛 - 版权/免责声明   1.本站发布源码(包括函数、指标、策略等)均属开放源码,用意在于让使用者学习程序化语法撰写,使用者可以任意修改语法內容并调整参数。仅限用于个人学习使用,请勿转载、滥用,严禁私自连接实盘账户交易
  2.本站发布资讯(包括文章、视频、历史记录、教材、评论、资讯、交易方案等)均系转载自网络主流媒体,内容仅为作者当日个人观点,本网转载此文出于传递更多信息之目的,并不意味着赞同其观点或证实其描述。本网不对该类信息或数据做任何保证。不对您构成任何投资建议,不能依靠信息而取代自身独立判断,不对因使用本篇文章所诉信息或观点等导致的损失承担任何责任。
  3.本站发布资源(包括书籍、杂志、文档、软件等)均从互联网搜索而来,仅供个人免费交流学习,不可用作商业用途,本站不对显示的内容承担任何责任。请在下载后24小时内删除。如果喜欢,请购买正版,谢谢合作!
  4.龙听期货论坛原创文章属本网版权作品,转载须注明来源“龙听期货论坛”,违者本网将保留追究其相关法律责任的权力。本论坛除发布原创文章外,亦致力于优秀财经文章的交流分享,部分文章推送时若未能及时与原作者取得联系并涉及版权问题时,请及时联系删除。联系方式:http://www.qhlt.cn/thread-262-1-1.html
如何访问权限为100/255贴子:/thread-37840-1-1.html;注册后仍无法回复:/thread-23-1-1.html;微信/QQ群:/thread-262-1-1.html;网盘链接失效解决办法:/thread-93307-1-1.html

返回列表