通过onready订阅数据源似乎存在bug
Vars //此处添加变量 global Integer n; Global Bool subFlag(True); //用来设置开关,避免重复订阅数据 Defs //此处添加公式函数 Events //此处实现事件函数 //初始化事件函数,策略运行期间,首先运行且只有一次 OnInit() { PrintClear; } onready() { if (subFlag) { SubscribeBar("au2603C1120.SHFE", Frequency(), BeginDateTime()); SubscribeBar("au2603P1120.SHFE", Frequency(), BeginDateTime()); subFlag=false; } n=n+1; print("n:"+text(n)); } //Bar更新事件函数,参数indexs表示变化的数据源图层ID数组 OnBar(ArrayRef<Integer> indexs) { n=n+1; } 如题,正常情况下,公式的运行顺序应该是oninit(1次)>onready(1次)>onbar;但是如果在onready里面订阅数据源,则会出现onready重复运行及第一根bar多次运行的现象:比如上述代码里面,安理来说输出结果应该是“n:1”但是实际输出结果是:“n:1 换行 n:3”说明实际运行情况是oninit(1次)>onready(1次)>onbar(2次)>onready(1次)>onbar是不是程序的bug?望程序员老师及时修正,谢谢