老师 请帮忙编写下,关于止损和移动止损、平半仓的代码
开多 止损设在 开仓价下方 10个单位
当上涨10个单位后 平半仓,止损变成开仓价上方2个单位(不再移动)
开空 止损设在 开仓价上方 10个单位
当下跌10个单位后 平半仓,止损变成开仓价下方2个单位(不再移动)
variable:n=0,m=0;
if holding>0 and l<=enterprice-10*mindiff then sell(1,0,market);
if holding<0 and h>=enterprice+10*mindiff then sellshort(1,0,market);
if holding>0 and n=0 and h>=enterprice+10*mindiff then begin
sell(1,50%,market);
n:=1;
end
if holding>0 and n=1 and l<=enterprice+2*mindiff then begin
sell(1,0,market);
n:=0;
end
if holding<0 and m=0 and l=<enterprice-10*mindiff then begin
sellshort(1,50%,market);
m:=1;
end
if holding<0 and m=1 and h>=enterprice-2*mindiff then begin
sellshort(1,0,market);
m:=0;
end
variable:n=0,m=0;
if holding>0 and l<=enterprice-10*mindiff then sell(1,0,market);
if holding<0 and h>=enterprice+10*mindiff then sellshort(1,0,market);
if holding>0 and n=0 and h>=enterprice+10*mindiff then begin
sell(1,50%,market);
n:=1;
end
if holding>0 and n=1 and h>=enterprice+10*mindiff then begin
sell(1,0,market);
n:=0;
end
if holding<0 and m=0 and l=<enterprice-10*mindiff then begin
sellshort(1,50%,market);
m:=1;
end
if holding<0 and m=1 and l=<enterprice-10*mindiff then begin
sellshort(1,0,market);
m:=0;
end
variable:n=0,m=0;
if holding>0 and l<=enterprice-10*mindiff then sell(1,0,market);
if holding<0 and h>=enterprice+10*mindiff then sellshort(1,0,market);
if holding>0 and n=1 and h>=enterprice+10*mindiff then begin
sell(1,0,market);
n:=0;
end
if holding>0 and n=0 and h>=enterprice+10*mindiff then begin
sell(1,50%,market);
n:=1;
end
if holding<0 and m=1 and l=<enterprice-10*mindiff then begin
sellshort(1,0,market);
m:=0;
end
if holding<0 and m=0 and l=<enterprice-10*mindiff then begin
sellshort(1,50%,market);
m:=1;
end
http://www.weistock.com/bbs/dispbbs.asp?boardid=16&Id=57075
测试结果和图表不一致问题参考上面链接里面的问题21