- 修正 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/ 文件夹忽略规则
54 lines
1.1 KiB
Python
54 lines
1.1 KiB
Python
"""
|
||
数据源抽象基类
|
||
"""
|
||
|
||
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
|