以文本方式查看主题

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

--  作者:TIANS
--  发布时间:2012/5/6 7:27:21
--  止损没反应
编了个一分钟突破均线开平仓双向交易的模型,同时设了止损想来控制价格在均线上下来回波动频繁交易,下面是我的公式。

VARIABLE:止损值=0;
短期高点:=HHV(H,60);
短期低点:=LLV(L,60);
做多条件:=CROSS(CLOSE,均线);
做空条件:=CROSS(均线,CLOSE);

IF 做多条件 AND 止损值=0 THEN 
   BEGIN 
   SELLSHORT(HOLDING<0,HOLDING,MARKET),ORDERQUEUE; //平空 
   BUY(HOLDING=0,交易数量,MARKET),ORDERQUEUE;//开多
   止损值:=短期低点;  
END

IF 做空条件 AND 止损值=0  THEN
   BEGIN
   SELL(HOLDING>0,HOLDING,MARKET),ORDERQUEUE;//平多
   BUYSHORT(HOLDING=0 ,交易数量,MARKET),ORDERQUEUE;//开空
   止损值:=短期高点;
END
//***************************************

IF 止损值<>0 AND CLOSE<止损值 THEN //多头止损
BEGIN
   SELL(HOLDING>0,HOLDING,MARKET),ORDERQUEUE;
   BUYSHORT(HOLDING=0 ,交易数量,MARKET),ORDERQUEUE;
   止损值:=0;
END   
IF 止损值<>0 AND CLOSE>止损值 THEN //空头止损
BEGIN
   SELLSHORT(HOLDING<0,HOLDING,MARKET),ORDERQUEUE; //平空 
   BUY(HOLDING=0 ,交易数量,MARKET),ORDERQUEUE;//开多
   止损值:=0;
END
图片点击可在新窗口打开查看

测试下来还是以均线开平仓,止损程序没起作用,如果前期开仓没有触发止损确实下面就一直按均线开平仓了。
我想在开平仓条件中加ENTERBARS开仓历时来控制,这样就一直没开仓了。
想法很简单,编出来很矛盾,求高手看看有什么简单好用的控制方法编一个。

--  作者:TIANS
--  发布时间:2012/5/6 7:43:42
--  
在公式中加入收盘过滤信号语句if time=closetime(0) then 止损值:=0;还是不起作用
--  作者:just
--  发布时间:2012/5/7 14:50:13
--  

问题在处理,稍后回复

 


--  作者:just
--  发布时间:2012/5/7 15:14:47
--  

VARIABLE:止损值=0,aa=0;
短期高点:HHV(H,5);
短期低点:LLV(L,5);
均线:ma(c,60);
cc:c;
交易数量:=1;
做多条件:=CROSS(CLOSE,均线);
做空条件:=CROSS(均线,CLOSE);

 

 


IF 做多条件 AND aa=0 THEN
   BEGIN
   SELLSHORT(HOLDING<0,HOLDING,MARKET),ORDERQUEUE; //平空
   BUY(HOLDING=0,交易数量,MARKET),ORDERQUEUE;//开多
   止损值:=短期低点;
   aa:=1; 
END


IF 做空条件 AND aa=0  THEN
   BEGIN
   SELL(HOLDING>0,HOLDING,MARKET),ORDERQUEUE;//平多
   BUYSHORT(HOLDING=0 ,交易数量,MARKET),ORDERQUEUE;//开空
   止损值:=短期高点;
   aa:=2;
END
输出:止损值,linethick0;

 

IF aa=1 AND CLOSE<=止损值 THEN //多头止损
BEGIN
   多止损:SELL(HOLDING>0,HOLDING,MARKET),ORDERQUEUE;
   BUYSHORT(HOLDING=0 ,交易数量,MARKET),ORDERQUEUE;
   止损值:=0;
   aa:=0;
END  
IF aa=2 AND CLOSE>=止损值 THEN //空头止损
BEGIN
   空止损:SELLSHORT(HOLDING<0,HOLDING,MARKET),ORDERQUEUE; //平空
   BUY(HOLDING=0 ,交易数量,MARKET),ORDERQUEUE;//开多
   止损值:=0;
   aa:=0;
END