2. 核心概念速览
本章用表格和简短说明梳理 qteasy 中的核心概念,便于在阅读后续章节或使用 API 时快速查阅。更完整的结构与关系见 总体架构与设计思路。
2.1. 1. 概念表(名称 / 含义 / 在文档中的位置)
概念 |
含义 |
本系列中的位置 |
|---|---|---|
DataSource |
本地数据存储的抽象,管理文件或数据库中的历史数据表,不主动拉取数据 |
|
数据表 |
DataSource 中的表,按统一结构存储行情、财务、宏观等数据 |
|
DataType |
“策略可引用的信息”的类型描述,由 name、freq、asset_type 等确定 |
|
htype |
历史数据类型名称(如 close、open),常与 freq、asset_type 一起用来标识一种数据 |
|
dtype_id |
DataType 的唯一标识,形如 |
下文“dtype_id 的构成与示例” |
Operator |
策略容器与运行入口,持有 Group 列表与 group_timing_table,提供 run(config) |
|
Group |
具有相同 run_freq、run_timing 的策略集合,拥有 signal_type 与 blender |
|
Strategy |
策略基类及其子类,声明 data_types/window_length、Parameter,实现 realize() |
|
run_freq |
策略(组)的运行频率,如 |
|
run_timing |
策略(组)在周期内的运行时机,如 |
|
group_timing_table |
时间步 × Group 的表,标记每个时间步哪些 Group 运行 |
|
blender |
同 Group 内多策略信号的混合方式(表达式或默认规则) |
|
signal_type |
信号类型:PT(目标仓位)、PS(比例买卖)、VS(数量买卖) |
下文“三种信号类型 PT/PS/VS” |
Parameter |
策略可调参数的定义(名称、类型、取值范围等) |
|
data_types |
策略声明的所需数据类型(DataType 或列表) |
|
window_length |
策略所需历史数据的窗口长度(如 20 天) |
|
realize() |
策略逻辑入口,无参数,通过 get_pars/get_data 取数并返回信号 |
|
get_data / get_pars |
在 realize() 内按 dtype_id 取数据、按参数名取可调参数 |
|
Backtester |
回测执行器,按 group_timing_table 驱动 Operator 并模拟成交 |
|
Optimizer |
优化器,在参数空间搜索并多次回测,汇总目标函数 |
|
Trader |
实盘交易管理,按 schedule 触发 Operator 并协调 Broker |
|
Broker |
订单执行与成交回报的接口抽象 |
|
config |
运行配置(资产池、区间、成本、资金计划等),回测/实盘/优化共用 |
|
qt.run |
统一入口:qt.run(op, mode=…, **kwargs) → op.run(config, datasource, logger) |
2.2. 2. dtype_id 的构成与示例
dtype_id 由三部分拼接而成:name_assettype_freq。
name:数据类型名称(如 close、open、total_mv、pe)。
assettype:资产类型,如
E(股票)、IDX(指数)、ANY(任意)。freq:数据频率,如
d(日)、w(周)、m(月)、q(季)。
示例:
dtype_id |
含义 |
|---|---|
|
股票日频收盘价 |
|
指数日频收盘价 |
|
任意资产日频收盘价 |
|
股票季频总市值 |
|
股票日频市盈率(若存在) |
策略在 get_data(dtype_id) 时使用的 id 需与策略声明的 DataType 所生成的 dtype_id 一致(通常可通过策略的 data_type_ids 属性查看)。
2.3. 3. 三种信号类型 PT/PS/VS 的语义对比表
类型 |
全称 |
含义(一句话) |
示例 |
|---|---|---|---|
PT |
Position Target |
目标持仓比例,信号表示希望达到的多空仓位比例 |
0.5 表示目标 50% 多头仓位 |
PS |
Proportion Signal |
比例买卖,信号表示用资金或持仓的多少比例买入/卖出 |
0.5 表示用 50% 资金买入或卖出 50% 持仓 |
VS |
Volume Signal |
数量买卖,信号表示买入/卖出的数量(股或份) |
100 表示买入 100 股,-50 表示卖出 50 股 |
同一数值在不同 signal_type 下会被解析为不同的委托意图;Group 的 signal_type 在添加策略时确定,同组内策略输出同一类型信号再由 blender 混合。
2.4. 4. 三种策略基类的输入/输出对比表
基类 |
典型用途 |
输入(get_data 等) |
输出(realize 返回值) |
|---|---|---|---|
RuleIterator |
择时、单规则迭代 |
单资产或多资产的数据窗口(按 dtype_id) |
标量信号(如 1 / -1 / 0),同一规则作用于所有资产 |
FactorSorter |
因子选股 |
多资产截面数据(如多只股票的因子值) |
一维因子数组(每资产一个值),引擎按因子排序与筛选规则选股 |
GeneralStg |
通用多资产策略 |
多资产、多数据类型的数据窗口 |
一维信号数组(每资产一个目标仓位或买卖比例) |
更多细节见 Strategy 如何运行:时机、数据与参数。