# Chan 数据提供商 (Chan Data Provider) 从 **Binance 期货** 交易所拉取加密货币 K 线数据,提供 HTTP + WebSocket 数据服务。 ## 功能 - **多交易对**:支持 BTC, ETH, SOL, DOGE 等 9 个交易对 - **多时间周期**:基础周期 1m/1h/1d/1w,可合成 30+ 种衍生周期(如 5m, 15m, 4h 等) - **本地缓存**:CSV 持久化到磁盘,重启快速加载 - **断线恢复**:交易所连接中断时记录断点,自动补拉缺失数据 - **实时推送**:WebSocket 订阅最新 K 线更新 - **内存服务**:启动即加载本地数据,不阻塞服务 ## 启动 ```bash # Docker docker compose up -d # 直接运行 python main.py # 或指定配置 CONFIG_PATH=./config.json python main.py ``` 服务默认监听 `http://0.0.0.0:9009`。 ## 配置 编辑 `config.json`: ```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://:9009/api/docs`。