全部 智大领峰 TBQuant功能 TBL语言 TB开户 问答专区 高手圈 其他
多数据源问题
2024-01-11 14:25

运行下面代码,在2017年6月2号,print了两次,而且最后一个品种c9888取的值还不一样,帮忙看下。


//------------------------------------------------------------------------


Params

//此处添加参数

numeric  start_d(20170101);

   NUMERIC  EnD_D(0);  


integer initEquity(1000000);  

   

Vars

   string freq(1d);

   

   

//此处添加变量

global Array<string> furList;

global array<numeric> org_nLiquid;

global array<string> org_symbol;

global integer i;

 

 

Defs

 

Events

//此处实现事件函数

//初始化事件函数,策略运行期间,首先运行且只有一次,应用在订阅数据等操作

OnInit()

{

//数据不齐全时会导致单腿,如sf2016年经常无成交量,也会导致出问题。

 

furList=[rb888.SHFE,i9888.DCE,j9888.DCE,al888.SHFE,ni888.SHFE

          ,MA888.CZCE,TA888.CZCE,bu888.SHFE, ru888.SHFE,pp888.DCE

          ,m9888.DCE,p9888.DCE,SR888.CZCE,CF888.CZCE,c9888.DCE];

         

for i=0 to GetArraySize(furList)-1  

   SubscribeBar(furList[i],freq,start_d,EnD_D);

//与数据源有关

Range[0:DataCount-1]

{

//=========数据源相关设置==============

AddDataFlag(Enum_Data_RolloverBackWard()); //设置后复权


AddDataFlag(Enum_Data_RolloverRealPrice()); //设置映射真实价格


AddDataFlag(Enum_Data_AutoSwapPosition()); //设置自动换仓


//AddDataFlag(Enum_Data_IgnoreSwapSignalCalc()); //设置忽略换仓信号计算


//AddDataFlag(Enum_Data_OnlyDay()); //设置仅日盘

//AddDataFlag(Enum_Data_OnlyNight()); //设置仅夜盘


//AddDataFlag(Enum_Data_StrategyQuote()); //设置返回公式行情

//AddDataFlag(Enum_Data_NotGenReport()); //设置数据源不参与生成报告标志

//=========交易相关设置==============

SetMarginRate(0.1); //设置保证金率为10%

SetCommissionRate(BitOr(Enum_Rate_FreeOfExitToday,Enum_Rate_ByFillAmount),0); //设置手续费率为成交金额的5%%,不收平今, BitOr进行位或运算即设置属性和

SetSlippage(Enum_Rate_PointPerHand,1); //设置滑点为2跳/手

SetOrderPriceOffset(1); //设置委托价为叫买/卖价偏移2跳

SetOrderMap2MainSymbol(); //设置委托映射到主力

//SetOrderMap2AppointedSymbol(symbols, multiples); //设置委托映射到指定合约,symbols是映射合约数组,multiples是映射倍数数组

}

//与数据源无关

SetBeginBarMaxCount(10); //设置最大起始bar数为10

//SetBackBarMaxCount(10); //设置最大回溯bar数为10

//=========交易相关设置==============

SetInitCapital(initEquity); //设置初始资金为100万

}


//Bar更新事件函数,参数indexs表示变化的数据源图层ID数组

OnBar(ArrayRef<Integer> indexs)

{

   integer furCount;

   array<integer> id1;

       

   

 

  Range[i=0:datacount-1]

   {                

       org_nLiquid[i]=Volatility(data[i].close[1],20);    

    org_symbol[i]=data[i].symbol;    

    id1[i]=i;    

   }

   

 

   

   if (date==20230901)

   {

      print(datetimetostring(date)+_原始数组:+TextArray(org_symbol));

      print(datetimetostring(date)+_原始数组因子值:+TextArray(org_nLiquid));      

      print(id1:+TextArray(id1));

       

       

   }

   

   if (date==20170602)

   {

      print(datetimetostring(date)+_原始数组:+TextArray(org_symbol));

      print(datetimetostring(date)+_原始数组因子值:+TextArray(org_nLiquid));      

      print(id1:+TextArray(id1));

       

     

   }

 

   

}

 


//------------------------------------------------------------------------

// 编译版本: 2020-06-06 165526

// 版权所有 gordenwch

// 更改声明 TradeBlazer Software保留对TradeBlazer平台

// 每一版本的TradeBlazer公式修改和重写的权利

//------------------------------------------------------------------------





data-href=

kyover

顺便print一下是在哪根bar上输出,由哪个图层驱动的。

如果是盘中输出的还要print一下执行时间

2024-01-18 08:43
您未登录,请先 登录注册 后发表评论
顶部