当订阅多个基础数据时,OnBar执行一次,OnDic是不是会执行多次?
对于历史行情,OnBar每根k线只会执行一次,而OnDic是不是订阅了几个数据就会执行几次?这样会导致一个问题:Var中声明的Numeric变量,每次执行OnBar前,首先将这个变量赋初值为0,然后对这个变量进行操作。而执行 OnDic时,每次执行都会将这个变量赋初值为0,然后操作这个变量,收到几个基础数据,这个变量就被重置为0几次。Vars Plot plt; Numeric total; Numeric a; Numeric b; Events OnInit() { SubscribeDic("订阅数据1",Symbol); SubscribeDic("订阅数据2",Symbol); } //订阅了两个数据,意味着执行一次OnBar, 会执行两次OnDic OnDic(StringRef dicName, StringRef dicSymbol, DicDataRef dicValue) { if(dicName=="订阅数据1" and dicSymbol == Symbol) { //开始执行前,a, b, total都等于0 dicValue.getValue(a); plt.line("a", a); plt.line("total", a + b);//执行这句时,a不等于0,b等于0,最后total等于a的值 } else if(dicName=="订阅数据2" and dicSymbol == Symbol) { //开始执行前,a, b, total都等于0 dicValue.getValue(b); plt.line("b", b); plt.line("total", a + b);//执行这句时,a等于0,b不等于0,最后total等于b的值 } //最后total到底是多少?我怎么才能得到 total = a + b 正确的值 }