Tick Data HTTP Exporter
- Утилиты
- Версия: 2.0
- Обновлено: 11 октября 2026
- Активации: 5
Tick Data HTTP Exporter
Описание
Этот советник (EA) превращает ваш терминал в поставщика тиков (как исторических, так и реального времени) для вашего приложения.
На рынке много поставщиков рыночных данных, но на практике предоставляемые данные не всегда отличаются хорошим качеством. Более того, эти услуги часто бывают более дорогими и обычно требуют ежемесячной платы за подписку, где цена увеличивается на основании количества используемых символов.
С помощью этого советника вы можете обеспечить ваше приложение точно такими же данными о тиках, которые вы видите в терминале, теми же данными, на основе которых вы строите свои сделки и анализ рынка.
Вместе с Candle Data HTTP Exporter, который предоставляет данные о ценах (OHLC, свечи), предлагается полный набор данных, необходимых для анализа рынка.
Возможности
- Позволяет передавать данные о тиках на предварительно настроенный внешний HTTP-адрес.
- Гарантирует доставку каждого тика, с возможностью возобновления с последнего отправленного тика в случае сбоев.
- Предлагает два варианта хранения смещений временных меток для тиков:
- Локальные файлы (по умолчанию, управляются автоматически)
- Ваш сервер по HTTP (для интеграции с приложениями)
- Обеспечивает надежную доставку данных о тиках, с механизмами повторной отправки в случае сбоев HTTP-запросов.
- Позволяет передавать данные с настраиваемой пакетной отправкой.
Конфигурация
| Входной параметр | Описание | Стандартное значение |
|---|---|---|
| dataProvider | Указывает имя провайдера данных. Это имя затем может быть использовано в шаблонах URL как {dataProvider}. | - |
| tickQueryingIntervalDurationSeconds | Интервал для запроса тиков у брокера, в секундах. | 10000 секунд |
| maxTicksPerBatch | Максимальное количество тиков, которое может быть отправлено в одном пакете. | 10000 тиков |
| debugLogsEnabled | Включение логов отладки. | false (выкл) |
| dataSendingIntervalMilliseconds | Период запроса тиков и их отправки на внешний URL. | 10000 миллисекунд |
| targetExportUrlTemplate | Шаблон URL для сервера, на который будут экспортироваться данные о тиках. Поддерживаемые переменные: dataProvider. | - |
| shouldReExportHistoricalTicks | Опция повторного экспорта тиков с некоторого определенного значения, указанного в startExportFromTimestampMillis. | false |
| startExportFromTimestampMillis | Если параметр shouldReExportHistoricalTicks установлен в значение true, при старте данные о тиках будут отправляться, начиная с указанной временной метки в миллисекундах (по часам сервера, то есть по времени, которое показывает терминал). | 1672531200000 (2023-01-01 00:00:00) |
| exportedSymbolsSource | Источник для символов, для которых будут экспортироваться данные о тиках. Варианты: 'HTTP_ENDPOINT' или 'EA_INPUT'. | EA_INPUT |
| symbols | В случаях, когда параметр exportedSymbolsSource установлен в 'EA_INPUT', данная настройка определяет, данные о тиках каких символов будут экспортироваться. | EURUSD,AUDUSD,GBPUSD,USDCAD,USDJPY,USDCHF |
| exportedSymbolsFetchUrlTemplate | Шаблон URL для получения символов для экспорта. Используется, если exportedSymbolsSource='HTTP_ENDPOINT'. Поддерживаемые переменные: dataProvider. | - |
| lastSentTickTimestampSource | Источник для временной метки последнего отправленного тика. Варианты: 'HTTP_ENDPOINT' или 'FILES'. | FILES |
| lastSentTickTimestampUrlTemplate | Шаблон URL для получения/сохранения временной метки последнего отправленного тика. Используется, если lastSentTickTimestampSource='HTTP_ENDPOINT'. Поддерживаемые переменные: dataProvider, symbol. | - |
| serverTimeZoneMode | Часы сервера, по которым время тиков переводится в UTC. AUTO (по умолчанию) определяет часы сервера сам; или выберите их явно: US_DST (закрытие дня по Нью-Йорку), EU_DST (восточноевропейское время), NO_DST, MANUAL (manualServerGmtOffsetMinutes) — явный выбор даёт точные временные метки для всей истории. | AUTO |
| manualServerGmtOffsetMinutes | Смещение сервера от GMT в минутах, используется с MANUAL. | 120 |
Описание процесса работы EA
При инициализации эксперт выполняет следующие операции:
-
Проверка сброса смещения: EA оценивает необходимость экспорта исторических данных о тиках с определенной временной метки, проверяя переменную shouldReExportHistoricalTicks. Если требуется повторный экспорт:
- Значение startExportFromTimestampMillis устанавливается как новое смещение.
- Это смещение сохраняется безопасно, либо локально в файле, либо передается на заданный адрес вашего сервера, в зависимости от конфигурации, заданной lastSentTickTimestampSource.
-
Периодический сбор и отправка данных о тиках: В EA работает таймер, который срабатывает с интервалом, заданным в dataSendingIntervalMilliseconds. При каждом срабатывании таймера EA:
- Запрашивает данные о тиках у брокера, начиная с ранее сохраненного смещения (последняя известная временная метка тика) до текущего момента.
- Преобразует полученные данные о тиках в JSON и отправляет их на предварительно определенный URL, полученный из настройки targetExportUrlTemplate.
Выполняя эти шаги, EA обеспечивает непрерывный и автоматизированный поток самых последних данных о тиках для внешнего использования, снабжая ваше приложение или инструменты анализа актуальной информацией о рынке.
Использование
Ниже приведены минимальные действия, необходимые для начала экспорта данных о тиках советником (EA) на ваш настроенный URL:
-
Сделайте на своём сервере адрес, который принимает POST-запрос; его URL получается из targetExportUrlTemplate. Этот адрес должен:
- Принимать данные о тиках с JSON-структурой, описанной ниже.
- Отвечать кодом состояния 200 в случае успешного приема.
-
Разрешите терминалу отправлять данные на ваш сервер: откройте Сервис > Настройки > Советники, поставьте галочку "Разрешить WebRequest для следующих URL" и добавьте адрес вашего сервера, например https://data.example.com.
- Если вы тестируете локально на localhost, создайте имя хоста в 'C:\Windows\System32\drivers\etc\hosts' на Windows или '/etc/hosts' на системах на базе Linux. Используйте это имя хоста в targetExportUrlTemplate.
-
Прикрепите EA к любому графику в терминале и настройте следующие входные параметры:
- dataProvider и targetExportUrlTemplate: обязательны, без них советник не запустится.
- startExportFromTimestampMillis: укажите временную метку, с которой вам нужно получать данные о тиках.
- symbols: настройте символы, для которых вам нужны данные о тиках.
- shouldReExportHistoricalTicks: этот параметр должен быть установлен в true при первом запуске, чтобы EA создал все необходимые файлы для отслеживания временной метки последнего отправленного тика. После первого запуска верните false, иначе каждый перезапуск будет отправлять всё заново с startExportFromTimestampMillis.
Примечание: в тестере стратегий советник не работает, потому что тестер не даёт отправлять данные через интернет.
Управление смещением
EA хранит временную метку (смещение) последнего успешно отправленного тика, чтобы продолжить процесс экспорта в случае сбоев или перезапуска терминала. По умолчанию временные метки хранятся в файлах, которые автоматически создаются в папке MQL5\Files терминала. Для каждого символа создается отдельный файл.
Кроме того, есть возможность использовать отдельные адреса на вашем сервере для чтения/хранения смещения вместо файлов.
Чтобы использовать эту функцию, установите lastSentTickTimestampSource в 'HTTP_ENDPOINT' и сделайте на своём сервере адреса на основе URL, определенного в lastSentTickTimestampUrlTemplate.
В качестве решения на сервере вы можете выбрать хранение смещений в базе данных (например, PostgreSQL). Если вам нужно повторно экспортировать данные о тиках для определенного символа, вам нужно будет только обновить значение временной метки в таблице базы данных.
Что такое смещение. Смещение — время последнего доставленного тика в миллисекундах с 1970-01-01 по часам сервера брокера (то время, которое показывает терминал), а не UTC. Если вы храните смещения на своём сервере, возвращайте ровно то число, которое прислал советник.
Управление экспортируемыми символами
По умолчанию EA использует входной параметр symbols, чтобы определить, данные о тиках каких символов необходимо экспортировать.
Однако также есть опция получения списка символов с вашего сервера по HTTP.
Чтобы использовать эту функцию, установите exportedSymbolsSource в 'HTTP_ENDPOINT' и сделайте на своём сервере адрес по URL, определенному в exportedSymbolsFetchUrlTemplate.
Внешнее управление EA
Если вы установите и lastSentTickTimestampSource, и exportedSymbolsSource в 'HTTP_ENDPOINT', то советником можно полностью управлять извне:
- Вы можете инициировать повторный экспорт для определенных символов без необходимости выполнять какие-либо действия в терминале.
- Вы можете указать, какие символы экспортировать, не меняя входные параметры в терминале.
Спецификация REST API для интеграции приложения
| HTTP-адрес | Описание | Метод | Запрос | Ответ |
|---|---|---|---|---|
| targetExportUrlTemplate | URL, по которому будут отправляться тики. timestampMillis — время тика в UTC. | POST | Headers: Content-Type: application/json Body [
{
"symbol": "EURUSD",
"bid": 1.18000,
"ask": 1.18020,
"last": 1.18010,
"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), пожалуйста, убедитесь, что ваш брокер поддерживает экспорт исторических данных тиков. Доступность и глубина данных тиков варьируются у разных брокеров.
Бесплатная версия (только NZDUSD)
Теги: ticks, tick, quotes, quote, stream, streaming, export, exporting, webhook, webhooks, integration, http, rest, forex, crypto, data, historical, realtime, rest api, provider, data feed, форекс, тики, данные

