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 如何運行:時機、數據與參數。