您现在的位置:程序化交易>> 期货公式>> 金字塔等>> 金字塔知识>>正文内容

后台轮询方式出现多空单互锁 [金字塔]

  • 咨询内容: 我的模型使用1秒钟轮询一次在后台运行,有时会出现既有多仓又有空仓的情况,而代码中已经通过THOLDING进行控制了,不知道那里出了问题。
    开平仓的代码如下:
     //多头平仓 IF THOLDING>0 THEN BEGIN   平多A:TSELL(平多1,THOLDING,MKT);  平多B:TSELL(平多2,THOLDING,MKT);          END 
     //空头平仓IF THOLDING<0 THEN BEGIN  平空A:TSELLSHORT(平空1,THOLDING,MKT);  平空B:TSELLSHORT(平空2,THOLDING,MKT);           END
    //开仓IF 交易时间 AND THOLDING=0 THEN BEGIN  IF  THOLDING=0 THEN BEGIN      开多A:TBUY(开多2,手数,MKT); END  IF  THOLDING=0 THEN BEGIN      开空A:TBUYSHORT(开空2,手数,MKT);   END  IF  THOLDING=0 THEN BEGIN      开多B:TBUY(开多1,手数,MKT); END IF  THOLDING=0 THEN BEGIN      开空B:TBUYSHORT(开空1,手数,MKT); ENDEND 

     

  • 金字塔客服: 如果需要判断多空仓,那么使用具体的持仓判断函数:tbuyholding和tsellholding

     

  • 用户回复: 按照你说的我改成了tbuyholding和tsellholding,但是多空互锁的情况仍然存在,难道需要加入什么错误处理的代码吗?
    代码如下IF TBUYHOLDING(1)>0 THEN BEGIN  //多头平仓   IF TBUYHOLDING(1)>0 THEN   平多A:TSELL(平多1,TBUYHOLDING(1),MKT);  IF TBUYHOLDING(1)>0 THEN   平多B:TSELL(平多2,TBUYHOLDING(1),MKT);
     //多头止损     IF LOST>=MaxLost AND TBUYHOLDING(1)>0 THEN     止损平多:TSELL(1,TBUYHOLDING(1),MKT);         //多头收盘平仓 IF TIME>=151400 AND TBUYHOLDING(1)>0 THEN      收盘平多:TSELL(1,TBUYHOLDING(1),MKT);               END 


    IF TSELLHOLDING(1)>0 THEN BEGIN   //空头平仓 IF  TSELLHOLDING(1)>0 THEN   平空A:TSELLSHORT(平空1,TSELLHOLDING(1),MKT); IF  TSELLHOLDING(1)>0 THEN    平空B:TSELLSHORT(平空2,TSELLHOLDING(1),MKT);
      //空头止损     IF LOST>=MaxLost AND TSELLHOLDING(1)>0 THEN     止损平空:TSELLSHORT(1,TSELLHOLDING(1),MKT);              //空头收盘平仓  IF TIME>=151400 AND TSELLHOLDING(1)>0 THEN      收盘平空:TSELLSHORT(1,TSELLHOLDING(1),MKT);                 END
    IF 交易时间 AND THOLDING=0 THEN BEGIN  IF  THOLDING=0 THEN       开多B:TBUY(开多2,手数,MKT);  IF  THOLDING=0 THEN       开空B:TBUYSHORT(开空2,手数,MKT);   IF  THOLDING=0 THEN       开多A:TBUY(开多1,手数,MKT); IF  THOLDING=0 THEN       开空A:TBUYSHORT(开空1,手数,MKT);END 


     

  • 网友回复: IF  THOLDING=0 THEN        开多B:TBUY(开多2,手数,MKT);   IF  THOLDING=0 THEN        开空B:TBUYSHORT(开空2,手数,MKT);    IF  THOLDING=0 THEN        开多A:TBUY(开多1,手数,MKT);  IF  THOLDING=0 THEN        开空A:TBUYSHORT(开空1,手数,MKT); END 

     

     

    1.这里的也改了

     

    2.平仓手数都写0

 

有思路,想编写各种指标公式,程序化交易模型,选股公式,预警公式的朋友

可联系技术人员 QQ: 1145508240  点击这里给我发消息进行 有偿 编写!不贵!点击查看价格!


【字体: 】【打印文章】【查看评论

相关文章

    没有相关内容