您現在的位置:程序化交易>> 期貨公式>> 文華財經>> 文華財經知識>>正文內容

麻煩看看下面的組件為什么沒有正確執行? [贏順期貨]

  • 咨詢內容:

    組件的目的:掛價開、平倉,30秒不能成交撤單對價追單。

     

    VAR Price,KPN,M;
    VAR BKID,SKID,BPID,SPID;//定義BKID,SKID,BPID,SPID
    VAR LastWithDrawFinsh; 

    VOID MAIN() //
    {

          KPN=1;//定義開平倉手數為1手
          M=0;//
          Price=Price(F_DealCode());//

     IF (F_Sig()==BK) //如果信號是買開信號
     BKID=T_Deal(F_DealCode(),0,0,KPN,Offers( F_DealCode(),"bid1")+0*MinPrice(F_DealCode()));//
     IF (F_Sig()==SK) //如果信號是賣開信號
     SKID=T_Deal(F_DealCode(),1,0,KPN,Offers( F_DealCode(),"ask1")-0*MinPrice(F_DealCode()));//
     IF (F_Sig()==BP) //如果信號是買平信號
     {
      IF (F_SellPosition()>0 && F_SellPosition()<KPN)//如果當前模型空頭持倉大于0小于KPN
      BPID=T_Deal(F_DealCode(),0,1,F_SellPosition(),Offers( F_DealCode(),"bid1")+0*MinPrice(F_DealCode()));//
      //
      ELSE IF (F_SellPosition()>=KPN)//
      BPID=T_Deal(F_DealCode(),0,1,KPN,Offers( F_DealCode(),"bid1")+0*MinPrice(F_DealCode()));//發出KPN手平空指令
      ELSE IF (F_SellPosition()==0)//
      MessageOut ("當前沒有空頭持倉");
     }
     IF (F_Sig()==SP) //如果信號是賣平信號
     {
      IF (F_BuyPosition()>0 && F_BuyPosition()<KPN)//如果當前模型多頭持倉小于KPN大于0
      SPID=T_Deal(F_DealCode(),1,1,F_BuyPosition(),Offers( F_DealCode(),"ask1")-0*MinPrice(F_DealCode()));//
      //
      ELSE IF (F_BuyPosition()>=KPN)//如果當前模型多頭持倉大于等于KPN手
      SPID=T_Deal(F_DealCode(),1,1,KPN,Offers( F_DealCode(),"ask1")-0*MinPrice(F_DealCode()));//
      ELSE IF (F_BuyPosition()==0)//如果當前持倉為0
      MessageOut ("當前沒有多頭持倉");
     }
    IF (F_Sig()==BPK) //如果信號是買平開信號
     {
      IF (F_SellPosition()>0 && F_SellPosition()<KPN)//如果當前模型空頭持倉大于0小于KPN
      {
       T_Deal(F_DealCode(),0,1,F_SellPosition(),Offers( F_DealCode(),"bid1")+0*MinPrice(F_DealCode()));//以當前模型空頭持倉手數發出買平委托
       
       T_Deal(F_DealCode(),0,0,KPN,Offers( F_DealCode(),"bid1")+0*MinPrice(F_DealCode()));//以KPN手發出買開委托
      }
      ELSE IF (F_SellPosition()>=KPN)//如果當前空頭持倉大于等于KPN手
      {
       T_Deal(F_DealCode(),0,1,KPN,Offers( F_DealCode(),"bid1")+0*MinPrice(F_DealCode()));//以KPN手發出買平委托
       
       T_Deal(F_DealCode(),0,0,KPN,Offers( F_DealCode(),"bid1")+0*MinPrice(F_DealCode()));//以KPN手發出買開委托
      }
      ELSE IF (F_SellPosition()==0)//空頭持倉為0
      {
       MessageOut ("當前沒有空頭持倉");
       T_Deal(F_DealCode(),0,0,KPN,Offers( F_DealCode(),"bid1")+0*MinPrice(F_DealCode()));//以KPN手發出買開委托
      }
     }
    IF (F_Sig()==SPK) //如果信號是賣平開信號
     {
      IF (F_BuyPosition()>0 && F_BuyPosition()<KPN)//如果當前模型多頭持倉大于0小于KPN
      {
       T_Deal(F_DealCode(),1,1,F_BuyPosition(),Offers( F_DealCode(),"ask1")-0*MinPrice(F_DealCode()));//以當前模型多頭持倉手數發出賣平委托
       
       T_Deal(F_DealCode(),1,0,KPN,Offers( F_DealCode(),"ask1")-0*MinPrice(F_DealCode()));
      }
      ELSE IF (F_BuyPosition()>=KPN)
      {
       T_Deal(F_DealCode(),1,1,KPN,Offers( F_DealCode(),"ask1")-0*MinPrice(F_DealCode()));
       
       T_Deal(F_DealCode(),1,0,KPN,Offers( F_DealCode(),"ask1")-0*MinPrice(F_DealCode()));
      }
      ELSE IF (F_BuyPosition()==0)//多頭持倉為0
      {
       MessageOut ("當前沒有多頭持倉");
       T_Deal(F_DealCode(),1,0,KPN,Offers( F_DealCode(),"ask1")-0*MinPrice(F_DealCode()));
      }
     }
          //下面是30秒沒有成交,撤單。
     //IF(CurrentTime()-LastOrderTime()<2 && LastOrderTime()!=0) 
     // RETURN; //控制組件的執行頻率 兩秒執行一次
     //icount=F_SigCount();
     LastWithDrawFinsh=ReadGlobal("LASTWITHDRAW");
     IF(T_IsNoOrder()!=1 ) //有掛單的情況
     {
      //查詢掛單然后進行撤單
      //need added code
      IF(CurrentTime()-LastOrderTime()>30 && LastWithDrawFinsh==1) //如果30秒有委托未成交,全撤,下次進入會重新下委托
      {
       T_DeleteOrderAll();//撤掉所有未成交委托。
       LastWithDrawFinsh=0;
      }
      WriteGlobal("LASTWITHDRAW", LastWithDrawFinsh);
      RETURN;
     }
     LastWithDrawFinsh=1; 
     F_FreshSig(); //刷新現有的信號
     

          IF (F_Sig()==BK) //如果信號是買開信號(以對價+M倍最少波動),保證成交
     BKID=T_Deal(F_DealCode(),0,0,KPN,Offers( F_DealCode(),"ask1")+M*MinPrice(F_DealCode()));//以最新價+0個最小表動價位發出KPN手的買開委托
     IF (F_Sig()==SK) //如果信號是賣開信號(以對價-M倍最少波動),保證成交
     SKID=T_Deal(F_DealCode(),1,0,KPN,Offers( F_DealCode(),"bid1")-M*MinPrice(F_DealCode()));//以最新價-0個最小表動價位發出KPN手的賣開委托
     IF (F_Sig()==BP) //如果信號是買平信號
     {
      IF (F_SellPosition()>0 && F_SellPosition()<KPN)
      BPID=T_Deal(F_DealCode(),0,1,F_SellPosition(),Offers( F_DealCode(),"ask1")+M*MinPrice(F_DealCode()));

      ELSE IF (F_SellPosition()>=KPN)//如果當前空頭持倉大于KPN手
      BPID=T_Deal(F_DealCode(),0,1,KPN,Offers( F_DealCode(),"ask1")+M*MinPrice(F_DealCode()));
      ELSE IF (F_SellPosition()==0)//空頭持倉為0
      MessageOut ("當前沒有空頭持倉");
     }
     IF (F_Sig()==SP) 
     {
      IF (F_BuyPosition()>0 && F_BuyPosition()<KPN)
      SPID=T_Deal(F_DealCode(),1,1,F_BuyPosition(),Offers( F_DealCode(),"bid1")-M*MinPrice(F_DealCode()));
      ELSE IF (F_BuyPosition()>=KPN)
      SPID=T_Deal(F_DealCode(),1,1,KPN,Offers( F_DealCode(),"bid1")-M*MinPrice(F_DealCode()));
      ELSE IF (F_BuyPosition()==0)//如果當前持倉為0
      MessageOut ("當前沒有多頭持倉");
          }
    IF (F_Sig()==BPK) //如果信號是買平開信號
     {
      IF (F_SellPosition()>0 && F_SellPosition()<KPN)
      {
       T_Deal(F_DealCode(),0,1,F_SellPosition(),Offers( F_DealCode(),"ask1")+M*MinPrice(F_DealCode()));
       T_Deal(F_DealCode(),0,0,KPN,Offers( F_DealCode(),"ask1")+M*MinPrice(F_DealCode()));//
      }
      ELSE IF (F_SellPosition()>=KPN)//如果當前空頭持倉大于等于KPN手
      {
       T_Deal(F_DealCode(),0,1,KPN,Offers( F_DealCode(),"ask1")+M*MinPrice(F_DealCode()));//
       T_Deal(F_DealCode(),0,0,KPN,Offers( F_DealCode(),"ask1")+M*MinPrice(F_DealCode()));//
      }
      ELSE IF (F_SellPosition()==0)//空頭持倉為0
      {
       MessageOut ("當前沒有空頭持倉");
       T_Deal(F_DealCode(),0,0,KPN,Offers( F_DealCode(),"ask1")+M*MinPrice(F_DealCode()));//以KPN手發出買開委托
      }
     }
    IF (F_Sig()==SPK) //
     {
      IF (F_BuyPosition()>0 && F_BuyPosition()<KPN)//
      {
       T_Deal(F_DealCode(),1,1,F_BuyPosition(),Offers( F_DealCode(),"bid1")-M*MinPrice(F_DealCode()));//
       T_Deal(F_DealCode(),1,0,KPN,Offers( F_DealCode(),"bid1")-M*MinPrice(F_DealCode()));//
      }
      ELSE IF (F_BuyPosition()>=KPN)//
      {
       T_Deal(F_DealCode(),1,1,KPN,Offers( F_DealCode(),"bid1")-M*MinPrice(F_DealCode()));//
       T_Deal(F_DealCode(),1,0,KPN,Offers( F_DealCode(),"bid1")-M*MinPrice(F_DealCode()));//
      }
      ELSE IF (F_BuyPosition()==0)//
      {
       MessageOut ("當前沒有多頭持倉");
       T_Deal(F_DealCode(),1,0,KPN,Offers( F_DealCode(),"bid1")-M*MinPrice(F_DealCode()));//
      }
     }
     WriteGlobal("LASTWITHDRAW", LastWithDrawFinsh);
    }
     

     

  • 贏順技術人員: 老師們吃飯去了?

     

  • 贏順客服:

    組件不發委托的原因有很多,不光是編寫的問題,向您咨詢下,您加載的是什么合約,所有的信號都沒有委托?還是第一根信號沒有委托?是否進行了倉位初始化的設定?

     

  • 網友回復: 用了這個下單組件,下午出現開倉信號后不斷幫我開倉,一秒一次開倉信號,直到沒有資金。。。。。。。。。我在下單參數里面選擇了“等K線走完下單“,應該對此沒有什么影響啊 原來同樣的模型,用軟件自身的下單設置,沒有使用過濾也是用得好好的啊~

     

  • 網友回復: 是組件問題還是模型問題呢?

 

如果以上指標公式不適用于您常用的行情軟件

或者您想改編成選股公式,以便快速選出某種形態個股的話,

可以聯系我們相關技術人員 QQ: 262069696  點擊在線交流進行 有償 改編!

 


【字體: 】【打印文章】【查看評論

相關文章

    沒有相關內容
主站蜘蛛池模板: 欧美日本一本线在线观看| 青草资源视频在线高清观看| 尤物在线观看精品国产福利片| 亚洲sss综合天堂久久久| 精品国产免费观看久久久 | 波多野结衣系列痴女| 国产V片在线播放免费无码| 中文字幕在线色| 大桥未久aⅴ一区二区| 中文字幕国产欧美| 日韩男人的天堂| 亚洲成a人一区二区三区| 男女污污在线观看| 四虎成人精品一区二区免费网站| 很黄很黄的网站免费的| 国产麻豆videoxxxx实拍| 一区二区三区伦理高清| 日本三级吃奶乳视频在线播放| 亚洲av无码片vr一区二区三区| 永久中文字幕免费视频网站| 冠希实干阿娇13分钟视频在线看| 贱妇汤如丽全篇小说| 国产精品igao视频网| 97久久免费视频| 宅男lu66国产在线播放| 久久99精品久久久久久国产| 日韩精品亚洲人成在线观看 | 欧美三级香港三级日本三级| 国産精品久久久久久久| 一级特黄aaa大片| 日本a级视频在线播放| 久久综合第一页| 欧美性a欧美在线| 亚洲精品国产高清在线观看 | 精品国产免费一区二区| 国产丝袜制服在线| 91久久青青草原线免费| 无码人妻精品一区二区| 二级毛片在线播放| 欧美综合图区亚欧综合图区| 免费中日高清无专码有限公司|