📊 K线数据管理 (Node.js)

📈 打开实时K线图

🔴 实时采集

检查中...

DXY

99.39
-0.01 (-0.01%)
高: 99.44 / 低: 99.31
更新: 2026-01-18 22:48:14

XAUUSD

4594.14
+22.91 (+0.50%)
高: 4598.96 / 低: 4567.68
更新: 2026-01-18 22:48:14

XAGUSD

89.75
+1.86 (+2.12%)
高: 89.89 / 低: 87.76
更新: 2026-01-18 22:48:14

📈 当前K线形成中

DXY
1m O:99.39 | H:99.39 | L:99.39 | C:99.39
5m O:99.39 | H:99.39 | L:99.39 | C:99.39
15m O:99.39 | H:99.39 | L:99.39 | C:99.39
30m O:99.39 | H:99.39 | L:99.39 | C:99.39
1h O:99.39 | H:99.39 | L:99.39 | C:99.39
4h O:99.39 | H:99.39 | L:99.39 | C:99.39
1d O:99.39 | H:99.39 | L:99.39 | C:99.39
XAUUSD
1m O:4594.14 | H:4594.14 | L:4594.14 | C:4594.14
5m O:4594.14 | H:4594.14 | L:4594.14 | C:4594.14
15m O:4594.14 | H:4594.14 | L:4594.14 | C:4594.14
30m O:4594.14 | H:4594.14 | L:4594.14 | C:4594.14
1h O:4594.14 | H:4594.14 | L:4594.14 | C:4594.14
4h O:4594.14 | H:4594.14 | L:4594.14 | C:4594.14
1d O:4594.14 | H:4594.14 | L:4594.14 | C:4594.14
XAGUSD
1m O:89.75 | H:89.75 | L:89.75 | C:89.75
5m O:89.75 | H:89.75 | L:89.75 | C:89.75
15m O:89.75 | H:89.75 | L:89.75 | C:89.75
30m O:89.75 | H:89.75 | L:89.75 | C:89.75
1h O:89.75 | H:89.75 | L:89.75 | C:89.75
4h O:89.75 | H:89.75 | L:89.75 | C:89.75
1d O:89.75 | H:89.75 | L:89.75 | C:89.75

📈 数据统计 & 导出

品种 周期 数据量 开始时间 结束时间 操作
DXY 1m 1,440 2026-01-15 23:17:00 2026-01-18 21:03:00 导出 K线 折线
DXY 5m 1,705 2026-01-08 12:30:00 2026-01-18 21:00:00 导出 K线 折线
DXY 15m 572 2026-01-08 12:30:00 2026-01-18 21:00:00 导出 K线 折线
DXY 30m 287 2026-01-08 12:30:00 2026-01-18 21:00:00 导出 K线 折线
DXY 1h 146 2026-01-08 12:00:00 2026-01-18 21:00:00 导出 K线 折线
DXY 4h 42 2026-01-08 12:00:00 2026-01-18 20:00:00 导出 K线 折线
DXY 1d 10 2026-01-08 00:00:00 2026-01-18 00:00:00 导出 K线 折线
XAUUSD 1m 1,440 2026-01-16 04:49:00 2026-01-18 21:03:00 导出 K线 折线
XAUUSD 5m 2,016 2026-01-07 22:50:00 2026-01-18 21:00:00 导出 K线 折线
XAUUSD 15m 2,016 2025-12-16 05:30:00 2026-01-18 21:00:00 导出 K线 折线
XAUUSD 30m 2,016 2025-11-14 04:00:00 2026-01-18 21:00:00 导出 K线 折线
XAUUSD 1h 2,240 2025-09-01 16:00:00 2026-01-18 21:00:00 导出 K线 折线
XAUUSD 4h 2,048 2024-09-20 03:00:00 2026-01-18 20:00:00 导出 K线 折线
XAUUSD 1d 2,048 2018-08-09 06:00:00 2026-01-18 00:00:00 导出 K线 折线
XAGUSD 1m 1,440 2026-01-16 04:52:00 2026-01-18 21:03:00 导出 K线 折线
XAGUSD 5m 2,016 2026-01-07 23:10:00 2026-01-18 21:00:00 导出 K线 折线
XAGUSD 15m 2,016 2025-12-16 05:45:00 2026-01-18 21:00:00 导出 K线 折线
XAGUSD 30m 2,016 2025-11-14 04:30:00 2026-01-18 21:00:00 导出 K线 折线
XAGUSD 1h 2,240 2025-09-01 16:00:00 2026-01-18 21:00:00 导出 K线 折线
XAGUSD 4h 2,048 2024-09-20 03:00:00 2026-01-18 20:00:00 导出 K线 折线
XAGUSD 1d 2,048 2018-08-08 06:00:00 2026-01-18 00:00:00 导出 K线 折线

💡 导入按钮:选择对应的MT4文件(如 XAUUSD1.csv, XAUUSD5.csv 等)

📥 导入MT4数据

粘贴数据

格式: 日期,时间,开盘价,最高价,最低价,收盘价,成交量(MT4时间+6小时转北京时间)

上传文件

支持MT4导出的CSV文件

🔗 API 接口文档

所有接口返回 JSON 格式,支持跨域请求 (CORS),时间默认为北京时间(UTC+8)

API 基础地址:

GET获取K线数据

📎 示例:
参数类型必填默认值说明
symbolstringXAUUSD品种代码:DXY, XAUUSD, XAGUSD
intervalstring1mK线周期:1m, 5m, 15m, 30m, 1h, 4h, 1d
limitnumber100返回数量,最大2000,如:500
beforenumber-获取此时间戳之前的数据(用于分页),如:1736199000
tzstring-时区:默认北京时间(UTC+8),tz=utc返回UTC时间戳

返回字段:time(时间戳), datetime(时间), open(开盘价), high(最高价), low(最低价), close(收盘价), volume(成交量)

fetch('API_BASE/api/klines?symbol=XAUUSD&interval=30m&limit=100') .then(r => r.json()) .then(data => console.log(data));
import requests r = requests.get('API_BASE/api/klines', params={'symbol':'XAUUSD','interval':'30m','limit':100}) print(r.json())
PHPVAR curl = curl_init(); curl_setopt_array(PHPVAR curl, array( CURLOPT_URL => 'API_BASE/api/klines?symbol=XAUUSD&interval=30m&limit=100', CURLOPT_RETURNTRANSFER => true, CURLOPT_TIMEOUT => 30, CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1, CURLOPT_CUSTOMREQUEST => 'GET', )); PHPVAR response = curl_exec(PHPVAR curl); curl_close(PHPVAR curl); PHPVAR data = json_decode(PHPVAR response, true); print_r(PHPVAR data);
curl "API_BASE/api/klines?symbol=XAUUSD&interval=30m&limit=100"
Invoke-RestMethod -Uri "API_BASE/api/klines?symbol=XAUUSD&interval=30m&limit=100"

GET获取实时价格

📎 示例:
参数类型必填默认值说明
symbolstringXAUUSD品种代码:DXY, XAUUSD, XAGUSD

返回字段:price(当前价格), ask(卖价), bid(买价), high(最高价), low(最低价), open(开盘价), change_val(涨跌值), change_pct(涨跌幅%)

fetch('API_BASE/api/price?symbol=XAUUSD') .then(r => r.json()) .then(data => console.log(data));
import requests r = requests.get('API_BASE/api/price', params={'symbol':'XAUUSD'}) print(r.json())
PHPVAR curl = curl_init(); curl_setopt_array(PHPVAR curl, array( CURLOPT_URL => 'API_BASE/api/price?symbol=XAUUSD', CURLOPT_RETURNTRANSFER => true, CURLOPT_TIMEOUT => 30, CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1, CURLOPT_CUSTOMREQUEST => 'GET', )); PHPVAR response = curl_exec(PHPVAR curl); curl_close(PHPVAR curl); PHPVAR data = json_decode(PHPVAR response, true); print_r(PHPVAR data);
curl "API_BASE/api/price?symbol=XAUUSD"
Invoke-RestMethod -Uri "API_BASE/api/price?symbol=XAUUSD"

GET获取所有价格

📎 示例:

无参数,返回所有品种(DXY, XAUUSD, XAGUSD)的实时价格

返回字段:每个品种包含 price(当前价格), change(涨跌值), change_percent(涨跌幅%), updated_at(更新时间戳)

fetch('API_BASE/api/prices') .then(r => r.json()) .then(data => console.log(data));
import requests r = requests.get('API_BASE/api/prices') print(r.json())
PHPVAR curl = curl_init(); curl_setopt_array(PHPVAR curl, array( CURLOPT_URL => 'API_BASE/api/prices', CURLOPT_RETURNTRANSFER => true, CURLOPT_TIMEOUT => 30, CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1, CURLOPT_CUSTOMREQUEST => 'GET', )); PHPVAR response = curl_exec(PHPVAR curl); curl_close(PHPVAR curl); PHPVAR data = json_decode(PHPVAR response, true); print_r(PHPVAR data);
curl "API_BASE/api/prices"
Invoke-RestMethod -Uri "API_BASE/api/prices"

GET获取采集状态

📎 示例:

无参数,返回采集器运行状态、市场状态、各品种数据状态

返回字段:running(采集器状态), market(市场状态), symbols(各品种状态), klines(各周期K线状态), server_time(服务器时间)

fetch('API_BASE/api/status') .then(r => r.json()) .then(data => console.log(data));
import requests r = requests.get('API_BASE/api/status') print(r.json())
PHPVAR curl = curl_init(); curl_setopt_array(PHPVAR curl, array( CURLOPT_URL => 'API_BASE/api/status', CURLOPT_RETURNTRANSFER => true, CURLOPT_TIMEOUT => 30, CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1, CURLOPT_CUSTOMREQUEST => 'GET', )); PHPVAR response = curl_exec(PHPVAR curl); curl_close(PHPVAR curl); PHPVAR data = json_decode(PHPVAR response, true); print_r(PHPVAR data);
curl "API_BASE/api/status"
Invoke-RestMethod -Uri "API_BASE/api/status"

GET导出CSV数据

📎 示例:
参数类型必填默认值说明
symbolstringXAUUSD品种代码:DXY, XAUUSD, XAGUSD
intervalstring1mK线周期:1m, 5m, 15m, 30m, 1h, 4h, 1d

CSV字段:datetime(时间), timestamp(时间戳), open(开盘价), high(最高价), low(最低价), close(收盘价), volume(成交量)

fetch('API_BASE/api/export?symbol=XAUUSD&interval=1m') .then(r => r.blob()) .then(blob => { const a = document.createElement('a'); a.href = URL.createObjectURL(blob); a.download = 'klines.csv'; a.click(); });
import requests r = requests.get('API_BASE/api/export', params={'symbol':'XAUUSD','interval':'1m'}) with open('klines.csv', 'wb') as f: f.write(r.content)
PHPVAR curl = curl_init(); curl_setopt_array(PHPVAR curl, array( CURLOPT_URL => 'API_BASE/api/export?symbol=XAUUSD&interval=1m', CURLOPT_RETURNTRANSFER => true, CURLOPT_TIMEOUT => 30, CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1, CURLOPT_CUSTOMREQUEST => 'GET', )); PHPVAR response = curl_exec(PHPVAR curl); curl_close(PHPVAR curl); file_put_contents('klines.csv', PHPVAR response);
curl -o klines.csv "API_BASE/api/export?symbol=XAUUSD&interval=1m"
Invoke-WebRequest -Uri "API_BASE/api/export?symbol=XAUUSD&interval=1m" -OutFile klines.csv

DELETE清空K线数据

📎 示例: (DELETE请求)
参数类型必填默认值说明
symbolstring-品种代码:DXY, XAUUSD, XAGUSD
intervalstring-K线周期:1m, 5m, 15m, 30m, 1h, 4h, 1d

⚠️ 此操作不可恢复,将清空指定品种和周期的所有K线数据

fetch('API_BASE/api/klines?symbol=XAUUSD&interval=1m', {method: 'DELETE'}) .then(r => r.json()) .then(data => console.log(data));
import requests r = requests.delete('API_BASE/api/klines', params={'symbol':'XAUUSD','interval':'1m'}) print(r.json())
PHPVAR curl = curl_init(); curl_setopt_array(PHPVAR curl, array( CURLOPT_URL => 'API_BASE/api/klines?symbol=XAUUSD&interval=1m', CURLOPT_RETURNTRANSFER => true, CURLOPT_TIMEOUT => 30, CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1, CURLOPT_CUSTOMREQUEST => 'DELETE', )); PHPVAR response = curl_exec(PHPVAR curl); curl_close(PHPVAR curl); PHPVAR data = json_decode(PHPVAR response, true); print_r(PHPVAR data);
curl -X DELETE "API_BASE/api/klines?symbol=XAUUSD&interval=1m"
Invoke-RestMethod -Method Delete -Uri "API_BASE/api/klines?symbol=XAUUSD&interval=1m"

DELETE删除指定时间段K线

📎 示例: (DELETE请求)
参数类型必填默认值说明
symbolstring-品种代码:DXY, XAUUSD, XAGUSD
intervalstring-K线周期:1m, 5m, 15m, 30m, 1h, 4h, 1d
startstring-开始时间(北京时间):2026-01-07 05:50:00 或 Unix时间戳如 1736199000
endstring-结束时间(北京时间):2026-01-07 07:00:00 或 Unix时间戳如 1736203200

⚠️ 此操作不可恢复,将删除指定时间范围内的K线数据

fetch('API_BASE/api/klines/range?symbol=XAUUSD&interval=1m&start=2026-01-07%2005:50:00&end=2026-01-07%2007:00:00', {method: 'DELETE'}) .then(r => r.json()) .then(data => console.log(data));
import requests r = requests.delete('API_BASE/api/klines/range', params={ 'symbol': 'XAUUSD', 'interval': '1m', 'start': '2026-01-07 05:50:00', 'end': '2026-01-07 07:00:00' }) print(r.json())
PHPVAR curl = curl_init(); curl_setopt_array(PHPVAR curl, array( CURLOPT_URL => 'API_BASE/api/klines/range?symbol=XAUUSD&interval=1m&start=2026-01-07%2005:50:00&end=2026-01-07%2007:00:00', CURLOPT_RETURNTRANSFER => true, CURLOPT_TIMEOUT => 30, CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1, CURLOPT_CUSTOMREQUEST => 'DELETE', )); PHPVAR response = curl_exec(PHPVAR curl); curl_close(PHPVAR curl); PHPVAR data = json_decode(PHPVAR response, true); print_r(PHPVAR data);
curl -X DELETE "API_BASE/api/klines/range?symbol=XAUUSD&interval=1m&start=2026-01-07%2005:50:00&end=2026-01-07%2007:00:00"
Invoke-RestMethod -Method Delete -Uri "API_BASE/api/klines/range?symbol=XAUUSD&interval=1m&start=2026-01-07%2005:50:00&end=2026-01-07%2007:00:00"

POST手动添加K线数据

Content-Type: application/json

参数类型必填默认值说明
symbolstring-品种代码:DXY, XAUUSD, XAGUSD
intervalstring-K线周期:1m, 5m, 15m, 30m, 1h, 4h, 1d
datetimestring-K线时间(北京时间):2026-01-07 05:45:00
opennumber-开盘价,如:4494.63
highnumber-最高价,如:4495.00(需 ≥ open, close, low)
lownumber-最低价,如:4494.00(需 ≤ open, close, high)
closenumber-收盘价,如:4494.80
volumenumber0成交量,如:100
fetch('API_BASE/api/klines/add', { method: 'POST', headers: {'Content-Type': 'application/json'}, body: JSON.stringify({ symbol: 'XAUUSD', interval: '5m', datetime: '2026-01-07 05:45:00', open: 4494.63, high: 4495.00, low: 4494.00, close: 4494.80, volume: 100 }) }).then(r => r.json()).then(console.log);
import requests data = { 'symbol': 'XAUUSD', 'interval': '5m', 'datetime': '2026-01-07 05:45:00', 'open': 4494.63, 'high': 4495.00, 'low': 4494.00, 'close': 4494.80, 'volume': 100 } r = requests.post('API_BASE/api/klines/add', json=data) print(r.json())
PHPVAR curl = curl_init(); PHPVAR data = json_encode([ 'symbol' => 'XAUUSD', 'interval' => '5m', 'datetime' => '2026-01-07 05:45:00', 'open' => 4494.63, 'high' => 4495.00, 'low' => 4494.00, 'close' => 4494.80, 'volume' => 100 ]); curl_setopt_array(PHPVAR curl, array( CURLOPT_URL => 'API_BASE/api/klines/add', CURLOPT_RETURNTRANSFER => true, CURLOPT_TIMEOUT => 30, CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1, CURLOPT_CUSTOMREQUEST => 'POST', CURLOPT_POSTFIELDS => PHPVAR data, CURLOPT_HTTPHEADER => array('Content-Type: application/json'), )); PHPVAR response = curl_exec(PHPVAR curl); curl_close(PHPVAR curl); PHPVAR result = json_decode(PHPVAR response, true); print_r(PHPVAR result);
curl -X POST "API_BASE/api/klines/add" -H "Content-Type: application/json" -d '{"symbol":"XAUUSD","interval":"5m","datetime":"2026-01-07 05:45:00","open":4494.63,"high":4495.00,"low":4494.00,"close":4494.80,"volume":100}'
PSVAR body = @{symbol='XAUUSD';interval='5m';datetime='2026-01-07 05:45:00';open=4494.63;high=4495.00;low=4494.00;close=4494.80;volume=100} | ConvertTo-Json Invoke-RestMethod -Method Post -Uri "API_BASE/api/klines/add" -ContentType "application/json" -Body PSVAR body

GET获取支持的品种和周期

📎 示例:  | 

无参数,返回支持的品种列表和周期列表

/api/symbols 返回:["DXY", "XAUUSD", "XAGUSD"]

/api/intervals 返回:["1m", "5m", "15m", "30m", "1h", "4h", "1d"]

// 获取品种列表 fetch('API_BASE/api/symbols').then(r => r.json()).then(console.log); // 获取周期列表 fetch('API_BASE/api/intervals').then(r => r.json()).then(console.log);
import requests symbols = requests.get('API_BASE/api/symbols').json() intervals = requests.get('API_BASE/api/intervals').json() print(symbols, intervals)
// 获取品种列表 PHPVAR curl = curl_init(); curl_setopt_array(PHPVAR curl, array( CURLOPT_URL => 'API_BASE/api/symbols', CURLOPT_RETURNTRANSFER => true, CURLOPT_TIMEOUT => 30, CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1, CURLOPT_CUSTOMREQUEST => 'GET', )); PHPVAR symbols = json_decode(curl_exec(PHPVAR curl), true); curl_close(PHPVAR curl); // 获取周期列表 PHPVAR curl2 = curl_init(); curl_setopt_array(PHPVAR curl2, array( CURLOPT_URL => 'API_BASE/api/intervals', CURLOPT_RETURNTRANSFER => true, CURLOPT_TIMEOUT => 30, CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1, CURLOPT_CUSTOMREQUEST => 'GET', )); PHPVAR intervals = json_decode(curl_exec(PHPVAR curl2), true); curl_close(PHPVAR curl2); print_r(PHPVAR symbols); print_r(PHPVAR intervals);
curl "API_BASE/api/symbols" curl "API_BASE/api/intervals"
Invoke-RestMethod -Uri "API_BASE/api/symbols" Invoke-RestMethod -Uri "API_BASE/api/intervals"