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_timing_table を保持し、run(config) を提供します

Operator とグループ

Group

同じ run_freq と run_timing、signal_type および Blender を持つ戦略のコレクション

Operator とグループ

Strategy

基本 Strategy クラスとそのサブクラス。 data_types/window_length と Parameters を宣言し、realize() を実装します。

戦略の実行方法

run_freq

戦略 (グループ) の実行頻度。例: 'd' は日次、'm' は月次。

Operator とグループ

run_timing

戦略 (グループ) が期間内に実行される場合 (例: クローズ時に 'close'、オープン時に 'open')。

Operator とグループ

group_timing_table

各タイム ステップで実行されるグループをマークするタイム ステップ × グループ テーブル。

Operator とグループ

blender

同じグループ内の複数の戦略からのシグナルがどのように結合されるか (式またはデフォルト ルール)

Operator とグループ

signal_type

シグナルタイプ: PT (ターゲットポジション)、PS (比例買い/売り)、VS (数量買い/売り)

以下: 「3 つの信号タイプ 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

ライブ取引管理: スケジュールに従ってOperatorをトリガーし、ブローカーを調整します

バックテスト、ライブ取引、最適化

Broker

注文実行および約定レポートのための抽象インターフェイス

バックテスト、ライブ取引、最適化

config

バックテスト/ライブ取引/最適化によって共有される実行構成 (資産プール、時間範囲、コスト、資本計画など)

バックテスト、ライブ取引、最適化

qt.run

統合されたエントリ ポイント: qt.run(op, mode=…, **kwargs) → op.run(config, datasource, logger)

バックテスト、ライブ取引、最適化

2.2. 2. dtype_id 的构成与示例

dtype_id は、name_assettype_freq という 3 つの部分が連結されて構成されます。

  • 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

日次株価PER (入手可能な場合)

ストラテジーが 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 では異なる順序インテントとして解釈されます。グループの signal_type はストラテジを追加するときに決定され、同じグループ内のストラテジは同じタイプの信号を出力し、その後ブレンダーによってブレンドされます。

2.4. 4. 三种策略基类的输入/输出对比表

基本クラス

典型的な使用例

入力 (get_data など)

出力(realizeの戻り値)

RuleIterator

マーケットタイミング、単一ルールの反復

単一アセットまたはマルチアセット データ ウィンドウ (dtype_id による)

スカラー信号 (例: 1 / -1 / 0);同じルールがすべての資産に適用されます

FactorSorter

ファクターベースの銘柄選択

複数の資産の横断的データ (例: 複数の株式のファクター値)

1D 因子配列 (資産ごとに 1 つの値);エンジンはファクターランキングとフィルタリングルールによって銘柄を選択します

GeneralStg

汎用マルチアセット戦略

マルチアセット、マルチデータタイプのデータウィンドウ

1D シグナル配列 (資産ごとに 1 つのターゲット ポジションまたは売買比率)

詳細については、ストラテジーの実行方法: タイミング、データ、パラメーター を参照してください。