以文本方式查看主题

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

--  作者:无人值守交易
--  发布时间:2017/1/16 16:31:19
--  空仓语句

BEGIN
 IF HOLDING=0 THEN BUY(DIFF1>DEA1 AND K1>D1,100%,MARKET),PERTRADER;
 IF HOLDING>0 AND (DIFF1<DEA1 AND K1<D1), THEN//如果持有多单,上次开仓到当前的周期数大于N,那么 
   BEGIN
   SELL(HOLDING,0,MARKET);//平多单,以市价卖出所有持仓量
   END
 IF HOLDING=0 THEN SELLSHORT(DIFF1<DEA1 AND K1<D1,100%,MARKET),PERTRADER;
 IF HOLDING>0 AND (DIFF1>DEA1 AND K1>D1), THEN//如果持有多单,上次开仓到当前的周期数大于N,那么 
   BEGIN
   BUYSHORT(HOLDING,0,MARKET);//平多单,以市价卖出所有持仓量
   END
END

想请问下,上述语句哪里有问题,为什么期货上不开空仓呢?


--  作者:jinzhe
--  发布时间:2017/1/16 16:34:46
--  

你的代码我没看明白

IF HOLDING>0 AND (DIFF1>DEA1 AND K1>D1), THEN

这里的逗号是什么意思?


--  作者:无人值守交易
--  发布时间:2017/1/16 16:37:48
--  

就是实现kdj,macd共振,然后,平多。

那么标准格式应该如何写呢?


--  作者:jinzhe
--  发布时间:2017/1/16 16:39:08
--  

IF HOLDING>0 AND (DIFF1>DEA1 AND K1>D1), THEN//如果持有多单,上次开仓到当前的周期数大于N,那么 
   BEGIN
   BUYSHORT(HOLDING,0,MARKET);//平多单,以市价卖出所有持仓量
   END
END

 

这里的holding>0要改成holding=0

 

 

IF HOLDING=0 THEN SELLSHORT(DIFF1<DEA1 AND K1<D1,100%,MARKET),PERTRADER;

 

这里的holding=0 要改成holding<0

 

剩下的你编译对就没问题,编译不对我也不知道你要干什么


--  作者:无人值守交易
--  发布时间:2017/1/16 16:51:01
--  

改成<0之后编译通过,但是还是没有开空仓的信号是什么原因呢?多仓开是没有问题的。

BEGIN
 IF HOLDING=0 THEN BUY(DIFF1>DEA1 AND K1>D1,100%,MARKET),PERTRADER;
 IF HOLDING>0 AND (DIFF1<DEA1 AND K1<D1), THEN//如果持有多单,上次开仓到当前的周期数大于N,那么 
   BEGIN
   SELL(HOLDING,0,MARKET);//平多单,以市价卖出所有持仓量
   END
就是只有以上这段的时候是没有问题的。

想要一个kdjmacd共振开平仓的公式。


--  作者:jinzhe
--  发布时间:2017/1/16 16:57:05
--  

那么holding>0改成holding=0的改没改?


--  作者:无人值守交易
--  发布时间:2017/1/16 17:28:27
--  

改了,然后多头的信号也没了


--  作者:jinzhe
--  发布时间:2017/1/16 17:30:17
--  
把你改后的代码发一下
--  作者:无人值守交易
--  发布时间:2017/1/16 17:52:53
--  

不好意思,从t过来,开空平空条件搞反了。谢谢回答!