Skip to content

_base - 行情数据结构核心基类

一句话总览

📌 行情数据抽象基类,提供统一的数据操作接口

⚠️ AI 开发必读

使用场景

应该使用

  • 场景1:创建自定义行情数据类
  • 场景2:实现多市场统一数据接口

不应该使用

  • 不应该直接实例化 Mixin 类
  • 不应该用于实时数据推送场景

注意事项

  1. Mixin 类不能直接实例化

    • 说明:Mixin 类是功能组合层,需要与基类一起使用
  2. pickle 反序列化后需要调用 _init_subclass()

    • 说明:序列化后缓存状态可能失效

已知限制

  • 限制1:仅支持 A 股、期货、债券等国内金融市场
  • 限制2:不支持实时数据推送,仅支持批量查询

依赖

依赖类型模块说明
必须fquant.fqbase基础工具
必须pandas数据处理
必须numpy数值计算

TL;DR

  • 核心能力:数据筛选、指标计算、周期转换、序列化导出
  • 入门难度:🔵 中等

快速开始

python
from FQData.DataStruct import StockDayData
import pandas as pd

data = pd.DataFrame({
    'open': [10.0],
    'high': [10.5],
    'low': [9.5],
    'close': [10.2],
    'volume': [1000]
}, index=pd.MultiIndex.from_tuples([
    ('000001', '2024-01-01')
], names=['code', 'date']))

stock = StockDayData(data, dtype='stock_day', if_fq='bfq')
print(stock.close)

核心类

QuotationDataStructBase

行情数据抽象基类,定义统一的行情数据接口。

属性

属性类型描述
datapd.DataFrame原始 DataFrame
dtypestr数据类型标识
if_fqstr复权类型
openpd.Series开盘价
highpd.Series最高价
lowpd.Series最低价
closepd.Series收盘价
volumepd.Series成交量
pricepd.Series价格

方法

init
python
def __init__(
    self,
    data: pd.DataFrame,
    dtype: str,
    if_fq: str = 'bfq',
    market_type: str = None,
    frequence: str = None
) -> None

参数:

参数类型必填描述
datapd.DataFrame行情数据
dtypestr数据类型
if_fqstr复权类型
market_typestr市场类型
frequencestr数据频率
select_code
python
def select_code(self, code: str) -> 'QuotationDataStructBase'

描述: 按股票代码筛选数据

fillna
python
def fillna(
    self,
    value: Any = None,
    method: str = None,
    inplace: bool = False
) -> 'QuotationDataStructBase'

描述: 填充缺失值

resample
python
def resample(self, level: str) -> Optional['QuotationDataStructBase']

描述: 数据重采样(周期转换)

常见错误

错误原因解决方案
KeyError列名不存在检查数据列名
ValueError代码或时间筛选无效检查筛选参数

变更日志

版本日期变更
v1.0.02024-01初始版本