以文本方式查看主题 - 金字塔客服中心 - 专业程序化交易软件提供商 (http://weistock.com/bbs/index.asp) -- 交易策略发布专区 (http://weistock.com/bbs/list.asp?boardid=10) ---- 【中长期策略】布林强盗系统——金字塔平台 (http://weistock.com/bbs/dispbbs.asp?boardid=10&id=30382) |
|
-- 作者:RogarZ -- 发布时间:2012/11/4 22:20:13 -- 【中长期策略】布林强盗系统——金字塔平台 布林强盗交易系统 布林带(BOLL)是由John Bollinger在20世纪60年代创建的。最初,布林带是用来判断市场走势的边界,现在国内很多人也依然这么用,即当价格移动到上轨或下轨附近后,预测价格将会回归到中轨。但是经过测试,已经发现将上、下轨作为突破指标的效果要远好于做为阻力指标。 布林强盗交易系统是一个中长线策略(本例假想的使用周期是日线),将采用后者的规则,价格超过50日移动平均线上方1个标准差作为买进信号的标准,跌破50日移动平均线下方1个标准差作为卖出信号的标准(主体交易条件)。 除了上文讲到的主体交易系统外,作为通道趋势交易,布林强盗交易系统还增加了确认模块。 之前我们提到过上轨下轨是潜在的买入卖出点。这里潜在的是一个关键字眼。在建立头寸前我们必须进行多次确认:当日收盘价必须高于30日前的收盘价才能做多,当日收盘价必须低于30 日前的收盘价才能做空。这个额外的要求是一个趋势过滤器。我们只希望在上升趋势中做多或者在下降趋势中做空。 接下来要介绍一个该系统最具特色一个部分——出场:我们都知道常规3条线组成的通道策略,都是以突破上下轨开仓,回归中轨平仓。但是这种平仓方式,将舍弃很大一块利润。布林强盗交易系统采用了一个较另类、较积极的方式(主条件):当建立仓位时,保护性止损设置在50 日均线(中轨)。之后持有头寸的时间每多一天,计算移动平均线的天数减一。持有头寸时间越长,我们越容易带着利润离场。计算移动平均线的天数最小可以递减到10。如果达到10,则不再递减。除了主条件,次交易为如果持多仓,移动平均低于上轨发出平仓信号;如果持空仓,移动平均(代码中的出场MA)高于下轨发出平仓信号。加入这个离场条件是为了防止布林强盗系统在止损之后重复入场。如果我们不使用这个离场条件,当移动平均在上轨上方时,多头入场条件仍然成立,因此多头头寸将会建立。
入场条件: 价格突破布林带上轨,收盘价大于30周期收盘价最高值,即做多; 价格跌破布林带下轨,收盘价小于30周期收盘价最低值,即做空; 出场条件: 持多仓的情况下,收盘价小于出场MA,出家MA小于上轨,平仓。 持空仓的情况下,收盘价大于出场MA,出家MA大于下轨,平仓。 出场MA的值根据持仓周期变化。刚开仓为50,持仓每增加一个周期,减1,最小到10。
//策略:布林强盗系统 //类型:中长期通道突破 //版本:1.0 //修订时间:2012.11.4 //Designed By Rogarz //中间变量 input:m(50,5,300,30),N(1.25,0.1,10,0.1),d(30,1,100,1),ss(1,1,100,1); variable:x:=50; MID : MA(CLOSE,M);//布林中轨 UPPER:MID + N*STD(CLOSE,M);//布林上轨 LOWER:MID - N*STD(CLOSE,M);//布林下轨 CYC:=enterbars+1,noaxis;//开仓至今的周期数 HC30:=ref(hhv(c,d),1);//30周期收盘价高点 LC30:=ref(LLV(c,d),1);//30周期收盘价低点 手数:=ss; 出场MA:ma(close,if(holding<>0,if(cyc>=40,10,51-cyc),50)); //交易条件 开多平空条件:=c>HC30 and h>ref(upper,1);//收盘价大于30周期收盘价最高值,且最高价上穿上轨 开空平多条件:=c<LC30 and L<ref(lower,1);//收盘价小于30周期收盘价最高值,且最低价下穿下轨 多头出场条件:=c<出场MA and 出场MA<upper; 空头出场条件:=c>出场MA and 出场MA>LOWER; //交易系统 多头出场:sell(多头出场条件 and holding>0,手数,limitr,c); 空头出场:sellshort(空头出场条件 and holding<0,手数,limitr,c); 平空:sellshort(开多平空条件 and holding<0,手数,limitr,c); 平多:sell(开空平多条件 and holding>0,手数,limitr,c); 开空:buyshort(开空平多条件 and holding>=0,手数,limitr,c); 开多:buy(开多平空条件 and holding<=0,手数,limitr,c); //注意先平后开原则 这个策略的出场规则也可以用于开拓止盈止损思路。 策略代码仅用于学习使用,用于实盘后果自负哦。 注:论坛相关帖:z7c9版 布林强盗系统 http://www.weistock.com/bbs/dispbbs.asp?BoardID=10&ID=8271&skin=0 |
|
-- 作者:RogarZ -- 发布时间:2012/11/4 22:21:43 -- 2楼 预留 |
|
-- 作者:airmusic -- 发布时间:2012/11/6 0:14:47 -- 板凳··· |
|
-- 作者:csanke -- 发布时间:2012/11/7 19:39:16 -- |
|
-- 作者:Q1304230834 -- 发布时间:2012/11/11 19:27:24 -- 收益好像不是很好 |
|
-- 作者:伍星亮 -- 发布时间:2012/11/12 10:08:17 -- [求助]关于模拟交易与实盘交易的区别 出市用递减均线的点子不错。是不是想衡量真正的平均持仓成本? 能不能说说你的思路?
|
|
-- 作者:jason223 -- 发布时间:2012/11/23 11:29:37 -- 学习一下! |
|
-- 作者:xypeng -- 发布时间:2014/4/14 22:58:45 -- 正在学习 |
|
-- 作者:CPP888 -- 发布时间:2014/6/20 15:41:52 -- HC30:=ref(hhv(c,d),1);//30周期收盘价高点 楼主,这个hhv(c,d)就是30周期收盘价高点 了吧,加个ref(,1)结果应该是上一个30天的收盘价最高点啊?
|
|
-- 作者:小气泡 -- 发布时间:2018/5/9 10:00:37 -- 好贴! |