MT5 Rates HTTP Provider
- Утилиты
- Anton Sychov
- Версия: 1.2
- Обновлено: 11 ноября 2023
- Активации: 20
HTTP провайдер ценовых данных (OHLC, свечей) из MT5 брокера
Описание
Этот советник (EA) превращает ваш терминал MT5 в поставщика ценовых данных (как исторических, так и реального времени) для вашего приложения.
На рынке много поставщиков рыночных данных, но на практике предоставляемые данные не всегда отличаются хорошим качеством. Более того, эти услуги часто бывают более дорогими и обычно требуют ежемесячной платы за подписку, где цена увеличивается на основании количества используемых символов.
С помощью этого советника вы можете обеспечить ваше приложение точно такими же данными о ценах, которые вы видите в терминале MT5, теми же данными, на основе которых вы строите свои сделки и анализ рынка.
Вместе с EA, который предоставляет данные о тиках, предлагается полный набор данных, необходимых для анализа рынка.
Возможности
- Позволяет передавать данные о ценах на предварительно настроенный внешний HTTP-адрес.
- Гарантирует доставку каждой цены, с возможностью возобновления с последней отправленной цены в случае сбоев.
- Предлагает два варианта хранения смещений временных меток для цен:
- Локальные файлы (по умолчанию, управляются автоматически)
- HTTP-конечная точка (для интеграции с приложениями)
- Обеспечивает надежную доставку данных о ценах, с механизмами повторной отправки в случае сбоев HTTP-запросов.
- Позволяет передавать данные с настраиваемой пакетной отправкой.
Configuration
Input | Description | Default |
---|---|---|
dataProvider | Указывает имя провайдера данных. Это имя затем может быть использовано в шаблонах URL как {dataProvider}. | - |
maxRatesPerBatch | Максимальное количество цен, которое может быть отправлено в одном пакете. | 10000 цен |
debugLogsEnabled | Включение логов отладки | true (вкл) |
targetExportUrlTemplate | Шаблон URL для конечной точки, в которую будут экспортироваться данные о ценах. Поддерживаемые переменные: dataProvider. | - |
shouldReExportHistoricalRates | Опция повторного экспорта цен с некоторого определенного значения, указанного в startExportFromTimestampMillis. | false |
startExportFromTimestampMillis | Если параметр shouldReExportHistoricalRates установлен в значение true, при старте - данные о ценах будут отправляться, начиная с указанной временной метки в миллисекундах. | 1672531200000 (2023-01-01 0:00:00) |
exportedSymbolsSource | Источник для символов, для которых будут экспортироваться данные о ценах. Варианты: 'HTTP_ENDPOINT' или 'EA_INPUT'. | EA_INPUT |
symbols | В случаях, когда параметр exportedSymbolsSource установлен в 'EA_INPUT', данная настройка определяет, данные о ценах каких символов будут экспортироваться. | EURUSD |
timeframes | Определяет временные интервалы цен которые будут экспортированы в случае, если exportedPairsSource=EA_INPUT. | M1,M5,M15,M30,H1,H4,D1,W1 |
exportedPairsFetchUrlTemplate | Шаблон URL для получения символов цен для экспорта. Используется, если exportedSymbolsSource='HTTP_ENDPOINT'. Поддерживаемые переменные: dataProvider. | - |
lastSentRateTimestampSource | Источник для временной метки последней отправленной цены. Варианты: 'HTTP_ENDPOINT' или 'FILES'. | FILES |
lastSentRateTimestampUrlTemplate | Шаблон URL для получения/сохранения временной метки последней отправленной цены. Используется, если exportedSymbolsSource='HTTP_ENDPOINT'. Поддерживаемые переменные: dataProvider, symbol, timeframe. | - |
Описание Процесса Работы EA
При инициализации эксперт выполняет следующие операции:
-
Проверка Сброса Смещения: EA определяет необходимость экспорта исторических данных о ценах с определенной временной метки, проверяя переменную shouldReExportHistoricalRates. Если требуется переэкспорт:
- Значение startExportFromTimestampMillis устанавливается как новая точка смещения.
- Это смещение сохраняется безопасно, либо локально в файле, либо передается на заданную HTTP-точку, в зависимости от конфигурации, заданной lastSentRateTimestampSource.
-
Периодический Сбор и Отправка Данных о Ценах: EA запрограммирован с таймером, активируемым каждые dataSendingIntervalMilliseconds. При каждой активации EA:
- Запрашивает данные о ценах у брокера, начиная с ранее сохраненного смещения (последняя известная временная метка цены) до текущего момента.
- Собирает полученные данные о ценах и отправляет их на предварительно определенный URL, полученный из настройки targetExportUrlTemplate.
Выполняя эти шаги, EA обеспечивает непрерывный и автоматизированный поток самых последних данных о ценах для внешнего использования, обеспечивая ваше приложение или инструменты анализа актуальной информацией о рынке.
Использование
Ниже приведены минимальные действия, необходимые для начала экспорта данных о ценах советником (EA) на ваш настроенный URL:
-
Реализуйте HTTP-конечную точку, которая обрабатывает POST-запрос на URL, полученный из targetExportUrlTemplate. Эта конечная точка должна:
- Принимать данные о ценах с JSON-структурой, описанной ниже.
- Отвечать кодом состояния 200 в случае успешного приема.
-
Убедитесь, что вы добавили хост в список разрешенных хостов в 'Инструменты > Настройки > Разрешить WebRequest для перечисленных URL'.
- Если вы тестируете локально на localhost, создайте имя хоста в 'C:\Windows\System32\drivers\etc\hosts' на Windows или '/etc/hosts' на системах на базе Linux. Используйте это имя хоста в targetExportUrlTemplate.
-
Прикрепите EA к любому графику в MT5 и настройте следующие входные параметры:
- startExportFromTimestampMillis: Установите временную метку, с которой вам нужно получать данные о ценах.
- symbols: Настройте символы, для которых вам нужны данные о ценах.
- shouldReExportHistoricalRates: Этот параметр должен быть установлен в true при первом запуске, чтобы EA создал все необходимые файлы для отслеживания временной метки последней отправленной цены.
Управление Смещением
EA поддерживает временную метку (смещение) последней успешно отправленной цены, чтобы продолжить процесс экспорта в случае сбоев или перезапуска терминала. По умолчанию временные метки хранятся в файлах, которые автоматически создаются по следующему пути: C:\Users{userName}\AppData\Roaming\MetaQuotes\Terminal{id}\MQL5\Files. Для каждого символа и таймфрейма создается отдельный файл.
Кроме того, есть возможность использовать отдельные HTTP-конечные точки для чтения/хранения смещения вместо файлов.
Чтобы использовать эту функцию, установите lastSentRateTimestampSource в 'HTTP_ENDPOINT' и реализуйте HTTP-конечные точки на основе URL, определенного в lastSentRateTimestampUrlTemplate.
В качестве решения для бэкенда вы можете выбрать хранение смещений в базе данных (например, PostgreSQL). Если вам нужно повторно экспортировать данные о ценах для определенного символа, вам нужно будет только обновить значение временной метки в таблице базы данных.
Управление Экспортированными Символами
По умолчанию EA использует входные символы, чтобы определить, данные о ценах каких символов необходимо экспортировать. Однако также есть опция получения списка символов из отдельной HTTP-конечной точки.
Чтобы использовать эту функцию, установите exportedSymbolsSource в 'HTTP_ENDPOINT' и реализуйте конечную точку, используя URL, определенный в exportedSymbolsFetchUrlTemplate.
Внешнее Управление EA
- Вы можете инициировать повторный экспорт для определенных символов без необходимости выполнять какие-либо действия в MT5.
- Вы можете указать, какие символы экспортировать, не меняя входные данные в MT5.
Спецификация REST API для интеграции приложения
HTTP адрес | Описание | Метод | Запрос | Ответ |
---|---|---|---|---|
targetExportUrlTemplate | URL, по которому будут отправляться цены. | POST | Headers: Content-Type: application/json Body [ { "symbol": "EURUSD", "timeframe": "H1", "timestampMillis": 1670001234567, "open": 1.12345, "high": 1.12500, "low": 1.12200, "close": 1.12400, "tickVolume": 123456, "spread": 0.0002, "realVolume": 1000000 }, ... ] | Код ответа 200 в случае когда цены получены успешно |
exportedSymbolsFetchUrlTemplate | URL используется для получения списка символов цен, которые советник (EA) будет экспортировать на URL, полученный из targetExportUrlTemplate. | GET | Headers: Content-Type: text/plain Body (список символов, разделённых запятыми) EURUSD,GBPUSD,AUDUSD,BTCUSD | |
lastSentRatesTimestampUrlTemplate | URL используется для получения конкретной временной метки, с которой должен начинаться процесс экспорта. | GET | Headers Content-Type: text/plain Body 1625135912000 | |
lastSentRateTimestampUrlTemplate | URL используется для сохранения временной метки последнего успешного POST-запроса, выполненного на URL, полученный из targetExportUrlTemplate. | POST | Headers: Content-Type: text/plain Body 1625135912000 |
Демо версия (только NZDUSD)
Теги: rates, rate, price, price aggregate, stream, streaming, export, exporting, webhook, webhooks, integration, mt5, http, rest, forex, crypto, data, historical, realtime, rest api, provider, broker, data feed, цены, котировки, OHLC
Пользователь не оставил комментарий к оценке