老师,求助写一下,sar线移动止损,写一个可以根据开仓时点,自定义起始值的sar线移动止损,
原始SAR是用最高价最低价大于或小于原始SAR ,下一根k线SAR转向改变, 现要求用开仓为时点,
例如,当日第一根k线收阳开多,在第二根k线下方开始显示sar线,当日第一根k线收阴开空,在第二根k线上方开始显示sar线,
开仓用SAR止损,如何用,
比如,开多时SAR线巳在k线上,无法用SAR止损止损的,如何用SAR止损呢,
sar(enterbars+1,2,20);
这样周期根据开仓历史来算??
老师,还不行呀!
周期是根据开仓历史来算了,没有改变SAR的转向,4楼图中开多,要改变SAR的转向,也就是说当开多,下一K起,在K线下方开始显示sar线,开多才能用sar线止损,
N:todaybar,NODRAW,COLORWHITE;
T3:= date=1180524;//
开空1:BUYSHORT(c<o AND N=1 AND T3 ,1,limitr,close);
开多1:BUY(c>o AND N=1 AND T3 ,1,1,close);
highprice:=hhv(high,ENTERBARS+1);//多仓sar初始值可以自定义
lowPrice:=llv(low,ENTERBARS+1);//空仓sar初始值可以自定义
多以来最高:=if(holding>0 and enterbars>0,ref(hhv(h,enterbars+1),1),null);
空以来最低:=if(holding<0 and enterbars>0,ref(llv(l,enterbars+1),1),null);
//看跌
if cross(0,holding) then begin
sarx:=highprice;
af:=0;
end
//看涨
if cross(holding,0) then begin
sarx:=lowPrice;
af:=0;
end
//判断出这些日子数据的上涨,或者下跌
if HOLDING >=1 and ENTERBARS>0 then begin
//如果今日最高价大于前N的最高价,加速因子需要增加
If h>多以来最高 then BEGIN
af:=af+0.02;//加速因子的累加值与最大值可以自己定义。
if af>=0.1 then BEGIN
af:=0.1;
end
end
fsar := sarx + af * (多以来最高 - sarx);
sarx:=fsar;
end
//看跌
if holding<=-1 and ENTERBARS>0 then begin
if low < 空以来最低 then begin
af := af + 0.02;
if af >= 0.1 then
af := 0.1;
end
fsar := sarx + af * (空以来最低-sarx);
sarx := fSar;
end
//显示变量
ENDANDSHOW@; //此为语句标号,GOGO语句可以用这个标号直接跳转到这里
ShowSar:sarx,CIRCLEDOT,colorred;
老师,帮我改一下,k线图被压缩,当持仓为0时,sarx显示值为0而压缩,改一下,持仓为0时sarx不显示数值,不为0,