您现在的位置:程序化交易>> 期货公式>> 文华财经>> 文华财经知识>>正文内容

下单组件为什么控制不住开仓数量? [赢顺期货]

  • 咨询内容:

    VAR Price; //定义最新价
    VAR sg;    //定义上轨值
    VAR xg;    //定义下轨值
    VAR MinPrice;// 定义最小变动值
    VAR dcidvol;// 定义多仓数量
    VAR kcidvol;//定义空仓数量
    //--------------------------------------------------------------------
    //主函数部分
    //--------------------------------------------------------------------
    VOID MAIN()
    {
      MinPrice=MinPrice("sr1209");
      Price=Price("SR1209"); //让PRICE函数取得SR1201的最新价
      sg=F_Variant("sg",0);
      xg=F_Variant("xg",0);
      dcidvol=F_BuyPosition();
      kcidvol=F_SellPosition();
      IF (Price>sg)
    //开仓部分
     
    {
    IF(F_BuyPosition()>=0&&F_BuyPosition()<=3)
      {
         BKid();
      }
    }

      IF (Price<xg)
    {
    IF(F_SellPosition()>=0&&F_SellPosition()<=3)
    {
       SKid();
    }
    }
    //这里加平仓部分
    }
    //------------------------------------------------------------
    //自建函数部分
    //-------------------------------------------------------------
    VOID BKid()  //建立多头仓位
    {
    T_Deal(F_DealCode(),0,0,1,Price+2*MinPrice);//发出委托
    }
    VOID SKid()  //建立kong头仓位
    {
    T_Deal(F_DealCode(),1,0,1,Price+2*MinPrice);//发出委托
    }

     

     

    IF(F_BuyPosition()>=0&&F_BuyPosition()<=3)  我认为这句话是控制开仓数量不大于3手的意思  可是为什么模拟中  实际开了5手出来

    请问  我应该如何操作才能控制这个数量问题

     

  • 赢顺技术人员:

    您是否是发出的委托单没有成交形成挂单导致的?为了逻辑严谨在这个判断之后加上&&T_IsNoOrder()==1

    该算法交易模型无挂单(发出的所有委托都已经成交,或被撤单)。
    用法:
    T_IsNoOrder()如果没有挂单返回1,否则返回0
    例:
    IF(T_IsNoOrder()) //如果没有挂单


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

相关文章

    没有相关内容