Ошибки, баги, вопросы - страница 2743
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Прошу рассмотреть возможность добавления в MQL функции, которая позволит пользователям самостоятельно вызывать обработку накопившихся "сообщений" в OnChartEvent из пользовательского кода.
1) Это позволит вызывать обработку OnChartEvent между итерациями продолжительного во времени расчета, делая пользовательскую графическую панель хоть как-то отзывчивой без сооружая огорода из: пула задач, передачи данных, синхронизации состояний, сохранения и восстановления контекста...
2) Это позволит использовать OnChartEvent в скриптах.
Спасибо.
Баг МТ5 (build 2340) отсутствует доступ к дефолтному operator= из объекта указателя.
Спасибо за сообщение.
Исправлено
Предложение разработчикам.
Прошу рассмотреть возможность добавления в MQL функции, которая позволит пользователям самостоятельно вызывать обработку накопившихся "сообщений" в OnChartEvent из пользовательского кода.
1) Это позволит вызывать обработку OnChartEvent между итерациями продолжительного во времени расчета, делая пользовательскую графическую панель хоть как-то отзывчивой без сооружая огорода из: пула задач, передачи данных, синхронизации состояний, сохранения и восстановления контекста...
2) Это позволит использовать OnChartEvent в скриптах.
Спасибо.
Вы предлагаете добавить функцию GetNextEvent ?
Включая TradeTransaction-события.
Две перегрузки - Trade-Event, Chart-Event.
Ошибка:
Спасибо за сообщение.
Исправлено.
Вопрос по оптимизации. В Тестере на каждом тике нужно получить тик для дальнейшей работы. Делаю это так.
Понятно, что этот вариант будет медленнее:
Но еще тормозит SymbolInfoTick, потому что string-параметр передается не по ссылке.
Возможно ли иметь штатные SymbolInfo*-перегрузки, где string передается по ссылке?
А лучше, конечно, иметь
В Оптимизаторе эти функции вызываются десятки миллиардов раз.
Вы предлагаете добавить функцию GetNextEvent ?
Не совсем, скорее бы назвал данную функцию как HandleNextEvent, возможная сигнатура:
bool HandleNextEvent (ENUM_EVENT_TYPE);При вызове, аналогично GetNextEvent, проверяет наличие указанного ENUM_EVENT_TYPE в очереди,
и при наличии данного события, автоматически передает управление на пользовательский код соответствующего обработчика (OnChartEvent, OnTrade, OnTradeTransaction, ... (спасибо fxsaberза дополнение)).
Возвращает true, если в очереди было событие, в ином случаи - false.
Возможен вариант использования:
Вопрос по оптимизации. В Тестере на каждом тике нужно получить тик для дальнейшей работы. Делаю это так.
Понятно, что этот вариант будет медленнее.
А вы проверяли данное утверждение на практике? Просто может оказаться все наоборот.
MqlTick состоит из примитивных типов данных, которые не инициализируются.
Соответственно, времени на выделение вообще не тратиться, так как это та же операция "sub esp", просто разного размера.
В результате bottleneck может вообще оказаться на стороне кеша процессора для операции чтение значения из памяти.
В общем нужно тестить ))
при наличии данного события, автоматически передает управление на пользовательский код соответствующего обработчика
Возможен вариант использования:
Очень красивое и полезное решение!