数据获取模块 (data-fetch)
使用 mairui API 获取指数K线数据(支持时间范围参数)
文件说明
mairui_fetcher.py - 核心数据获取模块
fetch_cyb50.py - 快速获取创业板50数据脚本
data/ - 数据保存目录(自动创建)
使用方法
1. 快速获取创业板50数据
cd ~/.openclaw/workspace/cyb50-quant/cat-fly/data-fetch
python fetch_cyb50.py
2. 命令行参数获取
# 获取创业板50,2023年至今,30分钟K线
python mairui_fetcher.py --start 2023-01-01
# 获取2024年全年日线数据
python mairui_fetcher.py --code 399673.SZ --tf d --start 2024-01-01 --end 2024-12-31
# 获取上证指数60分钟数据
python mairui_fetcher.py --code 000001.SH --tf 60 --start 2024-01-01
# 只获取不保存
python mairui_fetcher.py --start 2023-01-01 --no-save
3. 在代码中使用
from mairui_fetcher import fetch_cyb50_30min, MairuiDataFetcher
# 快速获取创业板50的30分钟数据
df = fetch_cyb50_30min(start_date="2023-01-01", end_date="2025-03-25")
# 自定义获取
fetcher = MairuiDataFetcher(data_dir="./my_data")
# 获取日线数据
df = fetcher.fetch_data(
index_code="399673.SZ",
timeframe="d", # d=日线, 30=30分钟, 60=60分钟
start_date="2023-01-01",
end_date="2025-03-25"
)
# 获取30分钟数据
df = fetcher.fetch_30min_data(
index_code="399673.SZ",
start_date="2023-01-01",
end_date="2025-03-25"
)
# 保存数据
fetcher.save_to_csv(df, "my_data.csv")
# 加载数据
df = fetcher.load_from_csv("my_data.csv")
API 接口说明
历史数据接口
https://api.mairuiapi.com/hsindex/history/{指数代码}/{分时级别}/{token}?st={开始时间}&et={结束时间}
参数说明:
| 参数 |
说明 |
示例 |
| 指数代码 |
指数代码.市场 |
399673.SZ, 000001.SH |
| 分时级别 |
K线周期 |
d=日线, 30=30分钟, 60=60分钟 |
| token |
API密钥 |
AE17EE23-AAE4-492F-A959-EC883DFA5A76 |
| st |
开始时间 |
20230101 (YYYYMMDD格式) |
| et |
结束时间 |
20250325 (YYYYMMDD格式) |
完整示例:
https://api.mairuiapi.com/hsindex/history/399673.SZ/30/AE17EE23-AAE4-492F-A959-EC883DFA5A76?st=20230101&et=20250325
支持的指数代码
| 名称 |
代码 |
别名 |
| 创业板50 |
399673.SZ |
cyb50 |
| 创业板指 |
399006.SZ |
cy |
| 上证指数 |
000001.SH |
sh |
| 沪深300 |
000300.SH |
hs300 |
| 深证成指 |
399001.SZ |
sz |
支持的K线周期
| 代码 |
说明 |
d |
日线 |
30 |
30分钟线 |
60 |
60分钟线 |
返回数据格式
| 列名 |
说明 |
| datetime |
日期时间 |
| open |
开盘价 |
| high |
最高价 |
| low |
最低价 |
| close |
收盘价 |
| volume |
成交量 |
| amount |
成交额 |
数据量估算
创业板50指数 30分钟K线数据量:
- 每天交易4小时 = 8条30分钟K线
- 每年约250个交易日 = 2000条/年
- 2023年至今(约2.2年)≈ 4400条数据
依赖安装
pip install requests pandas
注意事项
- API限制: 注意mairui API的调用频率限制
- 数据延迟: 免费数据可能有15分钟延迟
- 日期格式: 代码中传入
YYYY-MM-DD 格式,API会自动转换为 YYYYMMDD
- 时间范围: 可获取2005年至今的数据
- 空数据处理: 如果API返回空数据,会返回空的DataFrame
更新日志
v2.0 (2025-03-25)
- ✨ 支持时间范围参数 (
st, et)
- ✨ 支持多种K线周期 (日线/30分钟/60分钟)
- ✨ 代码更简洁,无需分页
- ✨ 添加命令行参数支持
v1.1 (2025-03-25)
v1.0 (2025-03-25)