我写了一个读取基础数据的代码,代码如下:
Vars
// 定义基础数据变量,类型根据实际数据类型调整
Dic<Numeric> predsignalDic("pred_signal", True, "ag888.SHFE");
Numeric predValue;
Numeric InvalidValue(InvalidNumeric); // 无效数值标记
Events
OnInit()
{
Print("策略初始化,准备读取基础数据");
}
OnReady()
{
// 读取基础数据值
predValue = predsignalDic[0];
// 通过数值是否为无效值判断数据有效性
if (predValue != InvalidValue)
{
// 数据有效时输出
Print("基础数据读取成功");
Print("键名: pred_signal");
Print("标的: ag888.SHFE");
Print("数据值: " + Text(predValue));
Print("数据时间: " + DateTimeToString(GetDicTime(predsignalDic, 0)));
}
else
{
Print("基础数据无效或不存在");
}
}
OnBar(ArrayRef<Integer> indexs)
{
predValue = predsignalDic[0];
if (predValue != InvalidValue)
{
Commentary("pred_signal = " + Text(predValue));
}
else
{
Commentary("基础数据无效");
}
}
代码运行后提示错误 :基础数据无效或不存在,实际情况是我的基础数据是存在的,如下图所示:
下图是运行错误提示:
请高手师傅帮我查看一下代码哪里错误?
用你的代码随便测了下 ,有的吧 (我自己写入的数据)
用getdic 和setdic可能更准确点