MT5 Ticks HTTP Provider
- Утилиты
- Anton Sychov
- Версия: 1.2
- Обновлено: 11 ноября 2023
- Активации: 20
HTTP провайдер тиков из MT5 брокера
Описание
Этот советник (EA) превращает ваш терминал MT5 в поставщика тиков (как исторических, так и реального времени) для вашего приложения.
На рынке много поставщиков рыночных данных, но на практике предоставляемые данные не всегда отличаются хорошим качеством. Более того, эти услуги часто бывают более дорогими и обычно требуют ежемесячной платы за подписку, где цена увеличивается на основании количества используемых символов.
С помощью этого советника вы можете обеспечить ваше приложение точно такими же данными о тиках, которые вы видите в терминале MT5, теми же данными, на основе которых вы строите свои сделки и анализ рынка.
Вместе с EA, который предоставляет данные о ценах (OHLC, свечей), предлагается полный набор данных, необходимых для анализа рынка.
Возможности
- Позволяет передавать данные о тиках на предварительно настроенный внешний HTTP-адрес.
- Гарантирует доставку каждого тика, с возможностью возобновления с последнего отправленного тика в случае сбоев.
- Предлагает два варианта хранения смещений временных меток для тиков:
- Локальные файлы (по умолчанию, управляются автоматически)
- HTTP-конечная точка (для интеграции с приложениями)
- Обеспечивает надежную доставку данных о тиках, с механизмами повторной отправки в случае сбоев HTTP-запросов.
- Позволяет передавать данные с настраиваемой пакетной отправкой.
Конфигурация
Входной параметр | Описание | Стандартное значение |
---|---|---|
dataProvider | Указывает имя провайдера данных. Это имя затем может быть использовано в шаблонах URL как {dataProvider}. | - |
tickQueryingIntervalInSeconds | Интервал для запроса тиков у брокера, в секундах. | 10000 секунд |
maxTicksPerBatch | Максимальное количество тиков, которое может быть экспортировано в одном пакете. | 10000 тиков |
debugLogsEnabled | Включение логов отладки | true (вкл) |
dataSendingIntervalMilliseconds | Период отправки тиков на внешний url | 10000 миллисекунд |
targetExportUrlTemplate | Шаблон URL для конечной точки, в которую будут экспортироваться данные о тиках. Поддерживаемые переменные: dataProvider. | - |
shouldReExportHistoricalTicks | Опция повторного экспорта тиков с некоторого определенного значения, указанного в startExportFromTimestampMillis. | false |
startExportFromTimestampMillis | Если параметр shouldReExportHistoricalTicks установлен в значение true, при старте - данные о тиках будут отправляться, начиная с указанной временной метки в миллисекундах. | 1672531200000 (2023-01-01 0:00:00) |
exportedSymbolsSource | Источник для символов, для которых будут экспортироваться данные о тиках. Варианты: 'HTTP_ENDPOINT' или 'EA_INPUT'. | EA_INPUT |
symbols | В случаях, когда параметр exportedSymbolsSource установлен в 'EA_INPUT', данная настройка определяет, данные о тика каких символов будут экспортироваться. | EURUSD |
exportedPairsFetchUrlTemplate | Шаблон URL для получения символов тиков для экспорта. Используется, если exportedSymbolsSource='HTTP_ENDPOINT'. Поддерживаемые переменные: dataProvider. | - |
lastSentTickTimestampSource | Источник для временной метки последнего отправленного тика. Варианты: 'HTTP_ENDPOINT' или 'FILES'. | FILES |
lastSentTickTimestampUrlTemplate | Шаблон URL для получения/сохранения временной метки последнего отправленного тика. Используется, если exportedSymbolsSource='HTTP_ENDPOINT'. Поддерживаемые переменные: dataProvider, symbol. | - |
Описание Процесса Работы EA
При инициализации эксперт выполняет следующие операции:
-
Проверка Сброса Смещения: EA определяет необходимость экспорта исторических данных о тиках с определенной временной метки, проверяя переменную shouldReExportHistoricalTicks. Если требуется переэкспорт:
- Значение startExportFromTimestampMillis устанавливается как новая точка смещения.
- Это смещение сохраняется безопасно, либо локально в файле, либо передается на заданную HTTP-точку, в зависимости от конфигурации, заданной lastSentTickTimestampSource.
-
Периодический Сбор и Отправка Данных о Тиках: 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-конечные точки для чтения/хранения смещения вместо файлов.
Чтобы использовать эту функцию, установите lastSentTickTimestampSource в 'HTTP_ENDPOINT' и реализуйте HTTP-конечные точки на основе URL, определенного в lastSentTickTimestampUrlTemplate.
В качестве решения для бэкенда вы можете выбрать хранение смещений в базе данных (например, 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", "bid": 1.1800, "ask": 1.1802, "last": 1.1801, "volume": 1234.56, "timestampMillis": 1625135912000 }, ... ] | Код ответа 200 в случае когда тики получены успешно |
exportedSymbolsFetchUrlTemplate | URL используется для получения списка символов тиков, которые советник (EA) будет экспортировать на URL, полученный из targetExportUrlTemplate. | GET | Headers: Content-Type: text/plain Body (список символов, разделённых запятыми) EURUSD,GBPUSD,AUDUSD,BTCUSD | |
lastSentTickTimestampUrlTemplate | URL используется для получения конкретной временной метки, с которой должен начинаться процесс экспорта. | GET | Headers Content-Type: text/plain Body 1625135912000 | |
lastSentTickTimestampUrlTemplate | URL используется для сохранения временной метки последнего успешного POST-запроса, выполненного на URL, полученный из targetExportUrlTemplate. | POST | Headers: Content-Type: text/plain Body 1625135912000 |
ВАЖНО: Перед покупкой этого советника (EA) пожалуйста убедитесь, что ваш брокер MT5 поддерживает экспорт исторических данных тиков. Доступность и глубина данных тиков варьируются у разных брокеров. В наших тестах использование Roboforex предоставило доступ ко всем необходимым данным тиков за несколько лет назад.
Демо версия (только NZDUSD)
Теги: ticks, tick, quotes, quote, stream, streaming, export, exporting, webhook, webhooks, integration, mt5, http, rest, forex, crypto, data, historical, realtime, rest api, provider, broker, data feed, форекс, тики, данные, http, rest api
Пользователь не оставил комментарий к оценке