//------------------------------------------------------------------------
// 简称:MACD
// 名称:指数平滑异同平均线
// 类别: 交易指令
// 类型: 用户应用
//------------------------------------------------------------------------
Params
//参数定义
Integer LongPrd(26);
Integer ShortPrd(12);
Integer M(9);
GlobalVars
//全局变量定义
Integer Kmacd1 ;
Integer Kmacd2 ;
Numeric dd1; //多头Bar位置
Numeric dz1; //多头的值
Numeric barK;
Numeric kd1; //空头Bar位置
Numeric kz1; //空头的值
Vars
//局部变量定义
Numeric up;
Numeric up1;
Numeric dn;
Numeric dn1;
NumericSeries ret;
Begin
//策略执行区
Numeric DIFF = EMA(Close,ShortPrd) - EMA(Close,LongPrd);
Numeric DEA = EMA(DIFF,M);
ret = 2*(DIFF-DEA);
PlotNumeric("DIFF",DIFF);
PlotNumeric("DEA",DEA);
if(ret>0)
{
PlotStickLine("MACD",ret,0,ColorUp());
}
Else
{
PlotStickLine("MACD",ret,0,ColorDown());
}
if (bark != CurrentBar)
{ bark = CurrentBar; //控制开一次
If( ret[1]<0 and ret >0 )
{
dd1=0;
dz1=0;
Kmacd1 = 1;
Kmacd2 = 0;
dd1= CurrentBar;
dz1= ret;
}
If (ret[1]>0 and ret>0 )
{
Kmacd1 = Kmacd1+1;
//PlotText(ret,Text(Kmacd1));
}
if (ret>ret[1])
{
dd1=CurrentBar;
dz1= Max(dz1,ret);
}
If(Kmacd1 ==4)
PartLine("fzsz1",0,-kz1*0.618,-10,-kz1*0.618,Red,1);
If( ret[1]>0 and ret <0 )
{
kd1=0;
kz1=0;
Kmacd1 = 0;
Kmacd2 = 1;
kd1= CurrentBar;
kz1= ret;
}
If(Kmacd2 == 4)
PartLine("fzsz2",0,-dz1*0.618,-10,-dz1*0.618,Cyan,1);
If (ret[1]<0 and ret<0)
{
Kmacd2 = Kmacd2+1;
//PlotText(ret*2,Text(Kmacd2));
}
if (ret<ret[1])
{
kd1=CurrentBar;
kz1= Min(kz1,ret);
}
};
End
macd反转数之值
最新推荐文章于 2025-02-22 11:21:08 发布