zigzag指标
请教代码中3个注释的地方,看不懂。Params
Numeric RetracePct(5);
Vars
NumericSeries SwingPrice;
Numeric NewSwingPrice;
NumericSeries PreBar(0);
NumericSeries UpDn(0);
Bool SaveSwing(False);
Bool NewTL(False);
Bool UpdateTL(False);
begin
If (CurrentBar > 0)
{
UpDn = UpDn[1];
PreBar = PreBar[1];
SwingPrice = SwingPrice[1];
}Else
{
SwingPrice = Close;
}
NewSwingPrice = SwingHigh( 1, Close, 1,2) ;
If (NewSwingPrice <> InvalidNumeric)
{
If (NewSwingPrice <> -1) //这里-1是什么意思?
{
If(UpDn <=0 && NewSwingPrice >= SwingPrice * (1+RetracePct*0.01))
{
UpDn = 1;
NewTL = True;
SaveSwing = True;
}Else If(UpDn == 1 && NewSwingPrice >= SwingPrice)
{
UpdateTL = True;
SaveSwing = True;
}
}Else //最后一个大括号是不是应该放在此else前面?
{
NewSwingPrice = SwingLow( 1, Close, 1, 2 ) ;
If (NewSwingPrice <> -1)
{
If(UpDn >=0 && NewSwingPrice <= SwingPrice * (1-RetracePct*0.01))
{
UpDn = -1;
NewTL = True;
SaveSwing = True;
}Else If(UpDn == -1 && NewSwingPrice <= SwingPrice)
{
UpdateTL = True;
SaveSwing = True;
}
}
}
If(SaveSwing )
{
SwingPrice = NewSwingPrice;
PreBar = CurrentBar;
}
If( NewTL)
{
PlotNumeric("ZigZag",SwingPrice,-1,1);
}Else If(UpdateTL)
{
If (UpDn == UpDn[1])
{
Unplot("ZigZag",PreBar - PreBar[1]+1);
PlotNumeric("ZigZag",SwingPrice,-1,1);
}Else //这个else语句感觉没必要啊,如果UpdateTL成立,UpDn一定等于UpDn[1]吧?
{
PlotNumeric("ZigZag",SwingPrice,-1,1);
}
}
}
End 当SwingHigh( 1, Close, 1,2)取不到波峰值时,返回-1 这么重要的信息TB应该在帮助文件说明,而且最后一个else语句个人觉得还是没必要存在。
页:
[1]
