昨晚升级后策略研究读不到换月的基础数据

我在程序中每天第一根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线图运行时又可以读出正确的换月数据。

这个是文件查看器的结果:

data-href=



TBQ升级后,策略研究的年化收益差异巨大
基础数据读取
TBQ升级后的问题
基础数据问题
没有收到换月信息,重启软件后才收到
移仓换月
升级后无法运行
tb基础数据"TB_ROLLOVER"在换月当日开盘前已经更新准备好了,是吧?
关于换月的问题
换月的Bug

咨询了一下研发人员,原因是限制了策略研究在ONInit之外请求基础数据,考虑每一次运行都请求会影响效率,所以进行了限制。

建议在Oninit里调用一下geiDicValue。

然而很多时候,基础数据需要在onready或者onbar里面读取,比如日度的会员持仓数据;升级后现在不是读不出来,就是速度慢了很多,希望能至少改回旧版那样,否则很多之前写的指标现在无法使用,真的很不方便!!

可以看一下SubscribeDic这个函数

订阅后就可以在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]);

}