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

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

{

 

}


评论区
202****1224543120

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

2023-08-02 20:58
顶部