Smart Data Export Indicator 是一款免费的 MetaTrader 5 指标,它把图表数据写入 CSV 或 JSON Lines 文件,列由您自行选择,并附带一张解释每一列含义的数据说明卡(data card)。它适合用 ChatGPT、Claude 等 AI 助手、电子表格或 Python 分析图表的人。Smart Data Export Indicator MT4 是免费的 MetaTrader 4 版本;不同之处会在下文中注明。两者都取代了我的免费 SmartDataExportEa。本手册适用于 1.00 版。
导出的内容
- 数据文件(CSV 或 JSON Lines):每根已收盘的K线一行,由旧到新。新K线在收盘时追加。
- 数据说明卡(.md):单位、预热行、时区和数据质量,以及一段供 AI 助手使用的提示词。
- AI 快照(.md,仅 MT5):以表格形式呈现的最近几根K线,可直接粘贴到聊天中。
- 成交记录(可选):此账户的成交(MT5)或已平仓订单(MT4)。
更高周期的数值只取自已经收盘的K线(无前视)。本指标不下单,不使用 DLL,也不发出网络请求,因此可以与您的 EA 共用一张图表。
安装
- 在产品页面(MT5 版或 MT4 版)点击“免费下载”(Free Download),会打开 MetaTrader。您也可以在 MetaTrader 的工具箱 > 市场中找到它。已安装的产品列在工具箱 > 市场 > 已购买中,更新也会出现在那里(“更新”按钮)。
- 将指标从导航器 > Indicators > Market 拖到图表上。默认设置即可使用,因此直接点击 OK 就行。
导出步骤
- 打开该品种的图表。除非您设置了 Timeframe of the rows ,否则各行使用图表的周期。
- 加载指标,选择 Range (默认为最近 5000 根已收盘K线)、列和指标(例如 RSI(14); EMA(50); ATR(14) ),然后点击 OK。
- 观察面板上的状态:先显示正在等待什么,然后是 Exporting history... ,再然后是 History done - appending new bars as they close (如果 After the history 设为停止,则显示 Export finished )。

状态完成时为绿色,处理中或等待中为橙色,出错后为红色。警告(例如未知的指标名称)会以橙色显示在 ! 之后,并同时显示在“智能交易”(Experts)选项卡中。Export again 会重新读取历史数据并重写所有文件。
文件的位置和内容
文件写入 MQL5\Files\SmartDataExport (MT4: MQL4\Files\SmartDataExport ;文件 > 打开数据文件夹),使用公共文件夹的输入参数时则写入 Terminal\Common\Files\SmartDataExport 。在策略测试器中,文件写入测试代理的文件夹(MT4: tester\files ),且没有 AI 快照。
每次开始导出(加载指标、修改输入参数、重启 MetaTrader、Export again)都会根据历史重新写出数据文件;之后只会追加行。要保留旧文件,请复制它,或在文件名中加入 {date}。

数据文件,例如 XAUUSD_M15.csv (或 .jsonl )。每一行以K线的开盘时间(服务器时间)开头。CSV 文件有表头行,并使用小数点;缺失值为空(在 JSON Lines 中为 null)。接下来依次是:
- open, high, low, close, tick_volume 、 real_volume (MT5,如果经纪商提供)、 spread_pts 。
- 以点为单位: ret_pts (close - open)、 range_pts, body_pts, upper_wick_pts, lower_wick_pts 、 gap_pts (open - 上一根的 close);以及 log_ret = ln(close / 上一根的 close)。
- time_utc (时差按周检测,因此夏令时也能得到处理)、 dow_utc (1 = 周一)、 hour_utc 、 session :tokyo(JST 9–18 点)、london(伦敦时间 8–17 点)、newyork(纽约时间 8–17 点),多个时段用 + 连接,不在任何时段时为 off。
- 指标列按其设置命名,例如 rsi_14 或 macd_signal_12_26_9 ;自定义缓冲区命名为 custom_<name>_<buffer> 。
- h4_open 至 d1_close (默认周期):截至该行收盘时已经收盘的最后一根 H4 和 D1 K线。

数据说明卡, XAUUSD_M15.datacard.md ,在历史导出完成时写出:数据集、品种规格、时区、每一列的单位、含义和预热行、质量报告(休市间隔、缺口、重复时间、零波幅K线、波幅尖峰,以及 MT5 中的点差跳变),以及一段可复制的提示词。MT4 版的说明卡还会列出警告。
成交记录: deals_last_365d.csv (MT5),包含品种、类型、交易量、价格、盈亏、手续费、库存费、魔术号和原因;或 closed_orders.csv (MT4),包含时间、价格、盈亏、手续费、库存费、魔术号和止损。
在 AI 助手或电子表格中使用这些文件
- 关于历史的问题。把数据文件和数据说明卡附加到聊天中,复制说明卡末尾的提示词,并在其最后一行写下您的问题。该提示词要求助手把每一行视为只有在其收盘时才可知、去掉预热行、按时间划分数据,并给出置信区间。
- 当前的市场(MT5)。粘贴 XAUUSD_M15.snapshot.md :最近 120 根已收盘K线(最多 500 根),含 UTC 时间、买价和卖价、最多 8 个指标列,以及一个提示词思路。在指标追加数据期间,每出现一根新K线它就会被重写一次。
- 助手只能看到您提供给它的行。请把它的发现当作有待验证的想法,而不是信号。
- Excel 和 Python 可以在追加行的同时读取文件。有供 Excel 使用的 UTF-8 BOM 选项和分号分隔格式。如果某个程序锁定了文件,新行会等到文件解锁后再写入。
- 预热行列在数据说明卡中。在 MT5 中,这些行的指标值是根据很少的历史数据计算的;MT4 则将它们留空。

输入参数
名称就是 Inputs 选项卡中显示的标签。
| 输入参数 | 默认值 | 作用 |
|---|---|---|
| Timeframe of the rows | current | current = 图表周期。 |
| Range | Last N closed bars | 或 Date range (From / To) 、 All available history 。 |
| Last N closed bars (Range = last N bars) | 5000 | 要导出的K线数量。 |
| From (Range = date range) | 2024.01.01 00:00 | 日期范围的起点。 |
| To (0 = up to the last closed bar) | 0 | 日期范围的终点。 |
| After the history | Keep appending each new closed bar | 或 Stop after the history export 。 |
| Open, High, Low, Close | true | 价格列。 |
| Tick volume (and real volume if the broker provides it) | true | 成交量列。 |
| Spread of the bar (points) | true | 点差列。 |
| Bar shape: return, range, body, wicks, gap, log return | true | K线形态列。 |
| Time features: UTC time, weekday, hour, session | true | 时间列。 |
| Indicators, separated by ; | RSI(14); EMA(20); EMA(50); ATR(14); MACD(12,26,9); BB(20,2) | 见下文。留空 = 不导出指标。 |
| Custom indicators: Name:buffer,buffer; Name2:0 | (空) | 您自己的指标。 |
| Higher-timeframe context (last CLOSED bar), separated by ; | H4; D1 | 不高于各行周期的周期会被跳过。 |
| File name ({symbol} {tf} {date}) | {symbol}_{tf} | {date} = 开始时的服务器日期。 |
| Format | CSV, comma separated | 或 CSV, semicolon separated 、 JSON Lines (one object per row) 。 |
| Time format of the 'time' column | ISO 8601 (2026-10-09T15:30:00) | 或 Unix seconds 、 MetaTrader (2026.10.09 15:30) 。 |
| Save in the common folder (Terminal\Common\Files) | false | 公共文件夹。 |
| Write the data card (.md) | true | 数据说明卡。 |
| AI snapshot: last N rows as a paste-ready .md (0 = off) | 120 | 仅 MT5。最多 500。 |
| Add a UTF-8 BOM (for Excel) | false | 供 Excel 使用。 |
| Price decimals (-1 = symbol digits) | -1 | 价格的小数位数。 |
| Also export this account's deals (closed trades) | false | 成交记录文件。 |
| Deals of the last N days | 365 | 仅 MT5。 |
| Server GMT offset in hours (-99 = detect automatically) | -99 | 仅在检测到的时差不正确时设置。 |
| Show the status panel | true | 面板。 |
| Panel X (pixels) | 12 | 仅 MT5。 |
| Panel Y (pixels) | 28 | 仅 MT5。 |
在 MT4 中,列的开关为 Columns: open, high, low, close 、 Columns: tick volume 、 Columns: spread (only rows appended live; MT4 bars have no spread) 、 Columns: return, range, body, wicks, gap, log return 和 Columns: UTC time, weekday, hour, session ,成交记录的开关为 Also export this account's closed orders 。
指标名称:SMA、EMA、SMMA、LWMA、DEMA、TEMA、RSI、ATR、MACD、BB、STOCH、ADX、CCI、MFI、WPR、MOM、STDDEV、OBV、AO、SAR 和 ICHIMOKU(不含 Chikou,因为它使用之后的K线)。不带括号时使用默认参数,例如 RSI(14) 或 MACD(12,26,9)。 MyIndicator:0,1 会以默认输入参数导出某个自定义指标的缓冲区 0 和 1;名称相对于 MQL5\Indicators(MT4:MQL4\Indicators)。未知的名称会被跳过并给出警告。
MT4 说明
- 面板是几行文字,外加一个 Export again 按钮。
- 没有 AI 快照、没有真实成交量,也没有 DEMA 和 TEMA。历史行的 spread_pts 为空,因为 MT4 不保存每根K线的点差;实时追加的行会填入当时的点差。
- 与各行周期相同的更高周期会被直接跳过,比各行周期更低的则会被跳过并给出警告。更高周期的K线遵循经纪商自己的分界;有些经纪商的 H4 K线从 01:00 开始。
- 第一次使用时,H1(用于时区)和更高周期的数据需要从经纪商下载;指标会为每个周期等待最多约一分钟( Waiting for higher-timeframe history... )。如果某个更高周期的数据没有到达,其单元格保持为空;没有 H1 时,时区会退回到 GMT+2(美国夏令时期间为 GMT+3)。数据说明卡中会注明这一点。
- 新打开的图表通常大约有 2,000 根K线。向左滚动或按 Home 键可加载更多,然后点击 Export again。“Max bars in history”和“Max bars in chart”(工具 > 选项 > 图表)也会限制历史深度。
- 已平仓订单是指“账户历史”(Account History)选项卡中显示的订单;修改其显示期间即可包含更早的订单。

用户常问的问题
- 行数比我要求的少?只能导出终端中已加载的K线。在 MT5 中,请在工具 > 选项 > 图表中调高“最大图表数据量”(Max bars in chart),加载更多历史数据,然后点击 Export again。
- 状态显示 is it open in another program? 请在那个程序中关闭该文件,然后点击 Export again。
- 某个更高周期被跳过并给出警告。在 H4 或 D1 图表上,默认的 H4; D1 中包含不高于各行周期的周期。请从该输入参数中删除它。
- 多个品种?在每个图表上各加载一个。使用默认文件名时,每个品种和周期都会有各自的文件。
产品页面:Smart Data Export Indicator(MT5)和 Smart Data Export Indicator MT4。如有任何不清楚之处,请在 MQL5 上给我发送私信,并附上面板的截图以及“智能交易”(Experts)选项卡中的最后几行。



