Vars
//此处添加变量
global numeric direct_sum;
global numeric series_sum;
series <numeric> bid_price;
tick call_contract_tick; //存放call的tick数据
Defs
//此处添加公式函数
Events
//此处实现事件函数
//初始化事件函数,策略运行期间,首先运行且只有一次
OnInit()
{
PrintClear;
SubscribeBar("ag2605C18000.SHFE", Frequency(), BeginDateTime());
}
OnBar(ArrayRef<Integer> indexs)
{
gettick("ag2605C18000.SHFE",call_contract_tick);
if (BarStatus==2)
{
print("------------"+TimeToString(time)+"------------");
print("买一价:"+text(call_contract_tick.bidask1.bidP)); //直接显示data1的买一价
bid_price=call_contract_tick.bidask1.bidP; //通过series变量记录data1的买一价后,再进行显示
print("bid_price:"+text(bid_price));
direct_sum=direct_sum+call_contract_tick.bidask1.bidP; //直接计算买一价的累计值
series_sum=series_sum+bid_price; //通过series变量bid_price记录买一价后,再进行累计
print("direct_sum:"+text(direct_sum)); //正常情况下,direct_sum应该等于series_sum;但实际发现经过一段时间后,二者会不相等,表明通过series记录的数据存在一些问题
print("series_sum:"+text(series_sum));
}
}
我发现通过series储存的高频数据,存在一定的滞后现象
参考以上demo,data0加载为ag2605的tick数据
插入以上demo的代码
按理来说,不论何时,通过[直接求和的direct_sum]都应该等于[通过series数据求和的series_sum]
但实际上,在程序进行一段时间后,二者会不相等
查看控制台也会发现series储存的bid_price会不等于其原始数据的现象

是否是是程序存在问题?能否修正一下?
建议先把零基础课程里关于数据结构相关的内容看一遍
对series类型的理解好像完全取决于自己的想象