- 精华
- 0
- 在线时间
- 2366 小时
- UID
- 116737
- 积分
- 781
- 帖子
- 210
- 阅读权限
- 60
- 注册时间
- 2013-3-14
- 最后登录
- 2019-8-16
- 精华
- 0
- UID
- 116737
- 积分
- 781
- 帖子
- 210
- 主题
- 32
- 阅读权限
- 60
- 注册时间
- 2013-3-14
- 最后登录
- 2019-8-16
|
本帖最后由 yebenli 于 2014-7-17 13:07 编辑
//------------------------------------------------------------------------
// 简称: 布林轨震荡系统
// 名称: IF--5min
// 类别: 公式应用
// 类型: 内建应用
//------------------------------------------------------------------------
Params
Numeric Lots(1);
Numeric Length(20);
Vars
NumericSeries mClose(0);
NumericSeries mOpen(0);
NumericSeries mhigh(0);
NumericSeries mlow(0);
NumericSeries MidBand;
NumericSeries Band;
NumericSeries UpBand;
NumericSeries DnBand;
NumericSeries OpenBar;
NumericSeries BB;
NumericSeries BandAcc;
//衡量当日波动
NumericSeries ATR;
NumericSeries StopPoint;
NumericSeries ExitLine;
Begin
if(CurrentBar == 0)
{
mopen = open;
mclose = (O+H+L+C)/4;
mhigh = Max( high, mopen);
mhigh = Max( mhigh, mclose);
mlow = Min( low, mopen);
mlow = Min( mlow,mclose);
}else if(CurrentBar > 0)
{
mclose = (O+H+L+C)/4;
mopen = (mopen [1] + mclose [1])/2 ;
mhigh = Max(High, mopen) ;
mhigh = Max(mhigh, mclose) ;
mlow = Min(Low, mopen) ;
mlow = Min(mlow, mclose) ;
}
PlotNumeric("Close",mclose);
PlotNumeric("Open",mopen);
PlotNumeric("High",mhigh);
PlotNumeric("Low",mlow);
MidBand=Average(mclose[1],Length);
Band=StandardDev(mclose[1],Length);
UpBand=MidBand+2*Band;
DnBand=MidBand-2*Band;
PlotNumeric("MidBand",MidBand);
PlotNumeric("UpBand",UpBand);
PlotNumeric("DnBand",DnBand);
BandAcc=Band-Band[1];
BB=(mclose[1]-DnBand[1])/(UpBand[1]-DnBand[1]);
Commentary("BB="+Text(BB));
Commentary("BandAcc="+Text(BandAcc));
if( MarketPosition==0 && BandAcc[1]<BandAcc[2] )
{
if( L<L[1] && mclose[1]<mopen[1] && mClose[3]> mopen[3] && BB[4]>1 )
{
SellShort(Lots,Min(o,L[1]));
OpenBar=CurrentBar;
}
if( H>H[1] && mclose[1]>mopen[1] && mClose[3]< mopen[3] && BB[4]<0 )
{
Buy(Lots,max(o,H[1]));
OpenBar=CurrentBar;
}
}
if(MarketPosition==1 && mclose[1]<mopen[1] && L<L[1] )
{
Sell(lots,Min(o,L[1]));
}
if(MarketPosition==-1 && mclose[1]>mopen[1] && H>H[1] )
{
BuyToCover(lots,max(o,H[1]));
}
//防止极端行情平仓
ATR=AvgTrueRange(Length);
If(MarketPosition<>0)
{
StopPoint=IIf(MarketPosition>0,C[1]-2*ATR[1],C[1]+2*ATR[1]);
If(Currentbar==OpenBar)
{
ExitLine=StopPoint;
}
If(MarketPosition>0 && CurrentBar>OpenBar)
{
ExitLine=Max(StopPoint,ExitLine[1]);
}
If(MarketPosition<0 && Currentbar>OpenBar )
{
ExitLine=Min(StopPoint,ExitLine[1]);
}
PlotNumeric("ExitLine",ExitLine);
}
if(MarketPosition==1 && L<ExitLine )
{
Sell(lots,Min(o,ExitLine));
OpenBar=0;
}
if(MarketPosition==-1 && H>ExitLine )
{
BuyToCover(lots,Max(O,ExitLine));
OpenBar=0;
}
End
//------------------------------------------------------------------------
// 编译版本 GS2010.12.08
// 版权所有 TradeBlazer Software 2003-2010
// 更改声明 TradeBlazer Software保留对TradeBlazer平
// 台每一版本的TradeBlazer公式修改和重写的权利
//------------------------------------------------------------------------ |
附件: 你需要登录才可以下载或查看附件。没有帐号?注册
|