Так как данный инструмент является форексным, то его имя должно кодироваться совершенно определённым образом: 3 символа базовой валюты плюс 3 символа валюты котирования. Плюс возможен некий постфикс.
Как раз при следующей загрузке происходит проверка и замена.
Переназовите символ. Скажем, в EURUSD_TESTER, тогда тестирование будет возможно.
Так как данный инструмент является форексным, то его имя должно кодироваться совершенно определённым образом: 3 символа базовой валюты плюс 3 символа валюты котирования. Плюс возможен некий постфикс.
Как раз при следующей загрузке происходит проверка и замена.
Переназовите символ. Скажем, в EURUSD_TESTER, тогда тестирование будет возможно.
К сожалению, это не вариант. Делаю это не просто так
При запуске бэктеста на кроссах тестер тянет за собой не только основной символ, но и вспомогательный, который позволяет конвертировать валюту прибыли основного символа в валюту счета. Вытягивание дополнительного символа, генерирование его тиков и их синхронизация с основным символом отнимают столь драгоценные вычислительные ресурсы (и время) в режимах одиночного прогона и, особенно, Оптимизации.
Однако, почти всегда такая точность является излишней. Поэтому хочется обойти эту навязчивость/несовершенство MetaTrader 5 тестера. В MetaTrader 4 это сделать легко - там есть возможность поменять валюту счета прямо в тестере. MetaTrader 5 же лишен такой возможности.
Демонстрационный скрипт показывает способ обойти данное ограничение тестера - убрать ненужные вычисления. Для этого создается копия символа для бэктеста, но валюта прибыли/маржи задается равной валюте счета. Т.е. переконвертация результатов торговли не потребуется. И прибыль, фактически, будет вычисляться в пипсах, что может быть очень наглядно в некоторых ситуациях.
// Создание копии символа для ускорения Тестера#property script_show_inputs#include <Symbol.mqh>
voidOnStart()
{
const SYMBOL Symb("TESTER_" + _Symbol); // Создали символif (Symb.IsExist()) // Если символ создан
{
Symb = _Symbol; // Скопировали с основного символа все свойства и баровую историю (+ тиковую, если кастомный) - клон// Сделали валюты символа валютой счета
Symb.SetProperty(SYMBOL_CURRENCY_PROFIT, AccountInfoString(ACCOUNT_CURRENCY));
Symb.SetProperty(SYMBOL_CURRENCY_MARGIN, AccountInfoString(ACCOUNT_CURRENCY));
if (Symb.On()) // Включили в Обзор рынкаChartOpen(Symb.Name, PERIOD_CURRENT); // Открыли график нового символа
}
}
Результат
Таким образом достигается бесплатное ускорение Тестера/Оптимизатора.
Михаил, добрый день!
Сегодня по транзакции: обработка операции MoveOrder заняла 473 микросекунды, операция DelOrder - 255 микросекунд.
Помочь с проблемой в терминалах и ПО сторонней разработки мы, увы не имеем технической возможности.
С уважением,
Тимур Бутаев
Техническая поддержка ПАО Московская Биржа
T +7 (495) 733-95-07
E help@moex.com
ПАО Московская Биржа
--- Первоначальное сообщение ---
С: alas@mail.ru
Отправленные: 19.10.2018 10:51:53
По: help@moex.com
Копия:
Тема: задержки (N1309578N)
Добрый день!
Вот уже почти 4 года я веду "войну" с задержками в терминале МТ5.
Сегодня, задерка исполнения торгового приказа, составила 17 СЕКУНД
2018.10.19 10:02:00.372 Trades 'ххххх': cancel order #94304144 sell limit 1.00 U500-3.19 at 2138.50
2018.10.19 10:02:17.448 Trades 'ххххх': accepted cancel order #94304144 sell limit 1.00 U500-3.19 at 2138.50
2018.10.19 10:02:17.449 Trades 'ххххх': cancel order #94304144 sell limit 1.00 U500-3.19 at 2138.50 placed for execution in 17072.105 ms
Просьба прислать тайминги по заявке 32841112183 (#94304144 - в терминале МТ5)
Михаил
Их надо просить MT5-логи, а не сколько биржа что-то там исполняла.
К сожалению, это не вариант. Делаю это не просто так
Основная причина здесь
Однако, почти всегда такая точность является излишней. Поэтому хочется
обойти эту навязчивость/несовершенство MetaTrader 5 тестера. В
MetaTrader 4 это сделать легко - там есть возможность поменять валюту
счета прямо в тестере. MetaTrader 5 же лишен такой возможности.
Поясните, почему лишён? Может я что-то не вижу или не понимаю?
Поясните, почему лишён? Может я что-то не вижу или не понимаю?
На момент написания того комментария был лишен. Текущее состояние не всегда помогает. Например, есть режим Оптимизации "по всем символам из Обзора рынка". И если там даже только два символа EURUSD и AUDNZD, то, как минимум, один символ будет тянуть за собой тики конвертации. Что уж говорить, когда символов больше двух.
А так у меня десятки кастомных символов. Все имеют USD/USD. В таком режиме все летает, как надо. Но стоит перезагрузить терминал, настройки сбрасываются.
Более того, даже в одиночных режимах Тестера при переключении со штатного символа на другой штатный символ нужно почти каждый раз менять валюту счета Тестера. Забыл поменять - получил замедление Оптимизации в два раза.
С кастомными же USD/USD забыть ничего нельзя. Символ тянется только один всегда.
Так как данный инструмент является форексным, то его имя должно кодироваться совершенно определённым образом: 3 символа базовой валюты плюс 3 символа валюты котирования. Плюс возможен некий постфикс.
Как раз при следующей загрузке происходит проверка и замена.
Переназовите символ. Скажем, в EURUSD_TESTER, тогда тестирование будет возможно.
Билд 1931
Уже 35 секунд....
Так как данный инструмент является форексным, то его имя должно кодироваться совершенно определённым образом: 3 символа базовой валюты плюс 3 символа валюты котирования. Плюс возможен некий постфикс.
Как раз при следующей загрузке происходит проверка и замена.
Переназовите символ. Скажем, в EURUSD_TESTER, тогда тестирование будет возможно.
К сожалению, это не вариант. Делаю это не просто так
Форум по трейдингу, автоматическим торговым системам и тестированию торговых стратегий
Новая версия платформы MetaTrader 5 build 1930: Плавающие окна графиков и .Net библиотеки в MQL5
fxsaber, 2018.10.28 20:45
Основная причина здесь
При запуске бэктеста на кроссах тестер тянет за собой не только основной символ, но и вспомогательный, который позволяет конвертировать валюту прибыли основного символа в валюту счета. Вытягивание дополнительного символа, генерирование его тиков и их синхронизация с основным символом отнимают столь драгоценные вычислительные ресурсы (и время) в режимах одиночного прогона и, особенно, Оптимизации.
Однако, почти всегда такая точность является излишней. Поэтому хочется обойти эту навязчивость/несовершенство MetaTrader 5 тестера. В MetaTrader 4 это сделать легко - там есть возможность поменять валюту счета прямо в тестере. MetaTrader 5 же лишен такой возможности.
Демонстрационный скрипт показывает способ обойти данное ограничение тестера - убрать ненужные вычисления. Для этого создается копия символа для бэктеста, но валюта прибыли/маржи задается равной валюте счета. Т.е. переконвертация результатов торговли не потребуется. И прибыль, фактически, будет вычисляться в пипсах, что может быть очень наглядно в некоторых ситуациях.
Результат
Таким образом достигается бесплатное ускорение Тестера/Оптимизатора.
Форум по трейдингу, автоматическим торговым системам и тестированию торговых стратегий
Библиотеки: Symbol
fxsaber, 2018.02.21 11:25
ЗЫ Замерил досконально на EURGBP. Выигрыш по времени получается в ~2 раза. Сделки полностью совпадают. Действительно, бесплатно!
Билд 1931
Уже 35 секунд....
Конкретно по этой ситуации запросите все логи у брокера. Там сразу будет видно, где затык.
Конкретно по этой ситуации запросите все логи у брокера. Там сразу будет видно, где затык.
Уже запрашивал.
Результат = 0
Уже запрашивал.
Результат = 0
Ничего не прислали?
Чтобы понять, каким входным параметрам это соответствует, нужно идти во вкладку Оптимизации и искать соответствующий номер прохода.
Возможно ли в лог помимо номера прохода писать еще значения его входных параметров?
Ничего не прислали?
Действительно, ничего не прислали
Форум по трейдингу, автоматическим торговым системам и тестированию торговых стратегий
ФОРТС. Вопросы по исполнению
prostotrader, 2018.10.19 12:17
Их надо просить MT5-логи, а не сколько биржа что-то там исполняла.
К сожалению, это не вариант. Делаю это не просто так
Основная причина здесь
Однако, почти всегда такая точность является излишней. Поэтому хочется обойти эту навязчивость/несовершенство MetaTrader 5 тестера. В MetaTrader 4 это сделать легко - там есть возможность поменять валюту счета прямо в тестере. MetaTrader 5 же лишен такой возможности.
Поясните, почему лишён? Может я что-то не вижу или не понимаю?
Поясните, почему лишён? Может я что-то не вижу или не понимаю?
На момент написания того комментария был лишен. Текущее состояние не всегда помогает. Например, есть режим Оптимизации "по всем символам из Обзора рынка". И если там даже только два символа EURUSD и AUDNZD, то, как минимум, один символ будет тянуть за собой тики конвертации. Что уж говорить, когда символов больше двух.
А так у меня десятки кастомных символов. Все имеют USD/USD. В таком режиме все летает, как надо. Но стоит перезагрузить терминал, настройки сбрасываются.
Более того, даже в одиночных режимах Тестера при переключении со штатного символа на другой штатный символ нужно почти каждый раз менять валюту счета Тестера. Забыл поменять - получил замедление Оптимизации в два раза.
С кастомными же USD/USD забыть ничего нельзя. Символ тянется только один всегда.