我在程序中每天第一根bar看看有没有换月。
Array<String> RolloverInfoY;
Array<String> RolloverInfoT;
GetDicValue(TB_ROLLOVER_v2, Symbol, Date + Time[1], RolloverInfoY);
GetDicValue(TB_ROLLOVER_v2, Symbol, Date + Time, RolloverInfoT);
If(Date == 20220831)
FileAppend(C:\\\\LOT.txt, Symbol + : + DateTimeToString(Date + Time) + ,ys: + RolloverInfoY[0] + ,td: + RolloverInfoT[0]);
结果昨天升级后,在策略研究中:读出的基础数据是空的。
而打开K线图运行时又可以读出正确的换月数据。
这个是文件查看器的结果:
咨询了一下研发人员,原因是限制了策略研究在ONInit之外请求基础数据,考虑每一次运行都请求会影响效率,所以进行了限制。
建议在Oninit里调用一下geiDicValue。
然而很多时候,基础数据需要在onready或者onbar里面读取,比如日度的会员持仓数据;升级后现在不是读不出来,就是速度慢了很多,希望能至少改回旧版那样,否则很多之前写的指标现在无法使用,真的很不方便!!
订阅后就可以在onbar里getdicvalue了
主要周五开会没有看到帖子 等周一上班来看到已经是有评论了所以以为有人解决过了
这个问题我复现了 会转给研发人员看看什么问题
本来因为这个原因退回了旧版本,但是过几天就要强制升级了。刚刚升级了之后,又试验了一下,结果还是一样策略研究不行,策略交易、图表都正常。
TB系统的升级,默默地修改了基础数据读取方式的机制,但又不明说,得等到用户自己掉坑了,才能发现。然后文档例程里面又没更新这种变化,在社区问怎么修改原来的程序,也没人回复,让掉坑的用户只能自己摸索试着往上爬。然后呢,还催着5月31号赶紧升级,每天升级的弹窗推送得倒是挺勤。以往对TB团队挺支持和认可的,但这次改了基础数据机制又不教人怎么改新版本下的程序,还催着你升级,很有点管杀不管埋的感觉。
我试了一下,确实是这样。策略交易、图表都正常,策略研究不行。
参数优化的时候全乱套了。
测试了一下读其它的基础数据,也不行,GetDicValue 在“策略研究”中不能正常工作。
If(BarStatus == 2)
{
Array<String> Arr_Block;
GetDicValue(\"TB_INDUSTRY\", \"F101003\", SystemDateTime(), Arr_Block);
SetTBProfileString(Symbol, DateTimeToString(Date + Time), TextArray(Arr_Block));
}
If(rollover[1] != rollover)
{
Array<String> RolloverInfoY;
Array<String> RolloverInfoT;
GetDicValue(\"TB_ROLLOVER_v2\", Symbol, Date[1] + Time[1], RolloverInfoY);
GetDicValue(\"TB_ROLLOVER_v2\", Symbol, Date + Time, RolloverInfoT);
FileAppend(\"C:\\\\debug.txt\", Symbol + \":\" + DateTimeToString(Date + Time) + \",ys:\" + RolloverInfoY[0] + \",td:\" + RolloverInfoT[0]);
}