Ошибки, баги, вопросы - страница 489

 
Vigor:
Видно, что эксперт работает по ценам открытия часового бара. А последняя цена открытия 23-00.

Не угадали - m30, там даже на картинке моей видно. Обнаружил баг на M5.

 
Swan:

Достигаемый эффект от отсечения сомнительный, количество принтов на 10% уменьшается, а за полной информацией надо в лог лезть..

Проверим, каждое 10 сообщение не должно отсекаться.


Неужто запись в файл быстрее вывода на экран?

Безусловно быстрее, если речь идет о тысячах строк. Разница в скорости примерно от 100 раз и выше.
 
Renat:
Проверим, каждое 10 сообщение не должно отсекаться.

Ренат, а сделаете так, чтобы можно было тестер прогнать до текущего времени ?
Очень актуально, когда рынок начинает явно ломаться, но приходится ждать окончания торгового дня и возможности переоптимизировать систему нет.

Документация по MQL5: Дата и время / TimeCurrent
Документация по MQL5: Дата и время / TimeCurrent
  • www.mql5.com
Дата и время / TimeCurrent - Документация по MQL5
 
crOss:

Ренат, а сделаете так, чтобы можно было тестер прогнать до текущего времени ?
Очень актуально, когда рынок начинает явно ломаться, но приходится ждать окончания торгового дня и возможности переоптимизировать систему нет.

Мы специально сделали отсечку последней даты, чтобы не было вопросов "почему два одинаковых прохода дали разные результаты". К сожалению, это массовая ситуация, влияющая также на все результаты оптимизации. От включения счета до последней минуты все получат слишком много проблем.

Возможно, в будущем сделаем настройку.

 
Renat:

Мы специально сделали отсечку последней даты, чтобы не было вопросов "почему два одинаковых прохода дали разные результаты". К сожалению, это массовая ситуация, влияющая также на все результаты оптимизации. От включения счета до последней минуты все получат слишком много проблем.

Возможно, в будущем сделаем настройку.

Было бы очень здорово получить такую настройку, хотя можно сделать проще... На момент начала оптимизации запоминается дата "текущее время"
и до момента начала следующей оптимизации тестер работает с ней, как с правой границей дипазона, в т.ч. и на тестовых прогонах. Тогда одинаковые проходы будут давать одинаковые результаты. И овцы целы и волки сыты )))

А что насчёт выпадения последнего часа при тестировании ? Более того, я заметил, что тестер не начинает свою работу с 00:00:00, а когда придется (см. картинку).

 

Далее, при создании мультивалютного эксперта столкнулся с проблемой...
При тестировании, получаемые котировки для конкретного инструмента в одно и тоже время изменяются в зависимости от того, какое название имеет график (см. картинку).
Общий результат работы системы, по многим инструментам, от такой флуктуации цен может значительно меняться, особенно на таймфреймах меньше часа (H1).
 

 
crOss:

Более того, я заметил, что тестер не начинает свою работу с 00:00:00, а когда придется (см. картинку).
Тестер начинает тесты с 100 бара от начала, чтобы избежать потенциальных ошибок при работе с пустой историей. Поэтому тест идет не с 00:00
 
crOss:

Далее, при создании мультивалютного эксперта столкнулся с проблемой...

При тестировании, получаемые котировки для конкретного инструмента в одно и тоже время изменяются в зависимости от того, какое название имеет график (см. картинку).
Общий результат работы системы, по многим инструментам, от такой флуктуации цен может значительно меняться, особенно на таймфреймах меньше часа (H1).

Попробуйте детальнее показать проблемное место, пожалуйста. При приложенной картинке не очень понятно.

 
Renat:
Тестер начинает тесты с 100 бара от начала, чтобы избежать потенциальных ошибок при работе с пустой историей. Поэтому тест идет не с 00:00

Скорее всего она будет не пустой и можно это проверять, а тестер должен соответственно работать (если пустая, отступает 100 баров, если нет, начинает с 00:00).
Ок. Пусть с 100го бара от начала - таймфрейм 5 минут, 100 баров = 500 минут / 60 ~ 8.3 часа. А тест начинается через 2 часа. Тоже не сходится.
А куда пропадает час последний ? Тестер завершает работу в 23:00 на предельной границе перед текущей датой. А почему не в 23:59:59 ? Последний час не лишний совсем )))

Renat:

Попробуйте детальнее показать проблемное место, пожалуйста. При приложенной картинке не очень понятно.

Эксперт имеет обработчик OnTick() слудующего вида:

void OnTick()
{
  double ask = SymbolInfoDouble("EURCHF", SYMBOL_ASK);
  double bid = SymbolInfoDouble("EURCHF", SYMBOL_BID);

  Print("ask: ", ask, "    bid: ", bid);

При тестовом прогоне на графике EURUSD получаем котировки отличные от тестового прогона на графике EURCHF (например),
хотя диапазон прогона и таймфрейм и собственно инструмент для которого получаем котировки SymbolInfoDouble("EURCHF",...) не меняется.
Вот и получается, что результаты тестового прогона различаются в зависимости от того, какой инструмент выбран. А должны быть одинаковые.



 

 
Renat:
Результат полностью зависит от самого эксперта и его чувствительности к потоку цен. Точнее всего результаты при потиковом тестировании.
Мне кажется такое явление возможно,если эксперт в расчетах использует текущий бар,который формируется.Мой использует сформированные на вход и выход,соответственно на них уже имеется однозначная цена.Поэтому и сделки по тем же ценам и  тех же местах.Вообще надо попробовать досконально короткий период изучить ...
 

crOss, дело в том, что если выбирать разные инструменты при тестировании мультивалютника, то и результаты могут быть разными, если Вы используете OnTick. Особенно при запуске эксперта на ценах открытия.

Бар одного инструмента всегда открывается раньше бара другого инструмента, так как тики всегда идут одним потоком. И тик по одному инструменту всегда будет раньше, чем тик по другому инструменту, даже если они помечены одним и тем же временем. Кстати, бар может открыться не ровно в 0 секунд, а через несколько секунд или даже минут.

То есть если Вы тестируетесь на открытии бара одного инструмента, то соответствующий бар другого инструмента ещё не открылся. А если Вы тестируете на открытии бара другого инструмента, то соответствующий бар первого инструмента уже открылся.

Поэтому и может быть разница 

Документация по MQL5: Стандартные константы, перечисления и структуры / Константы индикаторов / Ценовые константы
Документация по MQL5: Стандартные константы, перечисления и структуры / Константы индикаторов / Ценовые константы
  • www.mql5.com
Стандартные константы, перечисления и структуры / Константы индикаторов / Ценовые константы - Документация по MQL5
Причина обращения: