- 精华
- 0
- 在线时间
- 25 小时
- UID
- 114737
- 积分
- 54
- 帖子
- 28
- 阅读权限
- 30
- 注册时间
- 2013-1-9
- 最后登录
- 2013-5-6
- 精华
- 0
- UID
- 114737
- 积分
- 54
- 帖子
- 28
- 主题
- 4
- 阅读权限
- 30
- 注册时间
- 2013-1-9
- 最后登录
- 2013-5-6
|
求面积,比大小,下单
Params
Numeric FastLength(12);
Numeric SlowLength(26);
Numeric MACDLength(9);
Vars
NumericSeries MACDValue;
NumericSeries AvgMACD;
NumericSeries MACDDiff;
Numeric I;
Numeric lenth1;
Numeric lenth2;
Numeric mj1(0);
Numeric mj2(0);
Begin
MACDValue = XAverage( Close, FastLength ) - XAverage( Close, SlowLength ) ;
AvgMACD = XAverage(MACDValue,MACDLength);
MACDDiff = MACDValue - AvgMACD;
PlotNumeric("MACD",MACDValue);
PlotNumeric("MACDAvg",AvgMACD);
If (MACDDiff >= 0)
PlotNumeric("MACDDiff",MACDDiff,0,Red);
Else
PlotNumeric("MACDDiff",MACDDiff,0,Green);
PlotNumeric("零线",0); //macd图形输出
If (CrossOver(MACDDiff[2],0)){ //判断:如果向前数第二根BAR满足macddiff上穿0(即金叉),那么从第三根K线开始累加macddiff的绝对值
I=3;
While(CrossUnder(MACDDiff[I],0)==false){ //直到某根BAR满足死叉
mj1=Abs(MACDDiff[I])+mj1;
I=I+1;
}
}
While(CrossOver(MACDDiff[I],0)==false){ //从刚才那根满足条件的BAR开始向前推寻找金叉
I=I+1;
}
lenth1=I;
While(CrossUnder(MACDDiff[I],0)==false){ //继续向前寻找死叉
I=I+1;
}
lenth2=I;
For I=lenth1 To lenth2{ //计算从死叉到金叉的面积
mj2=mj2+Abs(MACDDiff[I]);
I=I+1;
}
If(mj1<mj2) // 如果面积1<面积2,多单开仓
Buy;
End
有无逻辑错误? |
|