Params
Numeric n(2); //高低点通道的周期
Numeric stepaf(0.02); //加速因子的步长
Numeric maxaf(0.2); //加速因子的最大值
Vars
NumericSeries hhn; //高点通道
NumericSeries lln; //低点通道
NumericSeries bysar; //新版的SAR数值
NumericSeries flag; //涨跌趋势的标志。1为涨,-1为跌;
NumericSeries byaf; //新版的加速因子
Begin
//计算高低点的通道
hhn=Highest(High[1],n);
lln=Lowest(Low[1],n);
PlotNumeric("hhn",hhn);
PlotNumeric("lln",lln);
//因为TB运行机制之回溯,第一根BAR不画图。所以跳过不运行
If(CurrentBar<1)
Return;
//从图表第二跟BAR开始作为SAR的起点。
If(CurrentBar==1)
{
If(Close>=Open)
{
flag=1;
bysar=Low;
byaf=0;
}
Else
{
flag=-1;
bysar=High;
byaf=0;
}
PlotNumeric("bysar",bysar);
Commentary("flag"+Text(flag));
return;
}
//涨势当中
If(flag==1 And CurrentBar>1)
{
//涨转跌
If(Low[1]<bysar[1])
{
flag=-1;
bysar=hhn;
byaf=0;
}
//继续涨
Else
{
//高点通道创新高
If(hhn>hhn[1] And byaf+stepaf<=maxaf)
byaf=byaf+stepaf;
//针对趋势开始的第一根BAR需要给出byaf初值
If(byaf<stepaf)
byaf=stepaf;
bysar=bysar[1]+byaf*(hhn-bysar[1]);
}
PlotNumeric("bysar",bysar,0,Green);
Commentary("flag"+Text(flag));
return;
}
//跌势当中
If(flag==-1 And CurrentBar>1)
{
//跌转涨
If(High[1]>bysar[1])
{
flag=1;
bysar=lln;
byaf=0;
}
//继续跌
Else
{
//低点通道创新低
If(lln<lln[1] And byaf+stepaf<=maxaf)
byaf=byaf+stepaf;
//针对趋势开始的第一根BAR需要给出byaf初值
If(byaf<stepaf)
byaf=stepaf;
bysar=bysar[1]+byaf*(lln-bysar[1]);
}
PlotNumeric("bysar",bysar,0,Red);
Commentary("flag"+Text(flag));
return;
}
End
这是新版?
在flag=1的时候,随时行情的上涨,突破通道,上移bysar,反而会触碰到当根K线的最低点
而比较的时候是采用 Low[1]<bysar[1]
所以,会出现行情在大幅上涨的过程中却出现多转空的情况
明显不合逻辑呀
谁有开拓者账户?借登录一下,我调试看看,是不是跟我理解的一样。
火哥,已经发给你了,帐号密码
input:n(2),stepaf(0.02),maxaf(0.2);
variable:byaf=0,flag=0;
hhn:=hhv(h,n);
lln:=llv(l,n);
if barpos=2 then begin
if c>=o then begin
flag:=1;
bysar:=low;
byaf:=0;
end
else begin
flag:=-1;
bysar:=high;
byaf:=0;
end
end
if flag<>0 then sar0:bysar;
if flag=1 and l<bysar then begin
flag:=-1;
bysar:=hhn;
byaf:=0;
end
else if flag=-1 and h>bysar then begin
flag:=1;
bysar:=lln;
byaf:=0;
end
if (flag=1 and h>ref(hhn,1)) or (flag=-1 and l<ref(lln,1)) then byaf:=min(maxaf,byaf+stepaf);
byaf:=max(stepaf,byaf);
if flag=1 then bysar:=bysar+byaf*(hhn-bysar);
if flag=-1 then bysar:=bysar+byaf*(lln-bysar);
快递个模特般的美女过来就成