Две копии одного советника работают по-разному. - страница 3

 

Итого:

1. Советники получают (OnTick) не все тики (ожидаемо)

2. Советники на разных графиках не получают разные тики

Две копии вот такого советника, собирающего время тиков на протяжении одной заданной минуты, выдают различающиеся файлы.

input int hour=10;
input int min=0;

int ExpNum;
string filename;
int time;
MqlTick last_tick;
string str="";

int OnInit()
  {
   long chart;

   for(ExpNum=0, chart=ChartFirst(); chart!=-1; chart=ChartNext(chart))
     {
      if(ChartGetString(chart, CHART_EXPERT_NAME)==ChartGetString(0, CHART_EXPERT_NAME)) ExpNum++;
     }

   filename="TestTicks"+IntegerToString(ExpNum)+".txt";
   time=hour*60+min; // to minutes
   return(INIT_SUCCEEDED);
  }

void OnDeinit(const int reason)
  {
   int file;

   file=FileOpen(filename,FILE_READ|FILE_WRITE|FILE_SHARE_READ|FILE_TXT|FILE_ANSI);

   if(file==INVALID_HANDLE || !FileSeek(file,0,SEEK_END))
        return;

   FileWriteString(file,str);
   FileClose(file);
  }

void OnTick()
  {
   ulong t;

   if(!SymbolInfoTick(_Symbol, last_tick)) return;

   t=((ulong)last_tick.time)%(24*3600);

   if(t/60==time)
     {
      str+=StringFormat("%d.%03d\n", t%60, last_tick.time_msc%1000);
     }

  }