主题如上,为何水平线之前的垂线,有两条呢,请老师帮忙看一下哦。具体代码如下,谢谢。
另整体代码哪些地方可优化吗,烦请老师顺带指导。谢了哦
Params
Numeric n1(10);
Numeric n2(20);
Vars
Bool golden(False);
Bool ending(False);
Series<Numeric> ma1;
Series<Numeric> ma2;
Series<Numeric> new_hhh;
Series<Numeric> new_lll;
Series<Numeric> tem_set_h;
Series<Numeric> tem_set_l;
Series<Numeric> macd_yellow;
Series<Numeric> new_H_l;
Series<Numeric> new_L_l;
Series<Numeric> macd_H_l;
Series<Numeric> macd_L_l;
Series<Numeric> macd_h;
Series<Numeric> macd_l;
Series<Numeric> tem_macd_h;
Series<Numeric> tem_macd_l;
Events
OnBar(ArrayRef<Integer> indexs)
{
ma1=XAverage(c,n1);
ma2=XAverage(c,n2);
macd_yellow=ma1-ma2;
golden=CrossOver(ma1,ma2);
ending=CrossUnder(ma1,ma2);
PlotNumeric("ma1",ma1);
PlotNumeric("ma2",ma2);
//PlotNumeric("macd_yellow",macd_yellow);
tem_set_l=Lowest(l[1],NthCon(ending,0));
tem_set_h=highest(h[1],NthCon(golden,0));
//Commentary("jin="+text(NthCon(ending,0)));
//Commentary("si="+text(NthCon(golden,0)));
tem_set_h=highest(h[1],NthCon(golden,0));
tem_macd_h=highest(macd_yellow,NthCon(golden,0));
tem_set_l=lowest(l[1],NthCon(ending,0));
tem_macd_l=lowest(macd_yellow,NthCon(ending,0));
If(golden==true)
{
new_lll=tem_set_l;
macd_l=tem_macd_l;
}
else If(ending==true)
{
new_hhh=tem_set_h;
macd_h=tem_macd_h;
}
/////////////
If(new_hhh<>new_hhh[1]);
{
new_H_l=new_hhh[1];
macd_H_l=macd_h[1];
}
If(new_lll<>new_lll[1]);
{
new_L_l=new_lll[1];
macd_L_l=macd_l[1];
}
If(new_hhh!=0)
{
plotnumeric("new_hhh",new_hhh);
plotnumeric("new_H_l",new_H_l);
}
If(new_lll!=0)
{
plotnumeric("new_lll",new_lll);
plotnumeric("new_L_l",new_L_l);
}
Commentary("当前macd="+text(macd_l));
Commentary("当前macd=ll"+text(macd_L_l));
//If(my_exitprice!=0)
//Commentary(text(NthCon(ending,0)));
If(new_hhh>new_H_l And macd_h<macd_H_l And ending==true)
{
PlotString("di","顶背离",c,Yellow);
}
If(new_lll<new_L_l And macd_l>macd_L_l And golden==true)
{
PlotString("di2","底背离",c,Red);
}
}
你两条线,一条是new_hhh,一条是new_H_l,new_H_l只在一个地方赋值,那运行下来不就是这个结果么