Друзья! Вопрос следующий: при прогоне мультивалютника на разных парах - разный результат. Если разбить на части (по каждой паре) и каждую часть прогнать на соответствующей ей паре - один результат. Собираю в кучу и прогоняю, например на евре, - другой, на йене - третий. Основной итог примерно похож во всех случаях, но должен ли он быть одинаковым и не зависеть от того на какой паре тестируется мультивалютник?
- Тестер стратегий в торговой платформе MetaTrader 5
- Как подключиться к веб-платформе MetaTrader 5
- MetaTrader 5 для Форекса, фондовой биржи и фьючерсов
Forex_Noob:
Друзья! Вопрос следующий: при прогоне мультивалютника на разных парах - разный результат. Если разбить на части (по каждой паре) и каждую часть прогнать на соответствующей ей паре - один результат. Собираю в кучу и прогоняю, например на евре, - другой, на йене - третий. Основной итог примерно похож во всех случаях, но должен ли он быть одинаковым и не зависеть от того на какой паре тестируется мультивалютник?
Вы используете OnTick() или OnTimer()?
Друзья! Вопрос следующий: при прогоне мультивалютника на разных парах - разный результат. Если разбить на части (по каждой паре) и каждую часть прогнать на соответствующей ей паре - один результат. Собираю в кучу и прогоняю, например на евре, - другой, на йене - третий. Основной итог примерно похож во всех случаях, но должен ли он быть одинаковым и не зависеть от того на какой паре тестируется мультивалютник?
Forex_Noob:
OnTick()
OnTick()
Поэтому рассчёт советника зависит от прихода тика по торгуемому символу. Лучше OnTimer():
int OnInit() { EventSetTimer(1); // вызов рассчёта советника каждую 1 сек независимо от прихода тиков //... } void OnTimer() // вместо OnTick { // тело советника } void OnDeinit(const int reason) { //... EventKillTimer(): }
paladin800:
Т.е. если советкни тестируется на йене, то и евра и фунт ждут когда придет тик по йене? И пока его нет, нет тиков для советника и по евре и прочим?
Поэтому рассчёт советника зависит от прихода тика по торгуемому символу. Лучше OnTimer():
Forex_Noob:
Т.е. если советкни тестируется на йене, то и евра и фунт ждут когда придет тик по йене? И пока его нет, нет тиков для советника и по евре и прочим?
Да. Для рассчёта любого советника/индикатора нужно "событие", которое провоцирует вызов рассчёта. В OnTick это происходит с приходом тика то тому символу, на котором торгует/тестируется программа. При OnTimer событие происходит по установленному пользователем отрезку времени, в моём примере выше каждую 1 сек.
Т.е. если советкни тестируется на йене, то и евра и фунт ждут когда придет тик по йене? И пока его нет, нет тиков для советника и по евре и прочим?
paladin800:
Да. Для рассчёта любого советника/индикатора нужно "событие", которое провоцирует вызов рассчёта. В OnTick это происходит с приходом тика то тому символу, на котором торгует/тестируется программа. При OnTimer событие происходит по установленному пользователем отрезку времени, в моём примере выше каждую 1 сек.
Попробовал. Выставил секунду. Срок теста увеличился в десятки раз?:( Если в цифрах, то тест вместо 40 минут увеличился до 20 часов... Думаю, может на каждую пару свой кусок кода выставить (в виде автономного советника)и не заморачиваться с общей сборкой в виде мультивалютника?
Да. Для рассчёта любого советника/индикатора нужно "событие", которое провоцирует вызов рассчёта. В OnTick это происходит с приходом тика то тому символу, на котором торгует/тестируется программа. При OnTimer событие происходит по установленному пользователем отрезку времени, в моём примере выше каждую 1 сек.
Forex_Noob:
Попробовал. Выставил секунду. Срок теста увеличился в десятки раз?:(
Попробовал. Выставил секунду. Срок теста увеличился в десятки раз?:(
В тестере "по тику" этот тик и так генерируется на баре М1, попробуйте менее 60 сек, напр. 58 сек. И еще почитайте статью Рецепты MQL5 - Мультивалютный эксперт: пример простой, точной и быстрой схемы , там в начале показано как можно вызывать событие рассчёта советника. Да и вообще вся статья полезна.
P.S.: 1 секунда - для реальной торговли. В любом случае OnTick для мультиков однозначно не подходит.
paladin800:
В тестере "по тику" этот тик и так генерируется на баре М1, попробуйте менее 60 сек, напр. 58 сек. И еще почитайте статью Рецепты MQL5 - Мультивалютный эксперт: пример простой, точной и быстрой схемы , там в начале показано как можно вызывать событие рассчёта советника. Да и вообще вся статья полезна.
ок. спасибо.
В тестере "по тику" этот тик и так генерируется на баре М1, попробуйте менее 60 сек, напр. 58 сек. И еще почитайте статью Рецепты MQL5 - Мультивалютный эксперт: пример простой, точной и быстрой схемы , там в начале показано как можно вызывать событие рассчёта советника. Да и вообще вся статья полезна.
С OnTick() интересная ситуация: если новый тик приходит, а код еще не отработан по предыдущему тику, то новый тик игноритсЯ, а что происходит в случае OnTimer() если вызов кода по нему происходит раньше окончания работы кода по предыдущему вызову? Что приоритетной- новый вызов или окончание предыдущего?
Forex_Noob:
С OnTick() интересная ситуация: если новый тик приходит, а код еще не отработан по предыдущему тику, то новый тик игноритсЯ, а что происходит в случае OnTimer() если вызов кода по нему происходит раньше окончания работы кода по предыдущему вызову? Что приоритетной- новый вызов или окончание предыдущего?
Окончание предыдущего. Новое событие вызова рассчёта игнорируется если программа ещё обрабатывает предыдущий. Кстати, только что быстро прооптимизировал свой советник и обнаружил что результаты по 1 сек и 58 сек не идентичны.
С OnTick() интересная ситуация: если новый тик приходит, а код еще не отработан по предыдущему тику, то новый тик игноритсЯ, а что происходит в случае OnTimer() если вызов кода по нему происходит раньше окончания работы кода по предыдущему вызову? Что приоритетной- новый вызов или окончание предыдущего?
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь