更新data_provider逻辑,能够更快开始提供服务,添加说明
This commit is contained in:
@@ -0,0 +1,82 @@
|
||||
# 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://<host>:9009/api/docs`。
|
||||
Reference in New Issue
Block a user