以文本方式查看主题

-  金字塔客服中心 - 专业程序化交易软件提供商  (http://weistock.com/bbs/index.asp)
--  公式模型编写问题提交  (http://weistock.com/bbs/list.asp?boardid=4)
----  请教:老师,为什么我按这样开空后会出现跌停价平空  (http://weistock.com/bbs/dispbbs.asp?boardid=4&id=139149)

--  作者:永杰
--  发布时间:2016/9/5 14:30:51
--  请教:老师,为什么我按这样开空后会出现跌停价平空
//计算当前价
dqj:=DYNAINFO2(7 ,\'\');
//做多价和做空价

zdj1:=min(DYNAINFO( 28)+MINDIFF,if(SLOPE(h,2)>0 and SLOPE(c,2)>0 and SLOPE(l,2)>0 and all(SLOPE(ma1,2)>=0,3) and all(SLOPE(cci,2)>0 and SLOPE(KDJ_J,2)>0 and SLOPE(6ls,2)>0 and SLOPE(macd,2)>0,2),if((DYNAINFO( 34)-DYNAINFO( 28))<=MINDIFF,DYNAINFO( 34),DYNAINFO( 28)+MINDIFF),if(all(slope(ma1,2)>0,3) and SLOPE(c,2)<5*MINDIFF,max(round(ma1+max(slope(l,2),max(SLOPE(ma1,2),SLOPE(c,2)))*MINDIFF+0.5),max(round((ma1+SLOPE(ma1,2))/2/MINDIFF+0.5)*MINDIFF,max(round((llv(ma(c,3),3)+ema(c,3))/2/MINDIFF)*MINDIFF,round(llv(ema(c,3),3)/MINDIFF+SLOPE(c,3)+0.5)*MINDIFF))),min(round((ma1+min(slope(h,2),min(SLOPE(ma1,2),SLOPE(c,2))))/MINDIFF+0.5)*MINDIFF,min(round((llv(ma(c,3),3)+ema(c,3))/2/MINDIFF)*MINDIFF,round(llv(ema(c,3),3)/MINDIFF+SLOPE(c,3)+0.5)*MINDIFF)))));
zdj:=if((DYNAINFO( 28)-zdj1)>2*MINDIFF,DYNAINFO( 28)+MINDIFF,zdj1);

zkj1:=max(DYNAINFO( 34)-MINDIFF,if(SLOPE(h,2)<0 and SLOPE(c,2)<0 and SLOPE(l,2)<0 and all(SLOPE(ma1,2)<=0,3) and all(SLOPE(cci,2)<0 and SLOPE(KDJ_J,2)<0 and SLOPE(6ls,2)<0 and SLOPE(macd,2)<0,2),if((DYNAINFO( 34)-DYNAINFO( 28))<=MINDIFF,DYNAINFO( 28),DYNAINFO( 34)-MINDIFF),if(all(slope(ma1,2)<0,3) and SLOPE(c,2)<(-5)*MINDIFF,min(round(ma1+min(slope(h,2),min(SLOPE(ma1,2),SLOPE(c,2)))*MINDIFF-0.5),min(round((ma1+SLOPE(ma1,2))/2/MINDIFF-0.5)*MINDIFF,min(round((hhv(ma(c,3),3)+ema(c,3))/2/MINDIFF)*MINDIFF,round(hhv(ema(c,3),3)/MINDIFF+SLOPE(c,3)-0.5)*MINDIFF))),max(round((ma1+max(slope(l,2),max(SLOPE(ma1,2),SLOPE(c,2))))/MINDIFF-0.5)*MINDIFF,max(round((hhv(ma(c,3),3)+ema(c,3))/2/MINDIFF)*MINDIFF,round(hhv(ema(c,3),3)/MINDIFF+SLOPE(c,3)-0.5)*MINDIFF)))));
zkj:=if((zkj1-DYNAINFO( 34))>2*MINDIFF,DYNAINFO( 34)-MINDIFF,zkj1);

//涨停跌停跑
 //DYNAINFO( 28)买一DYNAINFO( 34)卖一DYNAINFO( 54)涨停价DYNAINFO( 55)跌停价TENTERBARS( )上次开仓到当前的周期数TENTERPRICE当前位置的上次开仓价THOLDING2当前帐户实际持仓量TOPENPROFIT当前浮动盈亏
if dqj>=(DYNAINFO( 54)-10*MINDIFF) then BEGIN
   TSELL(TBUYHOLDING(1)>0,0,LMT,DYNAINFO( 54)-MINDIFF);
   TSELLSHORT(TSELLHOLDING(1)>0,0,LMT,min(DYNAINFO( 54),DYNAINFO( 34)));
   end
 if dqj<=(DYNAINFO( 55)+10*MINDIFF) then BEGIN
  TSELLSHORT(TSELLHOLDING(1)>0,0,LMT,DYNAINFO( 55)+MINDIFF);
  TSELL(TBUYHOLDING(1)>0,0,LMT,max(DYNAINFO( 55),DYNAINFO( 28)));
end

//监控未成交单
//控制日内交易次数
IF TTOTALDAYTRADE>=300 THEN EXIT;


//收盘前强平
IF (CURRENTTIME>145800 and CURRENTTIME<145920) or  (CURRENTTIME>232800 and CURRENTTIME<=232920) then BEGIN
 TCANCEL(TREMAINQTY(0,\'\',\'\')>0,\'\');

TSELL((DYNAINFO( 34)-DYNAINFO2(7 ,\'\'))/DYNAINFO( 34)>=3  AND TBUYHOLDING(1)>0,0,LMT,zkj);//按做空价平多
TSELLSHORT((DYNAINFO2(7 ,\'\')-DYNAINFO( 28))/DYNAINFO( 28)>=3 AND TSELLHOLDING(1)>0,0,LMT,zdj);
end
IF (CURRENTTIME>1459200 and CURRENTTIME<150000) OR   (CURRENTTIME>232920 and CURRENTTIME<233000) THEN BEGIN
 TCANCEL(TREMAINQTY(0,\'\',\'\')>0,\'\');
TSELL(1,0,LMT,zkj,\'\',\'\');
TSELLSHORT(1,0,LMT,zdj,\'\',\'\');
END

按这样交易,做空成交后总会按跌停价下个平空单,我查不出原因,请老师帮帮忙吧,谢谢














  END ENDTBUY(TBUYHOLDING(1)=0 and (DYNAINFO( 54)-c)>19*MINDIFF and (c-DYNAINFO( 55))>19*MINDIFF,KCS,LMT,ZDJ);//做多价开多and (DYNAINFO( 54)-c)>19*MINDIFF and (c-DYNAINFO( 55))>19*MINDIFF TSELLSHORT(TSELLHOLDING(1)>0,0,LMT,zdj);TCANCEL(TREMAINQTY(2,\'\',\'\')>0,2);TCANCEL(TREMAINQTY(3,\'\',\'\')>0,3);if zdtj=1 and zktj=0 and TREMAINQTY(1,\'\',\'\')=0  then BEGIN END TBUYSHORT(TSELLHOLDING(1)=0 and (DYNAINFO( 54)-c)>19*MINDIFF and (c-DYNAINFO( 55))>19*MINDIFF ,kcs,LMT,zkj);//做空价开空and (DYNAINFO( 54)-c)>19*MINDIFF and (c-DYNAINFO( 55))>19*MINDIFFTSELL(TBUYHOLDING(1)>0,0,LMT,zkj);TCANCEL(TREMAINQTY(4,\'\',\'\')>0,4); TCANCEL(TREMAINQTY(1,\'\',\'\')>0,1);  if zktj=1 and zdtj=0 and TREMAINQTY(3,\'\',\'\')=0   then BEGIN IF (CURRENTTIME>90520 and CURRENTTIME<145530) or  (CURRENTTIME>210520 and CURRENTTIME<=232530) then BEGIN//开仓

--  作者:jinzhe
--  发布时间:2016/9/5 14:36:52
--  

1.dynainfo2里面的品种 不能为空,想要表达引用当前数剧这样写 dynainfO2(7,stklabel)

2.把下单日志发一下


--  作者:永杰
--  发布时间:2016/9/5 14:39:41
--  
老师我好像没有保留日志,更改了以后发现给按跌停价下平仓单,就关闭了


--  作者:永杰
--  发布时间:2016/9/5 14:45:06
--  
要么我自己再好好看看吧,谢谢老师了,我确实不知道怎么看日志
--  作者:jinzhe
--  发布时间:2016/9/5 14:54:33
--  
把这个勾一下,勾的时候会显示日志保存的地址,注意一下
图片点击可在新窗口打开查看此主题相关图片如下:1.png
图片点击可在新窗口打开查看

--  作者:永杰
--  发布时间:2016/9/5 14:56:44
--  
我没有点,谢谢老师了,那我确实没有保留日志,我以为程序成功了,就没有保留,晚上我保留一下,收盘后再多看看哪里引起的问题
--  作者:永杰
--  发布时间:2016/9/5 16:10:29
--  
老师,我找到问题了,下面这个值在期货1分钟K线里全部是0:
dqj:=DYNAINFO2(7 ,\'\');//1分钟K线这个值竟然会全部等于0!!!


老师,这是不是一个大BUG啊,就算K线走完了,也应该等于下根K线的当前值或Close值啊,怎么是0?

不过我问题解决了,不麻烦老师了,再次谢谢老师。

--  作者:jinzhe
--  发布时间:2016/9/5 16:26:03
--  
以下是引用jinzhe在2016-9-5 14:36:52的发言:

1.dynainfo2里面的品种 不能为空,想要表达引用当前数剧这样写 dynainfO2(7,stklabel)

2.把下单日志发一下

第一点


--  作者:永杰
--  发布时间:2016/9/5 18:37:26
--  
谢谢老师,我去测试下看看