以文本方式查看主题

-  金字塔客服中心 - 专业程序化交易软件提供商  (http://weistock.com/bbs/index.asp)
--  公式模型编写问题提交  (http://weistock.com/bbs/list.asp?boardid=4)
----  请帮忙编写下  (http://weistock.com/bbs/dispbbs.asp?boardid=4&id=72619)

--  作者:一叶知秋
--  发布时间:2014/12/3 10:46:33
--  请帮忙编写下

老师 请帮忙编写下,关于止损和移动止损、平半仓的代码

开多 止损设在 开仓价下方 10个单位

       当上涨10个单位后 平半仓,止损变成开仓价上方2个单位(不再移动)

 

开空 止损设在 开仓价上方 10个单位

       当下跌10个单位后 平半仓,止损变成开仓价下方2个单位(不再移动)

 

 


--  作者:jinzhe
--  发布时间:2014/12/3 10:49:21
--  
处理中,请稍等
--  作者:jinzhe
--  发布时间:2014/12/3 10:55:37
--  

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


--  作者:一叶知秋
--  发布时间:2014/12/4 15:32:12
--  
老师 其他条件不变,就是平仓一半,止损不移动,怎么改
--  作者:jinzhe
--  发布时间:2014/12/4 15:37:33
--  

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


--  作者:一叶知秋
--  发布时间:2014/12/4 15:48:52
--  
老师 按照你这样改写的 同时平仓了
--  作者:jinzhe
--  发布时间:2014/12/4 15:50:20
--  

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


--  作者:jinzhe
--  发布时间:2014/12/4 15:50:37
--  
这样的你再试试看,我没你的开仓条件只能靠猜想来给你解决了
--  作者:一叶知秋
--  发布时间:2014/12/4 15:58:30
--  
测试结果 和图表显示的 不一致
--  作者:jinzhe
--  发布时间:2014/12/4 16:00:08
--  

http://www.weistock.com/bbs/dispbbs.asp?boardid=16&Id=57075

测试结果和图表不一致问题参考上面链接里面的问题21