Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
WebRequest не работает в индикаторах (и данная библиотека позволяет обойти это ограничение). Отдельный поток в МТ выделяется только экспертам и скриптам, но скрипты не работают с событиями.
Ясно. Спасибо. Не знал.
В MT4 1146 ресурсы заработали полноценно. Можно смело под четверку идею портировать.
Да, идея именно в этом. Но будет пахать только в MT5.
Реализовал эту идею (с объектами-чартами).
Форум по трейдингу, автоматическим торговым системам и тестированию торговых стратегий
Обсуждение статьи "Многопоточный асинхронный WebRequest на MQL5 своими руками"
fxsaber, 2018.11.09 22:07
Кстати, можно же обойтись без полноценных чартов - OBJ_CHART. На них скрипты загружаются на ура. А там WebRequest пашет и OrderSend.
Приводил пример, как индикатор сделать торговым без доп. чартов.
Таким образом можно в качестве менеджера использовать iCustom-индикатор, а он будет на каждый WebRequestAsync запускать WebRequest в своем скрипте.
Конструкция должна получиться проще и надежнее, т.к. доп. окон не будет.
Результат такой.
Скрипты не работают, потому что не получается передать в них параметр при запуске - похоже, скрипты вообще не дружат с шаблонами графиков. То, что их вообще удается запустить с помощью библиотеки Expert.mqh (хоть и без параметров), по аналогии с экспертами - похоже на счастливый случай.
Если выполнять веб-запросы не в скриптах, а в экспертах, то схема работает наполовину. То есть входные параметры работают нормально и удается передать в эксперт имя ресурса с данными. Но почему-то в экспертах, запущенных в объектах-чартах, срабатывает только событие OnInit, а например, OnTick или OnTimer - нет. Выполнять веб-запрос в OnInit не очень красиво, но можно. Однако вся эта логика ужасно тормозит, потому что открытие объекта-графика под каждый запрос дает большие накладные расходы.
Реализовал эту идею (с объектами-чартами).
Результат такой.
Скрипты не работают, потому что не получается передать в них параметр при запуске - похоже, скрипты вообще не дружат с шаблонами графиков. То, что их вообще удается запустить с помощью библиотеки Expert.mqh (хоть и без параметров), по аналогии с экспертами - похоже на счастливый случай.
Пришлось поизучать тему. Скрипты запускаются шаблоном и на обычном чарте, но без возможности задания входных параметров. Поэтому PlaySound-метод будет точно работать.
Если выполнять веб-запросы не в скриптах, а в экспертах, то схема работает наполовину. То есть входные параметры работают нормально и удается передать в эксперт имя ресурса с данными. Но почему-то в экспертах, запущенных в объектах-чартах, срабатывает только событие OnInit, а например, OnTick или OnTimer - нет. Выполнять веб-запрос в OnInit не очень красиво, но можно. Однако вся эта логика ужасно тормозит, потому что открытие объекта-графика под каждый запрос дает большие накладные расходы.
У меня ничего не срабатывает.
Пришлось поизучать тему. Скрипты запускаются шаблоном и на обычном чарте, но без возможности задания входных параметров. Поэтому PlaySound-метод будет точно работать.
У меня ничего не срабатывает.
Тот комплект, что я отправлял в личку, работает у меня через OnInit в эксперте. Это видно по логам. Пришлите мне свои логи.
Выкладываю альтернативный вариант запуска веб-запросов - с помощью объектов-графиков, в которых применяется шаблон с экспертом-помощником. Может использоваться как из экспертов, так и индикаторов. Зависимости - те же самые, что в статье. Непосредственно новые файлы реализации подхода:
Для каждого запроса создается объект, в нем эксперт-помощник, по окончании запроса объект удаляется. Обмен данными запроса и результатами, как в статье, производится через ресурсы.
Судя по логам, полноценной параллельности выполнения запросов данный механизм не предоставляет, поскольку объекты, вероятно, делят общую очередь событий. Пример лога:
Попробуйте обновленный Resource_Data.mqh, лаги при передачи веб-страниц должны исчезнуть.
Старая версия
Новая версия
Попробуйте обновленный Resource_Data.mqh, лаги при передачи веб-страниц должны исчезнуть.
Старая версия
Новая версия
Это что ж такое нужно было сделать, чтобы ускориться в 20 раз? Совместимость со старым кодом осталась, клиентские вызовы менять не надо?
Это что ж такое нужно было сделать, чтобы ускориться в 20 раз? Совместимость со старым кодом осталась, клиентские вызовы менять не надо?
Совместимость осталась.
Форум по трейдингу, автоматическим торговым системам и тестированию торговых стратегий
Библиотеки: TradeTransactions
fxsaber, 2018.12.09 01:23
В исходниках библиотеки присутствует Convert.mqh, который быстро конвертирует массив одного типа в массив другого.
TypeToBytes тормозила (теперь используется только в случае, если ни один из типов массивов не кратен другому) на больших массивах.
Для uchar[] TypeToBytes не используется.
Чо то не получается запустить.
Пишет ошибку 4002.
После небольшого анализа нашел что вёкер не получает URL. Вместо него приходит нулевое значение