运行下面代码,在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公式修改和重写的权利
//------------------------------------------------------------------------
顺便print一下是在哪根bar上输出,由哪个图层驱动的。
如果是盘中输出的还要print一下执行时间