- 精华
- 3
- 在线时间
- 12229 小时
- UID
- 5
- 积分
- 26584
- 帖子
- 12686
- 阅读权限
- 200
- 注册时间
- 2007-7-20
- 最后登录
- 2021-11-3
- 精华
- 3
- UID
- 5
- 积分
- 26584
- 帖子
- 12686
- 主题
- 49
- 阅读权限
- 200
- 注册时间
- 2007-7-20
- 最后登录
- 2021-11-3
|
hunter1988 发表于 2019-9-20 11:50
老师,不对啊,我这么写了,标出来的转折点明显多了。比zigzag函数画出来的连线的转折点多的多。
这个对 ...
Params
Numeric RetracePct(3);
Vars
NumericSeries SwingPrice;
Numeric SwingHighPrice;
Numeric SwingLowPrice;
NumericSeries PreBar(0);
NumericSeries UpDn(0);
Bool SaveSwing(False);
Bool NewTL(False);
Bool UpdateTL(False);
begin
If(CurrentBar == 0)
SwingPrice = Close;
SwingHighPrice = SwingHigh( 1, Close, 1,2);
SwingLowPrice = SwingLow( 1, Close, 1, 2 );
If (SwingHighPrice <> -1)
{
If(UpDn <=0 && SwingHighPrice >= SwingPrice * (1+RetracePct*0.01))
{
UpDn = 1;
NewTL = True;
SaveSwing = True;
}Else If(UpDn == 1 && SwingHighPrice >= SwingPrice)
{
UpdateTL = True;
SaveSwing = True;
}
If(SaveSwing)
{
SwingPrice = SwingHighPrice;
PreBar = CurrentBar;
}
}Else If(SwingLowPrice <> -1)
{
If(UpDn >=0 && SwingLowPrice <= SwingPrice * (1-RetracePct*0.01))
{
UpDn = -1;
NewTL = True;
SaveSwing = True;
}Else If(UpDn == -1 && SwingLowPrice <= SwingPrice)
{
UpdateTL = True;
SaveSwing = True;
}
If(SaveSwing )
{
SwingPrice = SwingLowPrice;
PreBar = CurrentBar;
}
}
If( NewTL)
{
PlotNumeric("ZigZag",SwingPrice,0,-1,1);
PlotString("txt","转折点",Close,Red,1);
}Else If(UpdateTL)
{
If (UpDn == UpDn[1])
{
Unplot("ZigZag",PreBar - PreBar[1]+1);
PlotNumeric("ZigZag",SwingPrice,0,-1,1);
Unplot("txt",PreBar - PreBar[1]+1);
PlotString("txt","转折点",Close,Red,1);
}Else
{
PlotNumeric("ZigZag",SwingPrice,0,-1,1);
PlotString("txt","转折点",Close,Red,1);
}
}
End |
|