Блог им. Crazy_Trading |Тестирование робота на истории - что то пошло не так ))

Всем привет, добрые люди по моей вчерашней просьбе скинули склеенную 5 минутную историю с 1997 по 2016 гг
одним большим файлом.. 

поскольку тест проводился в МТ4, то я решил, что неплохо былоБЫ )) воткнуть всю эту историю в массивы в МТ4, и прогнать по уже имеющимся алгоритмам в самом терминале… иначе ведь надо будет писать полностью свой собственный тестер как отдельное приложение... 

файл мне скинули вот такого формата: 

ESU97;19970910;001000000;934.00;934.00;934.00;934.00;0
парсим простыми методами: 

int start1() 
{
   int hFile,

   bool read = true;
   
   datetime tm1 = TimeCurrent(), tm2;
   
  string filename = "ES.TXT";   
   
   hFile = FileOpen(filename, FILE_CSV|FILE_READ, ';');  if (hFile<1) {  Alert("Файл "+filename+" не найден!"); return(false); }
   
   while (read)
      {

         int i = ArraySize(HistBar); ArrayResize(HistBar,i+1);
         
         HistBar[i].NameB = FileReadString(hFile);
         string data = FileReadString(hFile);
         string data1 = FileReadString(hFile);
         HistBar[i].TimeB = conkdata(data, data1); 
         HistBar[i].OpenB = FileReadString(hFile);
         HistBar[i].HighB = FileReadString(hFile);
         HistBar[i].LowB = FileReadString(hFile);
         HistBar[i].CloseB = FileReadString(hFile);
         HistBar[i].SizeB = FileReadString(hFile);
         
         if(FileIsEnding(hFile)==true) read = false;
         
       //  Print(TimeToString(HistBar[i].TimeB,  TIME_DATE|TIME_MINUTES  ), "    ", DoubleToStr(HistBar[i].OpenB, 2),"  ",DoubleToStr(HistBar[i].HighB, 2),"  ",DoubleToStr(HistBar[i].LowB, 2),"  ",DoubleToStr(HistBar[i].CloseB, 2),"  " );
      }
tm2 = TimeCurrent();
   FileClose(hFile);
Print(ArraySize(HistBar));
Print(TimeToString(tm1,  TIME_DATE|TIME_SECONDS  ) ,"    ",TimeToString(tm2,  TIME_DATE|TIME_SECONDS  ) );
return (0);
}
/////////////////////////////
datetime conkdata( string data, string data1)
{
   datetime vzv = StrToTime(StringSubstr(data, 0, 4) + "."+ StringSubstr(data, 4, 2)+ "."+ StringSubstr(data, 6, 2)+ " "+ StringSubstr(data1, 0, 2)+ ":"+ StringSubstr(data1, 2, 2));
   return(vzv);
}
и все вроде хорошо… но что то пошло не так )) 

( Читать дальше )

....все тэги
2010-2020
UPDONW