Парсер числа сделок и объемов

 

Парни! Делаю парсер майфиксбук, который на график выводит количество сделок и их объем, на счетах, замониторенных на майфиксбук.

Парсер это эксперт, т.к. индикатору нельзя использовать WebRequest. Но я бы хотел добавить вывод в окно индикатора. Может ли эксперт сам открыть дополнительное окно и туда выводить инфу? 

А это то, что получается пока в основном окне.


 

В МТ5 есть функция ChartIndicatorAdd(), но в МТ4 ее вроде как нет.  Можно пойти дргуим путем - пользовтаель должен прикрепить индикатор вручную, а эксперт просматривает индикаторы графика и если находит нужный, то рисует в его окне.

Еще можно что-нибуль придумать с ChartSaveTemplate() и ChartApplyTemplate().

 
Dmitry Fedoseev:

В МТ5 есть функция ChartIndicatorAdd(), но в МТ4 ее вроде как нет.  Можно пойти дргуим путем - пользовтаель должен прикрепить индикатор вручную, а эксперт просматривает индикаторы графика и если находит нужный, то рисует в его окне.

Еще можно что-нибуль придумать с ChartSaveTemplate() и ChartApplyTemplate().

Ну вот хотелось бы меньше ручной работы пользователям. Кинул эксперта, а он сам все построил.

 
Vladimir Tkach:

Парни! Делаю парсер майфиксбук, который на график выводит количество сделок и их объем, на счетах, замониторенных на майфиксбук.

Парсер это эксперт, т.к. индикатору нельзя использовать 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

 
Andrey Khatimlianskii:

Сделайте все в индикаторе.


Индикатор с импортом DLL ведь можно в маркете опубликовать? 

Я бы тогда сделал не эксперта а индикатор с парсером через dll.
 
С dll в маркет нельзя
 
Dmitry Fedoseev:
С dll в маркет нельзя

Кажись это относиться к экспертам. 

Вот только что опубликовал индикатор с импортом dll и записью в файл. Замечаний не было при модерации.

 
Vladimir Tkach:

Индикатор с импортом DLL ведь можно в маркете опубликовать? 

Я бы тогда сделал не эксперта а индикатор с парсером через dll.

Нет, нельзя

 
Vladimir Tkach:

Кажись это относиться к экспертам. 

Вот только что опубликовал индикатор с импортом dll и записью в файл. Замечаний не было при модерации.

В правилах вот так написано:

  1. В Продуктах запрещен вызов любых DLL-библиотек, включая системные библиотеки Microsoft Windows.
Интерсно, что с этого выйдет в итоге. 
 

Все уже сделано давным давно.

Мало того, можно бесплатно потестить на довольно глубокой минутной истории.

Но я бы сильно не надеялся на эти данные. Почему - обведено оранжевым на картинке

 
TheXpert:

Все уже сделано давным давно.

Мало того, можно бесплатно потестить на довольно глубокой минутной истории.

Но я бы сильно не надеялся на эти данные. Почему - обведено оранжевым на картинке

Мы пойдем своим путем.
Причина обращения: