以文本方式查看主题

-  金字塔客服中心 - 专业程序化交易软件提供商  (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 Bollinger20世纪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
--  

好贴!