请老师看下,问题出在哪?
刚加载的时候是合适的,在ONBAROPEN事件中,但是运行几根BAR后图形就会发生变化,再重新加载就会产生完全不一样的图形线条输出,能解答一下吗?Params Numeric FASTDAY(3); Numeric SLOWDAY(44); //1h5m Numeric Ratio(10000); String Symbo(\"rb2310.SHFE\"); Vars Integer js(0); Global Numeric Total(0); Global Integer id(0); Global Integer ss(0); Series<Integer> serValue(0); Integer Jishu(0); Series<Numeric> AvgValue1; Series<Numeric> AvgValue2; // Series<Numeric> AvgValue3; //Series<Numeric> AvgValue4; Numeric TurtleUnits; Numeric Jiage1; Numeric Jiage2; Global Integer BARSHU(0); BOOL Zcon; Bool Dcon;eventsOnInit(){ id = CreateTimer(50000); SubscribeBar(Symbo,\"1m\",20230301, 0, 0); SubscribeBar(Symbo,\"45m\",20230301, 0, 0); SubscribeTick(Symbo);}OnBarOpen(ArrayRef<Integer> indexs){ print(\"Systemdatetime=\"+text(systemdatetime)); print(\"------------------\"); DATA0.AvgValue1=data0.XAverage(data1.Close,FASTDAY); //12 DATA0.AvgValue2=data0.XAverage(data1.Close,SLOWDAY); //50 //涨 Data0.PlotNumeric(\"FASTDAY\",DATA0.AvgValue1); //data0.close, Data0.PlotNumeric(\"SLOWDAY\",DATA0.AvgValue2); //data0.close, PlotString(\"第几BAR\",TEXT(CURRENTBAR()),Data0.high+60,Black); PlotString(\"距离上次信号BAR\",TEXT(BARSHU),Data0.high+80,Black); TurtleUnits=1; Zcon=CrossOver(data0.AvgValue1,data0.AvgValue2); Dcon=CrossUnder(data0.AvgValue1,data0.AvgValue2); if (Zcon and (MarketPosition<>1) and ((CurrentBar()-BARSHU)>25)) { PlotString(\"开仓\",\"开多仓\",Data0.high+20,Green); PlotString(\"趋势\",\"涨\",Data0.high+10,Blue); IF (MarketPosition==0) { data0.Buy(TurtleUnits,0); } IF ((MarketPosition==-1) and (MarketPosition<>1)) { data0.BuyToCover(1,0); data0.Buy(TurtleUnits,0); } PlotString(\"距离上次信号BAR数\",TEXT(CURRENTBAR()-BARSHU),Data0.high+40,Yellow); BARSHU=CurrentBar(); } if (Dcon and (MarketPosition<>-1) and ((CurrentBar()-BARSHU)>25)) { PlotString(\"开仓\",\"开空仓\",Data0.High+20,Green); PlotString(\"趋势\",\"跌\",Data0.high+10,Blue); IF (MarketPosition==0) { data0.SellShort(TurtleUnits,0); } IF ((MarketPosition==1) and (MarketPosition<>-1)) { data0.Sell(1,0); data0.SellShort(TurtleUnits,0); } PlotString(\"距离上次信号BAR数\",TEXT(CURRENTBAR()-BARSHU),Data0.high+40,Yellow); BARSHU=CurrentBar(); } } OnTimer(Integer id,Integer intervalMillsecs) { }