- onchain_metrics.py: 独立模块,CoinMetrics/CoinGecko/Farside 免费数据源 - main.py: 集成后台线程 + REST API (/api/onchain/metrics, /latest, /available) - requirements.txt: 添加 requests 依赖 - 5分钟自动刷新,CSV 落盘到 data/onchain/
Chan 数据提供商 (Chan Data Provider)
从 Binance 期货 交易所拉取加密货币 K 线数据,提供 HTTP + WebSocket 数据服务。
功能
- 多交易对:支持 BTC, ETH, SOL, DOGE 等 9 个交易对
- 多时间周期:基础周期 1m/1h/1d/1w,可合成 30+ 种衍生周期(如 5m, 15m, 4h 等)
- 本地缓存:CSV 持久化到磁盘,重启快速加载
- 断线恢复:交易所连接中断时记录断点,自动补拉缺失数据
- 实时推送:WebSocket 订阅最新 K 线更新
- 内存服务:启动即加载本地数据,不阻塞服务
启动
# Docker
docker compose up -d
# 直接运行
python main.py
# 或指定配置
CONFIG_PATH=./config.json python main.py
服务默认监听 http://0.0.0.0:9009。
配置
编辑 config.json:
{
"exchange": "binance",
"symbols": ["BTC/USDT:USDT", "ETH/USDT:USDT"],
"start_time": "2024-01-01T00:00:00Z",
"timeframes": ["1m", "1h", "1d", "1w"],
"data_dir": "./data"
}
| 字段 | 说明 |
|---|---|
exchange |
交易所名称(ccxt 支持即可) |
symbols |
交易对列表 |
start_time |
历史数据起始时间 |
timeframes |
基础周期(从交易所直接拉取) |
data_dir |
CSV 数据存储目录 |
可用周期
基础周期(交易所直接拉取)
1m, 1h, 1d, 1w
衍生周期(内存中合成)
| 基础周期 | 可合成的衍生周期 |
|---|---|
| 1m | 2m, 3m, 4m, 5m, 10m, 15m, 20m, 25m, 30m, 45m |
| 1h | 2h, 3h, 4h, 5h, 6h, 7h, 8h, 9h, 10h, 11h, 12h, 16h, 20h |
| 1d | 2d, 3d, 4d, 5d, 6d |
| 1w | 2w, 3w |
数据存储
数据以 CSV 格式存储,按时间周期分目录:
./data/
1m/
binance_BTC_USDT_USDT_1m.csv
binance_ETH_USDT_USDT_1m.csv
...
1h/
...
每根 K 线包含:timestamp, datetime, open, high, low, close, volume。
API 文档请访问 http://<host>:9009/api/docs。