Работа с File(Open:Read,Write), обработка данных из файла - страница 2

 

После перемещаю папку из File мт4 в папку File тэстера мт5

а в советнике читается таким образом:

сначала первую читает время в сек. если соотв. тек. бару,

то следующим берет значение буфера индюка

Код выглядит так:

//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit()
{
 if (FileIsExist("kor.bin",0)==true) Print("ФАЙЛ ОБНАРУЖЕН = ...");
 handle = FileOpen("kor.bin", FILE_BIN|FILE_READ);
 if(handle < 0) Print("-----Неоткрывается : ошибка ",GetLastError());
 return(0);
}
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
  {
   FileClose(handle);
  }
//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick()
{

....

     bool est = false;
     double kor = 0.0;
     datetime bar[1];
     CopyTime(Symbol_1,NULL,0,1,bar);
     ulong New = (ulong) bar[0];
     while (est == false)
      {
       kor=FileReadDouble(handle); 
       Print("1...kor=",kor,"New=",New);
       if (kor == New) 
        {
         kor = FileReadDouble(handle);
         Print("2...kor=",kor);
         est = true;
         break;
        }
       if (New < kor - 3600)
        {
         kor = 0.0;
         Print ("New=",New,"kor=",kor);
         est = true;
         break;
        }
      } 
.....

Все работает! Спасибо всем за помощь, Удачи!

//---

В этой строке:

if (New < kor - 3600)

3600 это время 1 час в секундах, на тот случай если пропустим время или его небудет

используется для М1, для остальных периодов - нужно увеличить его примерно до 86400*2 = для дневного

 
Good
Причина обращения: