公式加载到策略研究中,运行日志oninit函数的日志写了两次,如图:
代码如下:
Params
String logDirPathAndName(C:TradeLogSelectFutureTrader);
Vars
Defs
Events
//初始化事件函数,策略运行期间,首先运行且只有一次
OnInit()
{
Array<String> waitFuturesArr;
GetDicValue(TB_INDUSTRY,F1020080005,SystemDateTime,waitFuturesArr);
FileAppend(logDirPathAndName + + selectFutureEvent,运行时间:+DateTimeToString(SystemDateTime)+,+TextArray(waitFuturesArr)+(全部));
Numeric i;
for i=0 to GetArraySize(waitFuturesArr)-1{
SubscribeBar(waitFuturesArr[i],1d,DateAdd(20230627,-50),20230627);//这里需要订阅到数据
}
}
//Bar更新事件函数,参数indexs表示变化的数据源图层ID数组
OnBar(ArrayRef<Integer> indexs)
{
Integer datai;
String myChosenSymbols = ;
Range[datai=0:DataCount-1]{
FileAppend(logDirPathAndName + + selectFutureEvent,运行时间:+DateTimeToString(SystemDateTime)+,日期:+Text(Date+Time) +,Symbol:+Symbol+,datai:+text(datai)+,Close:+text(Close)+,ma:+text(Average(Close[1],20))+(选之中));
if(Close>Average(Close[1],20)){
myChosenSymbols = myChosenSymbols + Symbol + ,;
}
}
//放到基础数据中去
FileAppend(logDirPathAndName + + selectFutureEvent, 运行时间:+DateTimeToString(SystemDateTime)+日期:+Text(Date+Time)+,myChosenSymbols:+myChosenSymbols+(选之后));
}
查了几天,应该是全局变量,每次轮动要清理