Tick Data HTTP Exporter NZDUSD
- 实用工具
- 版本: 2.0
- 更新: 11 十月 2026
Tick Data HTTP Exporter NZDUSD
此免费版本仅导出 NZDUSD;完整版 Tick Data HTTP Exporter 可导出任意交易品种。
说明
本 EA 可将您的终端变成应用程序的历史和实时 Tick 数据源。
互联网上有很多市场数据提供商,但实际上它们提供的数据质量并不总是令人满意。此外,这类服务往往价格更高,而且通常需要按每个交易品种支付月度订阅费。
使用本 EA,您可以向应用程序提供与终端中所见完全相同的 Tick 数据,也就是您进行交易和市场分析所依据的数据。
与提供K线数据(OHLC)的 Candle Data HTTP Exporter 搭配使用,即可获得市场分析所需的完整数据集。
功能
- 将 Tick 数据发送到预先配置的外部 HTTP URL。
- 保证每一个 Tick 都能送达;发生中断时,可从最后发送的 Tick 继续。
- Tick 时间戳偏移量(offset)提供两种存储方式:
- 本地文件(默认,自动管理)
- 您服务器上的 HTTP 地址(用于与应用程序集成)
- HTTP 请求失败时自动重试,确保 Tick 可靠送达。
- 按可配置的批次大小传输数据。
配置
| 输入参数 | 说明 | 默认值 |
|---|---|---|
| dataProvider | 指定数据提供方的名称。 该名称可在 URL 模板中以 {dataProvider} 的形式使用。 | - |
| tickQueryingIntervalDurationSeconds | 每次向经纪商查询 Tick 的时间区间长度,单位为秒。 | 10000 秒 |
| maxTicksPerBatch | 单个批次中可发送的最大 Tick 数量。 | 10000 个 Tick |
| debugLogsEnabled | 是否启用调试日志。 | false |
| dataSendingIntervalMilliseconds | 查询 Tick 并发送到外部 URL 的周期。 | 10000 毫秒 |
| targetExportUrlTemplate | 接收 Tick 数据的服务器地址的 URL 模板。 支持的占位符:dataProvider。 | - |
| shouldReExportHistoricalTicks | 从指定时间开始重新导出 Tick,起始时间由输入参数 startExportFromTimestampMillis 指定。 | false |
| startExportFromTimestampMillis | 如果 shouldReExportHistoricalTicks 设为 true,将从以毫秒指定的时间戳开始发送 Tick(按服务器时钟,即终端显示的时间)。 | 1672531200000 (2023-01-01 00:00:00) |
| exportedSymbolsSource | 此版本不提供此功能:始终导出 NZDUSD。 导出 Tick 的交易品种来源。可选值:'HTTP_ENDPOINT' 或 'EA_INPUT'。 | EA_INPUT |
| symbols | 此版本不提供此功能:始终导出 NZDUSD。 当 exportedSymbolsSource 设为 'EA_INPUT' 时,此设置指定导出哪些交易品种的 Tick。 | EURUSD,AUDUSD,GBPUSD,USDCAD,USDJPY,USDCHF |
| exportedSymbolsFetchUrlTemplate | 此版本不提供此功能:始终导出 NZDUSD。 用于获取交易品种列表的 URL 模板。在 exportedSymbolsSource='HTTP_ENDPOINT' 时使用。 支持的占位符:dataProvider。 | - |
| lastSentTickTimestampSource | 最后发送的 Tick 的时间戳来源。可选值:'HTTP_ENDPOINT' 或 'FILES'。 | FILES |
| lastSentTickTimestampUrlTemplate | 用于读取/保存最后发送的 Tick 时间戳的 URL 模板。在 lastSentTickTimestampSource='HTTP_ENDPOINT' 时使用。 支持的占位符:dataProvider, symbol。 | - |
| serverTimeZoneMode | 服务器时钟,用于将 Tick 时间转换为 UTC。AUTO(默认)自动识别服务器时钟;也可以明确指定:US_DST(纽约收盘)、EU_DST(东欧时间)、NO_DST、MANUAL(manualServerGmtOffsetMinutes)— 明确指定可使全部历史数据的时间戳都准确无误。 | AUTO |
| manualServerGmtOffsetMinutes | 服务器相对于 GMT 的偏移(分钟),与 MANUAL 配合使用。 | 120 |
EA 工作流程
初始化时,智能交易系统 (EA) 执行以下操作:
-
检查是否重置偏移量:EA 检查变量 shouldReExportHistoricalTicks,判断是否需要从指定时间戳开始导出历史 Tick 数据。如果需要重新导出,EA 将:
- 将 startExportFromTimestampMillis 的值设为新的时间戳偏移量。
- 根据 lastSentTickTimestampSource 的设置,将该偏移量可靠地保存到本地文件,或发送到您服务器上的指定地址。
-
定期获取并发送 Tick 数据:EA 内置定时器,按 dataSendingIntervalMilliseconds 定义的间隔触发。每次触发时,EA 将:
- 向经纪商请求从最后保存的偏移量(最近一个 Tick 的时间戳)到当前时刻的 Tick 数据。
- 将获取的 Tick 数据转换为 JSON,并发送到由输入参数 targetExportUrlTemplate 生成的 URL。
通过以上步骤,EA 持续、自动地向外部提供最新的 Tick 数据,使您的应用程序或分析工具始终获得最新的市场信息。
使用方法
要让 EA 开始向您配置的 URL 导出 Tick,至少需要完成以下步骤:
-
在您的服务器上设置一个接收 POST 请求的地址,其 URL 由 targetExportUrlTemplate 生成。该地址应:
- 接收符合下文所述 JSON 结构的 Tick 数据。
- 接收成功时返回状态码 200。
-
允许终端向您的服务器发送数据:打开“工具 > 选项 > 智能交易系统”(Tools > Options > Expert Advisors),勾选 "Allow WebRequest for listed URL",并添加您的服务器地址,例如 https://data.example.com。
- 如果在本机 localhost 上测试,请在 Windows 的 'C:\Windows\System32\drivers\etc\hosts' 或 Linux 系统的 '/etc/hosts' 中创建一个主机名,并在 targetExportUrlTemplate 中使用该主机名。
-
将 EA 加载到终端中的任意图表上,并配置以下输入参数:
- dataProvider 和 targetExportUrlTemplate:必填;缺少它们 EA 不会启动。
- startExportFromTimestampMillis:设置需要获取 Tick 的起始时间戳。
- shouldReExportHistoricalTicks:首次运行时必须设为 true,以便 EA 创建记录最后发送的 Tick 时间戳所需的全部文件。首次运行后请将其改回 false,否则每次重启都会从 startExportFromTimestampMillis 重新发送全部数据。
注意:EA 无法在策略测试器中工作,因为测试器禁止通过互联网发送数据。
偏移量管理
EA 会保存最后一个成功发送的 Tick 的时间戳(偏移量),以便在中断或终端重启后继续导出。
默认情况下,时间戳保存在终端 MQL5\Files 文件夹中自动创建的文件里。每个交易品种各对应一个单独的文件。
此外,也可以使用您服务器上的单独地址代替文件来读取/保存偏移量。
要使用此功能,请将 lastSentTickTimestampSource 设为 'HTTP_ENDPOINT',并在您的服务器上按照 lastSentTickTimestampUrlTemplate 中定义的 URL 设置相应的地址。
在服务器端,您可以将偏移量存储在数据库中(例如 PostgreSQL)。如果需要重新导出某个交易品种的 Tick,只需更新数据库表中的时间戳值即可。
偏移量是什么。偏移量是最后一个已送达 Tick 的时间,为按经纪商服务器时钟(即终端显示的时间)计算的自 1970-01-01 起的毫秒数,不是 UTC。如果您在服务器上保存偏移量,请原样返回 EA 发送的数值。
EA 外部管理
将 lastSentTickTimestampSource 设置为 'HTTP_ENDPOINT' 后,无需在终端中进行任何操作即可启动重新导出。
应用程序集成 REST API 规范
| HTTP 地址 | 说明 | 方法 | 请求 | 响应 |
|---|---|---|---|---|
| targetExportUrlTemplate | 用于发送 Tick 数据的 URL。 timestampMillis 是 Tick 的时间(UTC)。 | POST | 标头: Content-Type: application/json 正文 [
{
"symbol": "NZDUSD",
"bid": 0.61200,
"ask": 0.61215,
"last": 0.61210,
"volume": 1234.56,
"timestampMillis": 1625135912000
},
...
] | 成功接收 Tick 时返回响应码 200 |
| exportedSymbolsFetchUrlTemplate | 此版本不提供此功能:始终导出 NZDUSD。 此 URL 用于获取交易品种列表,EA 会将这些品种导出到由 'targetExportUrlTemplate' 生成的 URL。 | GET | 标头: Content-Type: text/plain 正文(以逗号分隔的交易品种列表) EURUSD,GBPUSD,AUDUSD,BTCUSD | |
| lastSentTickTimestampUrlTemplate | 此 URL 用于获取导出应从哪个时间戳开始。 正文是与 EA 发送时完全相同的偏移量。 | GET | 标头: Content-Type: text/plain 正文 1625135912000 | |
| lastSentTickTimestampUrlTemplate | 此 URL 用于保存最后一次成功发往由 'targetExportUrlTemplate' 生成的 URL 的 POST 请求的时间戳。 正文是偏移量。 | POST | 标头: Content-Type: text/plain 正文 1625135912000 |
重要提示:使用本 EA 之前,请确认您的经纪商支持导出历史 Tick 数据。不同经纪商提供的 Tick 数据在可用性和历史深度上各不相同。
标签:Tick, 报价跳动, 报价, 数据流, 流式传输, 导出, webhook, 集成, http, rest, 外汇, 加密货币, 数据, 历史数据, 实时, rest api, 数据提供商, 数据源

