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

 
urry26, кусок кода, иллюстрирующего проблему - в студию. И сопутствующие обстоятельства тоже озвучьте. Если мы не сможем воспроизвести проблему, то и говорить собственно не о чем (мы должны попробовать устриц на вкус)
 
Re: stringo

Попробовал запустить эксперт, который записывает количество тиков в журнал, и открывает BUY если цены открытия и закрытия на предыдущем баре не совпадают:
int start()
  {
   static int tik1;
   static int tik2=1000;
   tik1++;
   if(tik1>tik2)
     {
      Print("Количество тиков - ",tik2);
      tik2=tik2+1000;
     }
   if(OrdersTotal()==0 && iOpen(NULL,0,1)!=iClose(NULL,0,1))
     {
      OrderSend(Symbol(),OP_BUY,0.1,Ask,2,Ask-15*Point,Ask+15*Point,"",123,0);
     }
   return(0);
  }
При тестировании на обычном fxt файле все нормально работает, журнал выглядит так:


А при запуске не сгенерированном из тиковой истории получается такая картинка:


Тики идут, а эксперт даже не пытается открыть позицию. Тоесть условие, при котором цены открытия и закрытия на сформировавшемся баре не совпадают никогда не выполняется. Это может быть в случае если каждый тик считается как отдельный бар, это-же подтверждает и вкладка "отчет", в которой количество баров совпадает с количеством тиков.
 
stringo 05.10.2006 10:28 >>urry26, кусок кода, иллюстрирующего проблему - в студию. И сопутствующие обстоятельства тоже озвучьте. Если мы не сможем >>воспроизвести проблему, то и говорить собственно не о чем (мы должны попробовать устриц на вкус)
Файлы:
111.txt  1 kb
 
OniNePriletyat, я перезалил скрипта. Оказывается, первоначально выложил не тот вариант. Спасбо, что обратили внимание.
 
stringo писал (а):
OniNePriletyat, я перезалил скрипта. Оказывается, первоначально выложил не тот вариант. Спасбо, что обратили внимание.
Спасибо, все правильно работает.

Запустил на тиковой истории эксперт, который несколько месяцев на демо стоит, результат полностью противоположный. Скорее всего не все тики записались, думал добиться качества моделирования 100% чтобы экономить время. Да не тут то было. Просто обидно.

Последние вопросы.
1. Если в CSV несколько тиков в секунду, то все эти тики в fxt конвертируются?
2. Если в CSV время с точностью до секунды, то и в fxt тоже?
3. Если сборщик тиков открывает csv файл в "init" а закрывает в "deinit", то при тиковой истории за несколько месяцев когда файл достигает к примеру 100Мб весе эти 100Мб висят в оперативке? Тоесть лучше записывать тики в отдельный файл за каждый месяц, а затем их соединять чтобы разгрузить оперативку, я правильно понимаю?

Ворбщем все списываю на некачественную тиковую историю. Придется тянуть резервную выделенку и писать заново, никуда не денешься.

Спасибо.
 

Запускаю такой експерт на Н1:

int a;
int start()
  {
   if(a!=Hour())
     {
      a=Hour();
      Print("Время ",iTime(NULL,1,1));
     }
   return(0);
  }

Получаю такой результат:



Мне думалось что iTime возвращает время открытия бара в секундах, а почему там нули?

 
OniNePriletyat:

Мне думалось что iTime возвращает время открытия бара в секундах, а почему там нули?

datetime iTime( string symbol, int timeframe, int shift)
Возвращает значение времени открытия указанного параметром shift бара с соответствующего графика (symbol, timeframe). В случае ошибки функция возвращает 0. Для получения дополнительной информации об ошибке необходимо вызвать функцию GetLastError().
 
Наверное истории на периоде М1 нет в терминале за указанные дни?
У меня это работает вполне нормально.
 
Тест делал так:
1. Из тикового файл EURUSD.csv конвертировал EURUSD60_0.fxt при помощи simple_csv2fxt
2. Поскольку точно не знаю как работает тестер, на всякий случай конвертировал EURUSD1_0.fxt и hst файлы для часовок и минуток.
3. Файлы разложил по соответствующим папкам.
4. При тестировании галку пересчитать не ставил.
5. Пробовал переустановить терминал, и заново скачать файлы simple_csv2fxt и FXTHeader ничего не изменилось (билд 201).
6. Експерты которые используют один таймфрейм тестируются нормально.
 
Подниму вопрос еще раз, на сгенерированном fxt файле не всегда работает ф-ия iTime.
Текст експерта такой:
int a;
int start()
  {
   if(a!=Day())
     {
      a=Day();
      Print("Время ",iTime(NULL,1,1));
     }
   return(0);
  }
Результат такой:


Если у кого-то есть желание помочь, попробуйте повторить тест на своем компе.
Тики находятся здесь: http://www.earnmoney.com.ua/forex/EURUSD.rar 5,7 Мб
simpl_csv2fxt здесь: 'simple csv2fxt'
Если у кого будет положительный результат подскажите как нужно проводить тестирование.
Спасибо.