Ну, честно говоря, нетипичная задача для MQL4
MQL4
начал свою жизнь как язык для сверхбыстрой/близкой к реальному времени платформы выполнения кода (также известной как [ MetaTrader Terminal 4 ] ).
При этом язык может обрабатывать очень умное и быстрое смещение регистров, чтобы не терять время внутри обработки потока данных, запускаемой рыночным событием, частота которой составляет множество событий за одну миллисекунду, да, много за одну миллисекунду (иногда в прайм-тайм их может быть несколько сотен).
Принимая во внимание это, становится естественным, что буквально отсутствует прямая поддержка языка/синтаксиса для какой-либо общей композиции разметки-языка-оболочки-{http|script}
и/или взаимодействия с ней.
В течение первого десятилетия своего жизненного цикла изначально солидный MQL4
язык (а не последние год или два (все еще много ползучих) Новый- MQL4.56789
производная попытка переместить и применить MQL4
-домен к MQL5
-домену, но это, конечно, другая тема), не поддерживала никаких взаимодействий «за пределами MT4-box» . Просто ничего, чтобы избежать каких-либо помех от внешних неосновных, потенциально блокирующих процессов, которые могут дестабилизировать жесткий цикл выполнения платформы в реальном времени.
Это не значит, что сегодня нельзя расширить MQL4 для работы с этим
В качестве быстрого прокси-решения можно забыть о MQL4
-синтаксисе (функции и др.) и начать думать о выполнении MQL4
-части как обычно и расширить процессы [MetaTrader Terminal 4], чтобы иметь возможность взаимодействовать с внешними (распределенными) хосты, где (в качестве простейшего примера прототипирования) процесс python
может выполнять работу, которая в противном случае была бы сложной для MQL4
.
Это именно тот подход, при котором никто не рискует MQL4
проблемами с разбором композиции-оболочки-{http|script}
-языка-разметки, чтобы найти любой необходимый элемент(ы).
Это основывается на сильных сторонах python
в выполнении этой самой части и оставляет только организацию взаимного сотрудничества такого рабочего процесса с распределенными процессами.
Как интегрировать рабочие процессы с распределенными процессами?
После многих сотен человеко-лет экспериментов и поддержки кодовой базы мой выбор №1 — [ZeroMQ]
или [nanomsg]
.
Если вы не хотите вкладывать свою «кровь, слезы и пот» в эти или другие интеллектуальные распределенные архитектуры сигнализации/коммуникации, вы можете использовать их в качестве В крайнем случае следует перейти к MQL4 WebRequest()
даже для интеграции с облегченным веб-сервером на основе Python, чтобы завершить намеченный поток обработки и доставить желаемые результаты на сторону MQL4.
person
user3666197
schedule
20.10.2016