初学tb编程,请教macd金叉死叉的问题,我想请教,在使用macd函数过程中,如果我想满足以下条件:我想两个死叉之间的diff值作比较,同时要确保两个死叉中间的diff值和dea值不能跌破0轴,不清楚该怎么写,请指教,万分感谢
Params
Numeric n1(12);
Numeric n2(26);
Numeric FastLength(12);
Numeric SlowLength(26);
Numeric AvgLength(9);
Vars
Numeric MACDDiff;
Numeric MACDDEA;
Numeric MACDValue;
series<bool> golden(false);
Series<bool> ending(false);
series<Numeric> new_h;
series<Numeric> new_l;
series<Numeric> tem_new_h; //金叉过程中临时高点赋值
Series<Numeric> tem_new_l; //死叉过程红临时低点赋值
series<Numeric> new_ex_h; //新死叉形成记录前一个死叉的高点
Series<Numeric> new_ex_l; //新死叉形成记录前一个死叉的低点
series<Numeric> new_ex_h1; //新死叉形成记录前两个死叉的高点
Series<Numeric> new_ex_l1; //新死叉形成记录前两个死叉的低点
Series<Numeric> MACD_h;
Series<Numeric> MACD_l;
Series<Numeric> tem_MACD_h;
Series<Numeric> tem_MACD_l;
Series<Numeric> MACD_ex_h;
Series<Numeric> MACD_ex_l;
Series<Numeric> MACD_ex_h1;
Series<Numeric> MACD_ex_l1;
series<Numeric> ma1;
series<numeric> ma2;
Events
OnBar(ArrayRef<Integer> indexs)
{
MACDDiff = xAverage( close , FastLength) - XAverage( close , SlowLength) ;
MACDDEA = XAverage( MACDDiff , AvgLength);
MACDValue = MACDDiff - MACDDEA ;
golden = CrossOver (MACDDiff, MACDDEA);
ending = CrossUnder (MACDDiff,MACDDEA);
//PlotBool("golden",golden,close);
if (CurrentBar == 0)
{
tem_new_h = 0;
tem_MACD_h = 0;
tem_new_l = 0;
tem_MACD_l = 0;
}
else
{
tem_new_h = Highest(H[1],NthCon(golden,0));
tem_MACD_h = Highest(MACDDiff,NthCon(golden,0));
tem_new_l = Lowest(L[1],NthCon(ending,0));
tem_MACD_l = Lowest( MACDDiff,NthCon(ending,0));
//PlotNumeric("tem_new_h",tem_new_h);
//PlotNumeric("tem_MACD_h",tem_MACD_h);
//PlotNumeric("tem_new_l",tem_new_l);
//PlotNumeric("tem_MACD_l",tem_MACD_l);
if (ending == True)
{
new_h = tem_new_h;
MACD_h = tem_MACD_h;
//PlotNumeric("new_h",new_h);
}
if (golden == True)
{
new_l = tem_MACD_l;
MACD_l = tem_MACD_l;
}
if (new_h <> new_h[1])
{
new_ex_h = new_h[1];
new_ex_h1 = new_ex_h[1];
MACD_ex_h = MACD_h[1];
MACD_ex_h1 = MACD_ex_h[1];
//PlotNumeric("MACD_ex_h",MACD_ex_h);
//PlotNumeric("MACD_ex_h1",MACD_ex_h1);
}
if (new_l <> new_l[1])
{
new_ex_l = new_l[1];
new_ex_l1 = new_ex_l[1];
MACD_ex_l = MACD_l[1];
MACD_ex_l1 = MACD_ex_l[1];
}
}
}
策略编写请看置顶投稿贴