订阅数据和发单不符

OnInit()
    {     SubscribeBar("rb2205.SHFE", "60m", 20211101, 0, Enum_Data_RolloverBackWard);
         SubscribeBar("rb2210.SHFE", "60m", 20211101, 0, Enum_Data_RolloverBackWard);
    }
    //Bar更新事件函数,参数indexs表示变化的数据源图层ID数组
 OnBar(ArrayRef<Integer> indexs)
    {
   //买多部分
If(k1==0 )
{data0.buy(lots1,data0.open);
data1.SellShort(lots1,data1.open);Return;
  }

为什么这个代码触发交易后,只发送RB2205的交易单,一直都没见RB2210的交易单呢?监控器也没显示RB2210的持仓异常?

 

程序的回测发单与账户的实际发单不符
困惑中!onbaropen 和 onbarclose 不能订阅 BAR数据?
订阅数据,时间对齐
订阅数据操作
SubscribeBar无法订阅CC数据
请问如何订阅合约的全部数据
A函数发单怎么样和映射主力合约联系起来
多数据源发单问题
套利合约价格走势和实际不符
图形与编码逻辑不符

全部代码是这样,麻烦老师帮看看到底问题出在哪里?

Params
    Numeric bz(100);    //设立标准差,即标准差中线位置,围绕该值上下做多空
    Numeric db1(100);   //下网格宽度,加仓宽度
    Numeric db2(100);   //上网格宽度,加仓宽度
      Numeric lots1(1);
        
Vars
    Series<Numeric> k1(0);Series<Numeric> d1(0);
    Series<Numeric> lowestjc;Series<Numeric> Highestjc;
    Series<Numeric> jiacha;Series<Numeric> lotsj(0);
    Global Array<Integer> layers;

Events
    //此处实现事件函数
    
    //初始化事件函数,策略运行期间,首先运行且只有一次,应用在订阅数据等操作
    OnInit()
    {    layers[0]=SubscribeBar("RB2205.SHFE", "60M", 20211218, 0, Enum_Data_RolloverBackWard);
        layers[1]=SubscribeBar("RB2210.SHFE", "60M", 20211218, 0, Enum_Data_RolloverBackWard);
    }
    //Bar更新事件函数,参数indexs表示变化的数据源图层ID数组
    OnBar(ArrayRef<Integer> indexs)
    {
        
//------------------------------------------------------------------------
 //买多部分
//------------------------------------------------------------------------
     //开仓1
If(k1==0 )
{data0.buy(lots1,data0.open);
data1.SellShort(lots1,data1.open);Return;
  }

    //减仓        
If(k1>0 )
  {
  data0.Sell(lotsj,data0.open);
  data1.BuyToCover(lotsj,data1.open);Return;
  }
  
//------------------------------------------------------------------------
 //卖空部分
//------------------------------------------------------------------------
 //开仓1
If(d1==0)
{data0.SellShort(lots1,data0.open);
data1.buy(lots1,data1.open);Return;
  }

      //减仓        
If(d1>0 )
  {
  data0.BuyToCover(lotsj,data0.open);
  data1.Sell(lotsj,data1.open);Return;
  }
   }

全部代码是这样,麻烦老师帮看看到底问题出在哪里?

 

老是显示这个,怎么回事呢?

我没加载有合约,只加载了公式,然后就运行了,可是就出现这个提示

 

估计是不是订阅数据的时候,没弄对。如果你本来加载了一个合约,再运行这个公式,可能会把RB2205加载到data1,RB2210加载到data2。您可以打开K线看下,另外看下RB2205做单方向是否反了?