pybroker.data 模块
包含用于获取外部数据的 DataSource。
- class Alpaca(api_key: str, api_secret: str)[源代码]
基类:
DataSource从 Alpaca 获取股票数据。
- query(symbols: str | Iterable[str], start_date: str | datetime, end_date: str | datetime, timeframe: str | None = '1d', adjust: Any | None = None) DataFrame[源代码]
查询数据。如果通过调用
pybroker.cache.enable_data_source_cache()启用了缓存,则返回缓存的数据。- 参数:
symbols -- 待查询数据的品种代码。
start_date -- 待查询数据的起始日期(含)。
end_date -- 待查询数据的结束日期(含)。
timeframe -- 指定要查询的时间框架分辨率的格式化字符串。该时间框架字符串支持以下单位: -
"s"/"sec":秒 -"m"/"min":分钟 -"h"/"hour":小时 -"d"/"day":天 -"w"/"week":周 时间框架字符串示例:1h 30m。adjust -- 要应用的复权调整类型。
- 返回:
包含查询结果的
pandas.DataFrame。
- class AlpacaCrypto(api_key: str, api_secret: str)[源代码]
基类:
DataSource从 Alpaca 获取加密货币数据。
- 参数:
api_key -- Alpaca 的 API key。
api_secret -- Alpaca 的 API secret。
- COLUMNS: Final = ('symbol', 'date', 'open', 'high', 'low', 'close', 'volume', 'vwap', 'trade_count')
- query(symbols: str | Iterable[str], start_date: str | datetime, end_date: str | datetime, timeframe: str | None = '1d', _adjust: str | None = None) DataFrame[源代码]
查询数据。如果通过调用
pybroker.cache.enable_data_source_cache()启用了缓存,则返回缓存的数据。- 参数:
symbols -- 待查询数据的品种代码。
start_date -- 待查询数据的起始日期(含)。
end_date -- 待查询数据的结束日期(含)。
timeframe -- 指定要查询的时间框架分辨率的格式化字符串。该时间框架字符串支持以下单位: -
"s"/"sec":秒 -"m"/"min":分钟 -"h"/"hour":小时 -"d"/"day":天 -"w"/"week":周 时间框架字符串示例:1h 30m。adjust -- 要应用的复权调整类型。
- 返回:
包含查询结果的
pandas.DataFrame。
- class DataSource[源代码]
-
用于从外部数据源查询数据的基类。继承此类并重写
_fetch_data(),即可实现一个可与pybroker.strategy.Strategy搭配使用的自定义DataSource。- abstractmethod _fetch_data(symbols: frozenset[str], start_date: datetime, end_date: datetime, timeframe: str | None, adjust: Any | None) DataFrame[源代码]
重写此方法以从自定义数据源返回数据。返回的
pandas.DataFrame必须包含以下列:symbol、date、open、high、low和close。- 参数:
symbols -- 待查询数据的股票代码。
start_date -- 待查询数据的起始日期(含)。
end_date -- 待查询数据的结束日期(含)。
timeframe -- 指定要查询的时间框架分辨率的格式化字符串。该时间框架字符串支持以下单位: -
"s"/"sec":秒 -"m"/"min":分钟 -"h"/"hour":小时 -"d"/"day":天 -"w"/"week":周 时间框架字符串示例:1h 30m。adjust -- 要应用的复权调整类型。
- 返回:
包含查询结果的
pandas.DataFrame。
- query(symbols: str | Iterable[str], start_date: str | datetime, end_date: str | datetime, timeframe: str | None = '', adjust: Any | None = None) DataFrame[源代码]
查询数据。如果通过调用
pybroker.cache.enable_data_source_cache()启用了缓存,则返回缓存的数据。- 参数:
symbols -- 待查询数据的品种代码。
start_date -- 待查询数据的起始日期(含)。
end_date -- 待查询数据的结束日期(含)。
timeframe -- 指定要查询的时间框架分辨率的格式化字符串。该时间框架字符串支持以下单位: -
"s"/"sec":秒 -"m"/"min":分钟 -"h"/"hour":小时 -"d"/"day":天 -"w"/"week":周 时间框架字符串示例:1h 30m。adjust -- 要应用的复权调整类型。
- 返回:
包含查询结果的
pandas.DataFrame。
- class DataSourceCacheMixin[源代码]
基类:
object实现获取和存储已缓存
DataSource数据的 Mixin。- get_cached(symbols: Iterable[str], timeframe: str, start_date: str | datetime | Timestamp | datetime64, end_date: str | datetime | Timestamp | datetime64, adjust: Any | None) tuple[DataFrame, Iterable[str]][源代码]
当通过
pybroker.cache.enable_data_source_cache()启用缓存时,从磁盘获取已缓存的数据。- 参数:
symbols -- 用于获取已缓存数据的品种代码
Iterable。timeframe -- 指定已缓存数据的时间框架分辨率的格式化字符串。该时间框架字符串支持以下单位: -
"s"/"sec":秒 -"m"/"min":分钟 -"h"/"hour":小时 -"d"/"day":天 -"w"/"week":周 时间框架字符串示例:1h 30m。start_date -- 已缓存数据的起始日期(含)。
end_date -- 已缓存数据的结束日期(含)。
adjust -- 要应用的复权调整类型。
- 返回:
tuple[pandas.DataFrame, Iterable[str]],包含一个存有已缓存数据的pandas.DataFrame,以及一个记录未找到缓存数据的品种代码的Iterable[str]。
- set_cached(timeframe: str, start_date: str | datetime | Timestamp | datetime64, end_date: str | datetime | Timestamp | datetime64, adjust: Any | None, data: DataFrame)[源代码]
当通过
pybroker.cache.enable_data_source_cache()启用缓存时,将数据存储到磁盘缓存。- 参数:
timeframe -- 指定待缓存数据的时间框架分辨率的格式化字符串。该时间框架字符串支持以下单位: -
"s"/"sec":秒 -"m"/"min":分钟 -"h"/"hour":小时 -"d"/"day":天 -"w"/"week":周 时间框架字符串示例:1h 30m。start_date -- 待缓存数据的起始日期(含)。
end_date -- 待缓存数据的结束日期(含)。
adjust -- 要应用的复权调整类型。
data -- 包含待缓存数据的
pandas.DataFrame。
- class YFinance(auto_adjust: bool = False)[源代码]
基类:
DataSource从 Yahoo Finance获取数据。
- 参数:
auto_adjust -- 是否自动复权收盘价。如果为
True,则close列会存储复权后的收盘价。默认为False。
- ADJ_CLOSE
复权收盘价所在列的列名。
- 类型:
Final
- query(symbols: str | Iterable[str], start_date: str | datetime, end_date: str | datetime, _timeframe: str | None = '', _adjust: Any | None = None) DataFrame[源代码]
从 Yahoo Finance查询数据。数据的时间框架仅限于按天。
- 参数:
symbols -- 待查询数据的股票代码。
start_date -- 待查询数据的起始日期(含)。
end_date -- 待查询数据的结束日期(含)。
- 返回:
包含查询结果的
pandas.DataFrame。