# 快速入门:统一数据获取接口 ## 5分钟快速上手 ### 1. 安装依赖 ```bash pip install pandas yfinance tushare ``` ### 2. 配置 Tushare Token 在项目根目录的 `.env` 文件中添加: ```env TUSHARE_TOKEN=your_token_here ``` 如果没有 token,前往 [Tushare](https://tushare.pro/) 注册获取。 ### 3. 第一个示例 ```python from core.datasource.universal_fetcher import fetch_kline # 获取沪深300指数最近3个月的数据 df = fetch_kline("000300.SH", "2024-01-01", "2024-03-31") print(f"获取到 {len(df)} 条数据") print(df.tail()) ``` ### 4. 批量获取 ```python from core.datasource.universal_fetcher import UniversalDataFetcher codes = [ "000300.SH", # 沪深300 "510300.SH", # 沪深300ETF "NDX", # 纳斯达克100 "HSI", # 恒生指数 ] fetcher = UniversalDataFetcher() with fetcher: results = fetcher.fetch_multiple(codes, "2024-01-01", "2024-03-31") for code, df in results.items(): if df is not None: print(f"✓ {code}: {len(df)} 条") ``` ## 常用代码速查表 ### A股指数 | 代码 | 名称 | |------|------| | `000300.SH` | 沪深300 | | `000016.SH` | 上证50 | | `399006.SZ` | 创业板指 | | `000905.SH` | 中证500 | | `H30269.CSI` | 中证红利低波 | ### A股ETF | 代码 | 名称 | |------|------| | `510300.SH` | 沪深300ETF | | `159915.SZ` | 创业板ETF | | `510500.SH` | 中证500ETF | | `513100.SH` | 纳指ETF | ### 全球指数 | 代码 | 名称 | |------|------| | `NDX` | 纳斯达克100 | | `SPX` | 标普500 | | `HSI` | 恒生指数 | | `N225` | 日经225 | | `GDAXI` | 德国DAX | ### 期货 & 加密资产 | 代码 | 名称 | |------|------| | `AU.SHF` | 黄金期货 | | `BTC` | 比特币 | | `ETH` | 以太坊 | ## 常见问题 ### 获取数据失败怎么办? 1. **检查网络连接**:YFinance 可能需要科学上网 2. **检查 Token**:确保 `.env` 文件中配置了 `TUSHARE_TOKEN` 3. **检查代码格式**:使用 `detect_asset_type()` 检测代码是否正确 ```python from core.datasource.universal_fetcher import detect_asset_type print(detect_asset_type("000300.SH")) # 应输出 'china_index' ``` ### 如何配置SSH隧道? ```python ssh_config = { "enabled": True, "host": "your-server.com", "port": 22, "username": "root", "key_path": "/path/to/key.pem", "local_port": 1080, } fetcher = UniversalDataFetcher(ssh_config=ssh_config) with fetcher: df = fetcher.fetch("NDX", "2024-01-01", "2024-03-31") ``` ## 下一步 - 查看 [完整文档](./universal_fetcher_README.md) - 运行 [测试脚本](../../tests/test_universal_fetcher.py) - 学习 [使用示例](../../examples/universal_fetcher_examples.py)