2. 核心概念速覽

本章用表格和簡短說明梳理 qteasy 中的核心概念,便於在閱讀後續章節或使用 API 時快速查閱。更完整的結構與關係見 總體架構與設計思路

2.1. 1. 概念表(名称 / 含义 / 在文档中的位置)

概念

含義

本系列中的位置

DataSource

本地數據存儲的抽象,管理文件或數據庫中的歷史數據表,不主動拉取數據

數據獲取、存儲與數據類型

數據表

DataSource 中的表,按統一結構存儲行情、財務、宏觀等數據

數據獲取、存儲與數據類型

DataType

“策略可引用的資訊”的類型描述,由 name、freq、asset_type 等確定

數據獲取、存儲與數據類型策略如何聲明與使用數據

htype

歷史數據類型名稱(如 close、open),常與 freq、asset_type 一起用來標識一種數據

數據獲取、存儲與數據類型

dtype_id

DataType 的唯一標識,形如 name_assettype_freq(如 close_E_d

下文“dtype_id 的構成與示例”

Operator

策略容器與運行入口,持有 Group 列表與 group_timing_table,提供 run(config)

Operator 與 Group

Group

具有相同 run_freq、run_timing 的策略集合,擁有 signal_type 與 blender

Operator 與 Group

Strategy

策略基類及其子類,聲明 data_types/window_length、Parameter,實現 realize()

Strategy 如何運行

run_freq

策略(組)的運行頻率,如 'd' 日、'm'

Operator 與 Group

run_timing

策略(組)在週期內的運行時機,如 'close' 收盤、'open' 開盤

Operator 與 Group

group_timing_table

時間步 × Group 的表,標記每個時間步哪些 Group 運行

Operator 與 Group

blender

同 Group 內多策略信號的混合方式(表達式或默認規則)

Operator 與 Group

signal_type

信號類型:PT(目標倉位)、PS(比例買賣)、VS(數量買賣)

下文“三種信號類型 PT/PS/VS”

Parameter

策略可調參數的定義(名稱、類型、取值範圍等)

Strategy 如何運行

data_types

策略聲明的所需數據類型(DataType 或列表)

策略如何聲明與使用數據

window_length

策略所需歷史數據的窗口長度(如 20 天)

策略如何聲明與使用數據

realize()

策略邏輯入口,無參數,通過 get_pars/get_data 取數並返回信號

Strategy 如何運行

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

含義

close_E_d

股票日頻收盤價

close_IDX_d

指數日頻收盤價

close_ANY_d

任意資產日頻收盤價

total_mv_E_q

股票季頻總市值

pe_E_d

股票日頻市盈率(若存在)

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