金字塔决策交易系统

 找回密码
 

微信登录

微信扫一扫,快速登录

搜索
查看: 1749|回复: 0

【中长期策略】布林强盗系统

[复制链接]

70

主题

190

帖子

275

积分

Rank: 9Rank: 9Rank: 9

等级: 管理员

注册:
2021-5-18
曾用名:
发表于 2021-5-20 16:37 | 显示全部楼层 |阅读模式
本帖最后由 技术003 于 2021-5-20 16:38 编辑

//转自旧论坛版主_RogarZ


布林强盗交易系统
      布林带(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);

//注意先平后开原则
这个策略的出场规则也可以用于开拓止盈止损思路。


金字塔提供一对一VIP专业技术指导服务,技术团队实时响应您的日常使用问题与策略编写。联系电话:021-20339086
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 微信登录

本版积分规则

手机版|小黑屋|上海金之塔信息技术有限公司 ( 沪ICP备13035422号 )

GMT+8, 2024-11-16 02:36 , Processed in 0.171525 second(s), 23 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表