之前在老版本上一直在正常使用的可转债信息读取程序,到了tbq的1376版本,忽然就不能运行了。怀疑是新版本默默修改了OnInit阶段读取基础数据的方式。现在又在催大家在5月底之前赶快升级到最新的版本。想问一下,下面这个例程,在最新的1379版本上能正常运行了吗?我怕升级之后程序不能跑,一直都没敢升级到最新,也没法试1379,哪位老师帮忙测试一下告诉我一下结果可以吗?多谢了
下面例程的使用方法:在工作区里建立一个新图表,将图表合约设置为任意一个可转债,例如110043,之后插入下面的测试程序,观察是否运行正常:
Vars
Dic<Array<String>> FeData(\"TB_BOND_CVBASE\"); //读取财务指标
Events
OnInit()
{
Print(\"Data:\"+FeData[0][0]);
SubscribeBar(FeData[0][0],Frequency,BeginDateTime);
}
OnBar(ArrayRef<Integer> indexs)
{
Integer i;
//读取财务指标
Range[ i=0:DataCount-1]
{
Commentary(\"FeData=\"+FeData[0][0]);
}
}
做了一些调整,这种读取基础数据的方式只能用在onready之后(包含onready),您修改成GetDicValue()的读取方式吧,GetDicValue()可以在oninit里面进行使用
谢谢蔡总的反馈。
基础数据这块儿我学艺不精,就只会用静态数组的方式获取数据,如果在onInit阶段现在只能GetDicValue了,能帮看一下现有这个程序该怎么改写嘛?多谢啦。强制升级时间快到了,再探索试错怕来不及,请教一下专业指引,麻烦您啦。
Vars
Dic<Array<String>> FeData(\"TB_BOND_CVBASE\"); //读取财务指标
Events
OnInit()
{
Print(\"Data:\"+FeData[0][0]);
SubscribeBar(FeData[0][0],Frequency,BeginDateTime);
}
OnBar(ArrayRef<Integer> indexs)
{
Integer i;
//读取财务指标
Range[ i=0:DataCount-1]
{
Commentary(\"FeData=\"+FeData[0][0]);
}
}
我们这边先看一下,请稍等
在你们的1379上跑起来能成功嘛?
判断程序运行结果方法如下:
程序能正常运行时的结果如下图,能够订阅图表第二个合约:
程序不能正常运行时的结果如下,订阅图表第二个合约失败: