В МТ5 есть функция ChartIndicatorAdd(), но в МТ4 ее вроде как нет. Можно пойти дргуим путем - пользовтаель должен прикрепить индикатор вручную, а эксперт просматривает индикаторы графика и если находит нужный, то рисует в его окне.
Еще можно что-нибуль придумать с ChartSaveTemplate() и ChartApplyTemplate().
В МТ5 есть функция ChartIndicatorAdd(), но в МТ4 ее вроде как нет. Можно пойти дргуим путем - пользовтаель должен прикрепить индикатор вручную, а эксперт просматривает индикаторы графика и если находит нужный, то рисует в его окне.
Еще можно что-нибуль придумать с ChartSaveTemplate() и ChartApplyTemplate().
Ну вот хотелось бы меньше ручной работы пользователям. Кинул эксперта, а он сам все построил.
Парни! Делаю парсер майфиксбук, который на график выводит количество сделок и их объем, на счетах, замониторенных на майфиксбук.
Парсер это эксперт, т.к. индикатору нельзя использовать WebRequest. Но я бы хотел добавить вывод в окно индикатора. Может ли эксперт сам открыть дополнительное окно и туда выводить инфу?
А это то, что получается пока в основном окне.
Сделайте все в индикаторе.
Форум по трейдингу, автоматическим торговым системам и тестированию торговых стратегий
Обсуждение статьи "Многопоточный асинхронный WebRequest на MQL5 своими руками"
Stanislav Korotky, 2018.11.14 14:20
Выкладываю альтернативный вариант запуска веб-запросов - с помощью объектов-графиков, в которых применяется шаблон с экспертом-помощником. Может использоваться как из экспертов, так и индикаторов. Зависимости - те же самые, что в статье. Непосредственно новые файлы реализации подхода:
- multiwebobjectworker.mqh - заголовочный файл с общими классами;
- multiwebobjectworker.mq5 - рабочий эксперт, выполняющий веб-запросы внутри объектов-графиков;
- multiwebindicator.mq5 - безбуферный индикатор, демонстрирующий запуск веб-запросов;
Для каждого запроса создается объект, в нем эксперт-помощник, по окончании запроса объект удаляется. Обмен данными запроса и результатами, как в статье, производится через ресурсы.
Судя по логам, полноценной параллельности выполнения запросов данный механизм не предоставляет, поскольку объекты, вероятно, делят общую очередь событий. Пример лога:
2018.11.14 15:11:58.492 multiwebindicator (EURUSD,H1) 129912254742671348: Starting chart object WRS1 129912254742671349 2018.11.14 15:11:58.694 multiwebindicator (EURUSD,H1) 129912254742671348: Starting chart object WRS2 129912254742671350 2018.11.14 15:11:58.819 multiwebindicator (EURUSD,H1) 129912254742671348: Starting chart object WRS3 129912254742671351 2018.11.14 15:11:58.960 multiwebobjectworker (EURUSD,H1) 129912254742671349: OnInit 2018.11.14 15:11:58.960 multiwebobjectworker (EURUSD,H1) 129912254742671349: Reading request \Indicators\multiwebindicator.ex5::WRS_0_129912254742671348 2018.11.14 15:11:58.960 multiwebobjectworker (EURUSD,H1) 129912254742671349: Got 64 bytes in request 2018.11.14 15:11:58.960 multiwebobjectworker (EURUSD,H1) 129912254742671349: GET https://google.com/ User-Agent: n/a 5000 2018.11.14 15:11:58.975 multiwebobjectworker (EURUSD,H1) 129912254742671350: OnInit 2018.11.14 15:11:58.975 multiwebobjectworker (EURUSD,H1) 129912254742671350: Reading request \Indicators\multiwebindicator.ex5::WRS_1_129912254742671348 2018.11.14 15:11:58.975 multiwebobjectworker (EURUSD,H1) 129912254742671350: Got 60 bytes in request 2018.11.14 15:11:58.975 multiwebobjectworker (EURUSD,H1) 129912254742671350: GET https://ya.ru User-Agent: n/a 5000 2018.11.14 15:11:59.084 multiwebobjectworker (EURUSD,H1) 129912254742671351: OnInit 2018.11.14 15:11:59.084 multiwebobjectworker (EURUSD,H1) 129912254742671351: Reading request \Indicators\multiwebindicator.ex5::WRS_2_129912254742671348 2018.11.14 15:11:59.084 multiwebobjectworker (EURUSD,H1) 129912254742671351: Got 72 bytes in request 2018.11.14 15:11:59.084 multiwebobjectworker (EURUSD,H1) 129912254742671351: GET https://www.startpage.com/ User-Agent: n/a 5000 2018.11.14 15:11:59.162 multiwebobjectworker (EURUSD,H1) 129912254742671350: Done in 187ms 2018.11.14 15:11:59.178 multiwebindicator (EURUSD,H1) 129912254742671348: Result code 200 2018.11.14 15:11:59.178 multiwebindicator (EURUSD,H1) 129912254742671348: Reading result \Experts\multiwebobjectworker.ex5::WRS_0_129912254742671350 2018.11.14 15:11:59.178 multiwebindicator (EURUSD,H1) 129912254742671348: Got 16592 bytes in response 2018.11.14 15:11:59.178 multiwebindicator (EURUSD,H1) GET https://ya.ru 2018.11.14 15:11:59.178 multiwebindicator (EURUSD,H1) Received 3734 bytes in header, 12775 bytes in document 2018.11.14 15:11:59.256 multiwebobjectworker (EURUSD,H1) 129912254742671350: OnDeinit 2018.11.14 15:11:59.272 multiwebobjectworker (EURUSD,H1) 129912254742671349: Done in 297ms 2018.11.14 15:11:59.334 multiwebindicator (EURUSD,H1) 129912254742671348: Result code 200 2018.11.14 15:11:59.334 multiwebindicator (EURUSD,H1) 129912254742671348: Reading result \Experts\multiwebobjectworker.ex5::WRS_0_129912254742671349 2018.11.14 15:11:59.334 multiwebindicator (EURUSD,H1) 129912254742671348: Got 12688 bytes in response 2018.11.14 15:11:59.334 multiwebindicator (EURUSD,H1) GET https://google.com/ 2018.11.14 15:11:59.334 multiwebindicator (EURUSD,H1) Received 790 bytes in header, 11813 bytes in document 2018.11.14 15:11:59.350 multiwebobjectworker (EURUSD,H1) 129912254742671349: OnDeinit 2018.11.14 15:11:59.833 multiwebobjectworker (EURUSD,H1) 129912254742671351: Done in 749ms 2018.11.14 15:11:59.833 multiwebindicator (EURUSD,H1) 129912254742671348: Result code 200 2018.11.14 15:11:59.833 multiwebindicator (EURUSD,H1) 129912254742671348: Reading result \Experts\multiwebobjectworker.ex5::WRS_0_129912254742671351 2018.11.14 15:11:59.833 multiwebindicator (EURUSD,H1) 129912254742671348: Got 45212 bytes in response 2018.11.14 15:11:59.833 multiwebindicator (EURUSD,H1) GET https://www.startpage.com/ 2018.11.14 15:11:59.833 multiwebindicator (EURUSD,H1) Received 822 bytes in header, 44307 bytes in document 2018.11.14 15:11:59.849 multiwebindicator (EURUSD,H1) > > > Async WebRequest workers finished 3 tasks in 1357ms 2018.11.14 15:11:59.880 multiwebobjectworker (EURUSD,H1) 129912254742671351: OnDeinit
С dll в маркет нельзя
Кажись это относиться к экспертам.
Вот только что опубликовал индикатор с импортом dll и записью в файл. Замечаний не было при модерации.
Индикатор с импортом DLL ведь можно в маркете опубликовать?
Я бы тогда сделал не эксперта а индикатор с парсером через dll.Нет, нельзя
Кажись это относиться к экспертам.
Вот только что опубликовал индикатор с импортом dll и записью в файл. Замечаний не было при модерации.
В правилах вот так написано:
- В Продуктах запрещен вызов любых DLL-библиотек, включая системные библиотеки Microsoft Windows.
Все уже сделано давным давно.
Мало того, можно бесплатно потестить на довольно глубокой минутной истории.
Но я бы сильно не надеялся на эти данные. Почему - обведено оранжевым на картинке
![MQL5 - Язык торговых стратегий для клиентского терминала MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
Парни! Делаю парсер майфиксбук, который на график выводит количество сделок и их объем, на счетах, замониторенных на майфиксбук.
Парсер это эксперт, т.к. индикатору нельзя использовать WebRequest. Но я бы хотел добавить вывод в окно индикатора. Может ли эксперт сам открыть дополнительное окно и туда выводить инфу?
А это то, что получается пока в основном окне.