Files
etf/core/datasource/base.py
aszerW 6454e6823f fix(datasource): 修正混合数据源导入路径错误
- 修正 strategies.rotation.engine 中 hybrid_source 模块导入路径错误
- 新增 core.datasource 目录下多个数据源实现模块
- 增加 Akshare 数据源支持 A股指数数据拉取
- 实现数据缓存管理机制,支持本地数据缓存读写
- 新增 YFinance 数据源,支持通过 SSH 隧道访问美股和港股数据
- 实现混合数据源支持 A股/Tushare、港美股/YFinance、加密货币/CCXT 的统一访问
- 集成 SSH 隧道管理,支持 SOCKS5 转 HTTP 代理转发
- 新增 socks2http.py 代理转发工具,解决 CCXT 仅支持 HTTP 代理问题
- 修改 rotation.yaml 加密货币注释,明确使用 OKX 现货和 SSH->HTTP 代理访问
- 删除.gitignore中无用的 data/ 忽略规则,保留 test/ 文件夹忽略规则
2026-03-25 01:32:33 +08:00

54 lines
1.1 KiB
Python
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

"""
数据源抽象基类
"""
from abc import ABC, abstractmethod
from typing import Optional
import pandas as pd
class DataSource(ABC):
"""数据源抽象基类"""
@abstractmethod
def fetch_ohlcv(
self,
code: str,
start_date: str,
end_date: str,
fields: Optional[list] = None,
) -> pd.DataFrame:
"""
获取OHLCV数据
Args:
code: 标的代码
start_date: 开始日期 (YYYY-MM-DD)
end_date: 结束日期 (YYYY-MM-DD)
fields: 指定字段列表None表示获取全部
Returns:
DataFrame with columns: date, open, high, low, close, volume
"""
pass
@abstractmethod
def fetch_multiple(
self,
codes: list,
start_date: str,
end_date: str,
) -> pd.DataFrame:
"""
批量获取多只标的收盘价数据
Args:
codes: 标的代码列表
start_date: 开始日期
end_date: 结束日期
Returns:
DataFrame, index=日期, columns=代码, values=收盘价
"""
pass