怎么一会儿用begin一会儿用event?

怎么一会儿用begin(居然还可以回溯是为什么?)一会儿用event(那能不能oninit)?有什么区别? 内建函数除了不能开平仓, 其他公式应用能实现的都可以做吗?Params     Series<Numeric> Price(1);     Numeric Length(10);     NumericRef HighestBar;  //设置引用型的变量 Vars     Numeric MyVal;      Numeric MyBar;     Numeric i;  Begin     MyVal = Price;     MyBar = 0;     For i = 1 to Length-1     {         If ( Price[i] > MyVal)          {             MyVal = Price[i];             MyBar = i; //记录最大值Bar与当前Bar的偏移量         }     }     HighestBar = MyBar;  //将偏移量赋值给引用型变量,将该值传递回去     Return MyVal; //返回计算得到的最大值 End Params     Series<Numeric> Price(1);     Numeric Length(10); Vars     Numeric AvgValue;  Events OnBar(ArrayRef<Integer> indexs) {     AvgValue = Summation(Price, Length) / Length;         Return AvgValue; }

公式是event事件驱动模式 函数是begin end流程模式