以文本方式查看主题

-  金字塔客服中心 - 专业程序化交易软件提供商  (http://222.73.7.161/bbs/index.asp)
--  公式模型编写问题提交  (http://222.73.7.161/bbs/list.asp?boardid=4)
----  随机开仓  (http://222.73.7.161/bbs/dispbbs.asp?boardid=4&id=165608)

--  作者:陈志海11
--  发布时间:2018/9/20 10:48:26
--  随机开仓
N:RAND(2);
IF N=1 AND HOLDING=0 THEN BEGIN 
   BUY(1,20%,LIMIT,CLOSE);
   DRAWTEXT(1 ,LOW ,"开多" ,1 );
END 
IF (CLOSE-AVGENTERPRICE)/AVGENTERPRICE>=0.1 OR (AVGENTERPRICE-CLOSE)/AVGENTERPRICE<=-0.1 AND HOLDING>0 THEN BEGIN
   SELL(1,HOLDING,MARKET);
   DRAWTEXT(1 ,LOW ,"平多" ,1 );
END
IF N=2 AND HOLDING=0 THEN BEGIN
   BUYSHORT(1,20%,LIMIT,CLOSE);
   DRAWTEXT(1 ,LOW ,"开空" ,1 );
END 
IF (AVGENTERPRICE-CLOSE)/AVGENTERPRICE<=-0.1 AND (AVGENTERPRICE-CLOSE)/AVGENTERPRICE>=0.1 AND HOLDING<0 THEN BEGIN 
   SELLSHORT(1,HOLDING,MARKET);
   DRAWTEXT(1 ,LOW ,"平空" ,1 );
END 
这段代码是想表达随机开仓,止盈止损都是10%,开始好像写出来在图上显示的信号不一致,出错在那个环节?
   

--  作者:FireScript
--  发布时间:2018/9/20 11:12:16
--  
 N:RAND(2);
IF N=1 AND HOLDING=0 THEN BEGIN
   BUY(1,20%,LIMIT,CLOSE);
   DRAWTEXT(1 ,LOW ,"开多" ,1 );
END
Q:(CLOSE-AVGENTERPRICE)/AVGENTERPRICE;
IF ((CLOSE-AVGENTERPRICE)/AVGENTERPRICE>=0.1 OR (AVGENTERPRICE-CLOSE)/AVGENTERPRICE>=0.1) AND HOLDING>0 THEN BEGIN
   SELL(1,HOLDING,MARKET);
   DRAWTEXT(1 ,LOW ,"平多" ,1 );
END
IF N=2 AND HOLDING=0 THEN BEGIN
   BUYSHORT(1,20%,LIMIT,CLOSE);
   DRAWTEXT(1 ,LOW ,"开空" ,1 );
END
IF ((AVGENTERPRICE-CLOSE)/AVGENTERPRICE<=-0.1 or (AVGENTERPRICE-CLOSE)/AVGENTERPRICE>=0.1 )AND HOLDING<0 THEN BEGIN
   SELLSHORT(1,HOLDING,MARKET);
   DRAWTEXT(1 ,LOW ,"平空" ,1 );
END

上面这个红色部分,应该改下。因为你这里计算是按照 AVGENTERPRICE-CLOSE来的。