请老师看下,问题出在哪?

刚加载的时候是合适的,在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;

events

OnInit()

{

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)

{

 

}


请老师帮忙看下,代码问题出在哪里哦
请帮忙看下尾盘平仓的设置
信号闪烁 老师帮看下问题在哪里
代码不发单,请指点问题在哪儿?感谢支持!
超级图表是什么,在哪里?量化学院在哪里,请给个链接!感谢!
老师麻烦帮忙看下该怎样修改
【BUG反馈】多品种交易开盘时间问题,请刘风及凯明老师进来看下
老师请问能不能只出信号不开仓
老师帮忙看下,账号注册后没有模拟资金账号
A_SendOrderEx函数一直返回false,请各位老师帮忙看下

那你贴一个没有全局变量的代码

另外你里面有data0之类的,还包含跨周期?

Global Integer BARSHU(0);  你这个前后怎么保证一致的?

您意思是这个全局变量导致的吗?在加入这个变量之前就已经出现问题了