Я пытаюсь получить данные о нескольких таймфреймах разных торговых инструментов ( _Symbol
) из терминала MetaTrader4 на узел.
Как мне это сделать?
Можем ли мы сделать это из того же советника в терминале MetaTrader4?
Я пытаюсь получить данные о нескольких таймфреймах разных торговых инструментов ( _Symbol
) из терминала MetaTrader4 на узел.
Как мне это сделать?
Можем ли мы сделать это из того же советника в терминале MetaTrader4?
Хотя намерение ясно, идея использовать один советник для отправки данных в реальном времени для нескольких торговых инструментов не работает в соответствии с указанным интересом.
Среда выполнения кода MQL4 имеет некоторую фиксированную, жестко запрограммированную внутреннюю логику, и из-за этого + плюс из-за реальности того, как работают посредники доступа к рынкам капитала и типа брокера, соло-EA никогда не будет соответствовать этим требованиям.
Простой звонок в
iOpen( aTradingInstrumentSymbolNAME, // iHigh, iLow, iClose, iVolume, iTime
aSelectedTimeFrameDefinedCODE,
aRelativeBarPTR
)
далеко не достаточно.
Профессиональное решение потребует большого внимания к возможностям обработки в реальном времени, к демаскированию фактического потока взаимно скрывающихся событий, к достижению минимальных задержек обработки, поэтому потребуется достаточно высокий инженерный опыт.
Начните с изучения основ скриптов, сравните все ваши критические участки кода с записью их фактической продолжительности в [нас] и убедитесь, что ваш код останется неблокирующим при любых обстоятельствах. Это определит, потребуется ли более одного потока (потоков) выполнения кода в прайм-тайм / час пик.
Сделав это, ваш путь только начал вести в направлении к ожидаемому результату.
Затем нужно решить о возможном межпроцессном/распределенном потоке данных и сигнализации, необходимых для межплатформенной интеграции.
И последний, но не менее важный момент – юридическая сторона такого предприятия. Это зависит как от вашей местной юрисдикции§$§$§, так и от Положений и условий брокера, поскольку никому не понравится отмечать технически хорошо освоенный проект из тюрьмы.
Все это, довольно интересный проект.
iOpen(Symbol(),PERIOD_M1,1)
- это способ получения данных с M1 (последний бар), если вам нужен другой таймфрейм - замените PERIOD_M1
на другой ENUM_TIMEFRAMES
. Так в чем проблема? Обычно StackOverflow требуется увидеть ваш пример на основе MCVE, чтобы помочь вам.
_Symbol
per se. Поэтому необходимо приложить еще больше усилий для адекватной и выполнимой алгоритмизации всех таких нетривиальных требований.
- person user3666197; 26.07.2017