Помогите разобраться с тестером - страница 3

 
Я немного изменил код, чтобы можно было точно узнать наличие минуток :

int a;
 
int start()
  {
//----
   int MinuteBar,i;
   if(a!=Day())
     {
      a=Day();
      i=1;
      while (MinuteBar==0 && i<1440) 
        {
         MinuteBar=iTime(Symbol(),PERIOD_M1,i);
         i++;
        }
      Print("Время ",TimeToStr(iTime(Symbol(),PERIOD_M1,i)),"  Open=",Open[1],"  Close=",Close[1],"   Time=",TimeToStr(TimeCurrent())," Time[0]=",Time[0],"  i=",i);
     }   
//----
   return(0);
  }

Прогнал бектест по Вашему fxt-файлу (из Ваших тиков)



2007.01.18 10:59:19 2006.12.29 00:00 OniNePriletyat EURUSD,H1: Время 2006.12.28 23:58 Open=1. 3141 Close=1. 3145 Time=2006.12.29 00:00 Time[0]=1167350400 i=2
2007.01.18 10:59:19 2006.12.28 00:00 OniNePriletyat EURUSD,H1: Время 2006.12.27 23:58 Open=1. 312 Close=1. 3109 Time=2006.12.28 00:00 Time[0]=1167264000 i=2
2007.01.18 10:59:19 2006.12.27 00:00 OniNePriletyat EURUSD,H1: Время 2006.12.26 23:57 Open=1. 3092 Close=1. 3095 Time=2006.12.27 00:00 Time[0]=1167177600 i=2
2007.01.18 10:59:19 2006.12.26 12:00 OniNePriletyat EURUSD,H1: Время 2006.12.26 11:58 Open=1. 3118 Close=1. 3116 Time=2006.12.26 12:00 Time[0]=1167134400 i=2
2007.01.18 10:59:19 2006.12.25 00:00 OniNePriletyat EURUSD,H1: Время 2006.12.22 22:57 Open=1. 3143 Close=1. 314 Time=2006.12.25 00:00 Time[0]=1167004800 i=2
2007.01.18 10:59:19 2006.12.22 00:00 OniNePriletyat EURUSD,H1: Время 2006.12.21 23:58 Open=1. 3167 Close=1. 3175 Time=2006.12.22 00:00 Time[0]=1166745600 i=2
2007.01.18 10:59:19 2006.12.21 00:00 OniNePriletyat EURUSD,H1: Время 2006.12.20 23:57 Open=1. 317 Close=1. 3173 Time=2006.12.21 00:00 Time[0]=1166659200 i=2
2007.01.18 10:59:19 2006.12.20 00:00 OniNePriletyat EURUSD,H1: Время 2006.12.19 23:57 Open=1. 319 Close=1. 319 Time=2006.12.20 00:00 Time[0]=1166572800 i=2
2007.01.18 10:59:19 2006.12.19 00:00 OniNePriletyat EURUSD,H1: Время 2006.12.18 23:58 Open=1. 3098 Close=1. 3094 Time=2006.12.19 00:00 Time[0]=1166486400 i=2
2007.01.18 10:59:19 2006.12.18 00:00 OniNePriletyat EURUSD,H1: Время 2006.12.15 22:58 Open=1. 3082 Close=1. 3083 Time=2006.12.18 00:00 Time[0]=1166400000 i=2
2007.01.18 10:59:19 2006.12.15 00:00 OniNePriletyat EURUSD,H1: Время 2006.12.14 23:58 Open=1. 3149 Close=1. 3143 Time=2006.12.15 00:00 Time[0]=1166140800 i=2
2007.01.18 10:59:19 2006.12.14 00:00 OniNePriletyat EURUSD,H1: Время 2006.12.13 23:58 Open=1. 3217 Close=1. 3211 Time=2006.12.14 00:00 Time[0]=1166054400 i=2
2007.01.18 10:59:19 2006.12.13 00:00 OniNePriletyat EURUSD,H1: Время 2006.12.12 23:58 Open=1. 3279 Close=1. 3286 Time=2006.12.13 00:00 Time[0]=1165968000 i=2
2007.01.18 10:59:19 2006.12.12 00:00 OniNePriletyat EURUSD,H1: Время 2006.12.11 23:58 Open=1. 3238 Close=1. 3238 Time=2006.12.12 00:00 Time[0]=1165881600 i=2
2007.01.18 10:59:19 2006.12.11 00:00 OniNePriletyat EURUSD,H1: Время 2006.12.08 22:59 Open=1. 32 Close=1. 3202 Time=2006.12.11 00:00 Time[0]=1165795200 i=2
2007.01.18 10:59:19 2006.12.08 00:00 OniNePriletyat EURUSD,H1: Время 2006.12.07 23:56 Open=1. 3287 Close=1. 329 Time=2006.12.08 00:00 Time[0]=1165536000 i=2
2007.01.18 10:59:19 2006.12.07 00:00 OniNePriletyat EURUSD,H1: Время 2006.12.06 23:58 Open=1. 328 Close=1. 3286 Time=2006.12.07 00:00 Time[0]=1165449600 i=2
2007.01.18 10:59:19 2006.12.06 00:00 OniNePriletyat EURUSD,H1: Время 2006.12.05 23:58 Open=1. 333 Close=1. 332 Time=2006.12.06 00:00 Time[0]=1165363200 i=2
2007.01.18 10:59:19 2006.12.05 00:00 OniNePriletyat EURUSD,H1: Время 2006.12.04 23:57 Open=1. 3326 Close=1. 3341 Time=2006.12.05 00:00 Time[0]=1165276800 i=2
2007.01.18 10:59:19 2006.12.04 00:00 OniNePriletyat EURUSD,H1: Время 2006.12.01 22:58 Open=1. 3329 Close=1. 3338 Time=2006.12.04 00:00 Time[0]=1165190400 i=2
2007.01.18 10:59:19 2006.12.01 00:00 OniNePriletyat EURUSD,H1: Время 2006.11.30 23:58 Open=1. 3246 Close=1. 3243 Time=2006.12.01 00:00 Time[0]=1164931200 i=2
2007.01.18 10:59:19 2006.11.30 00:00 OniNePriletyat EURUSD,H1: Время 2006.11.29 23:58 Open=1. 3144 Close=1. 3154 Time=2006.11.30 00:00 Time[0]=1164844800 i=2
2007.01.18 10:59:19 2006.11.29 00:00 OniNePriletyat EURUSD,H1: Время 2006.11.28 23:57 Open=1. 3194 Close=1. 3194 Time=2006.11.29 00:00 Time[0]=1164758400 i=2
2007.01.18 10:59:19 2006.11.28 00:00 OniNePriletyat EURUSD,H1: Время 2006.11.27 23:57 Open=1. 3134 Close=1. 3133 Time=2006.11.28 00:00 Time[0]=1164672000 i=2
2007.01.18 10:59:19 2006.11.27 00:01 OniNePriletyat EURUSD,H1: Время 2006.11.24 22:58 Open=1. 3101 Close=1. 3098 Time=2006.11.27 00:01 Time[0]=1164585600 i=2
2007.01.18 10:59:19 2006.11.24 00:00 OniNePriletyat EURUSD,H1: Время 2006.11.23 23:57 Open=1. 2943 Close=1. 2944 Time=2006.11.24 00:00 Time[0]=1164326400 i=2


А теперь проверьте наличие минутной истории в своем терминале за тестируемый период. И сделайте вывод - все работает правильно.
 
Минуток как будто нет, тест у меня получился такой:



А что значит фраза "А теперь проверьте наличие минутной истории в своем терминале за тестируемый период" ?
Если я подсовываю терминалу свой файл EURUSD60_0.fxt и тестирую на H1, то кроме него тестер использует еще какие-то файлы? Если да, то какие, и где проверить наличие минуток? Тестер что в hst файлы смотрит?

fxt файл на котором тестировал находится здесь 6,5 Мб

Спасибо.
 
Но ведь выражение iTime(NULL,1,1) как раз и означает - а выдай-ка мне на минутке значение бара с индексом 1. И где его взять ? - только в hst-файле.
 
Можно вас окончательно домучить? У меня все равно не получается. Файл минуток EURUSD1.hst сгенерировал при помощи simple_csv2fxt. Чаще всего файл удаляется и терминал качает свой, в любом случае не получился у меня тест. В настройках терминала у меня стоит по 20000000 баров в истории и на графике. Можете попробовать подсунуть мой hst, хочется узнать что получится, он здесь. Может я чего то не понимаю, но не знаю что. Спасибо.
 
Не уверен, но попробуйте заменить эту функцию так:

void WriteHstHeader()
  {
//---- History header
   int    i_version=400;
   string c_copyright;
   string c_symbol=Symbol();
   int    i_period=Period();
   int    i_digits=Digits;
   int    i_unused[16];
//----  
   ExtHstHandle=FileOpen(c_symbol+i_period+".hst", FILE_BIN|FILE_WRITE);
   if(ExtHstHandle < 0) return;
//---- write history file header
   c_copyright="(C)opyright 2003, MetaQuotes Software Corp.";
   FileWriteInteger(ExtHstHandle, i_version, LONG_VALUE);
   FileWriteString(ExtHstHandle, c_copyright, 64);
   FileWriteString(ExtHstHandle, c_symbol, 12);
   FileWriteInteger(ExtHstHandle, i_period, LONG_VALUE);
   FileWriteInteger(ExtHstHandle, i_digits, LONG_VALUE);
   FileWriteArray(ExtHstHandle, i_unused, 0, 13);
  }
А именно:
FileWriteArray(ExtHstHandle, i_unused, 0, 13);
Менять ли версию 400 на 403 - не скажу, вроде не требуется.
 
У меня нет версии 400, стоит 403. Там нет ф-ии WriteHstHeader() вместо нее, как я понял WriteHeader(), но она совсем другая, не похожа на ту что вы показываете. А что в ней менять я не знаю, мне даже трудно представить что FXTHeder делает. Я понимаю что это вопрос относится больше к stringo. За то что появился simple_csv2fxt можно сказать спасибо, раньше такой полезности не было, но все таки хочется чтобы этот скрипт работал как нужно. А вы можете подсказать что нужно в 403й версии менять? А что получилось с моим hst, у вас он тоже удаляется?
 
В скрипте действительно ошибка. Даже странно, со своим же форматом не справились ;)

Функция должна выглядеть так:
void WriteHstHeader()
  {
//---- History header
   int    i_version=400;
   string c_copyright;
   string c_symbol=Symbol();
   int    i_period=Period();
   int    i_digits=Digits;
   int    i_unused[15];
//----  
   ExtHstHandle=FileOpen(c_symbol+i_period+".hst", FILE_BIN|FILE_WRITE);
   if(ExtHstHandle < 0) return;
//---- write history file header
   c_copyright="(C)opyright 2003, MetaQuotes Software Corp.";
   FileWriteInteger(ExtHstHandle, i_version, LONG_VALUE);
   FileWriteString(ExtHstHandle, c_copyright, 64);
   FileWriteString(ExtHstHandle, c_symbol, 12);
   FileWriteInteger(ExtHstHandle, i_period, LONG_VALUE);
   FileWriteInteger(ExtHstHandle, i_digits, LONG_VALUE);
   FileWriteArray(ExtHstHandle, i_unused, 0, 15);
  }

Обратите внимание на размер массива i_unused.
Файлы:
Причина обращения: