2. Kernkonzepte auf einen Blick

Dieses Kapitel organisiert die Kernkonzepte in qteasy in Tabellen und kurzen Notizen, sodass Sie sie beim Lesen nachfolgender Kapitel oder bei der Verwendung der API schnell nachschlagen können. Eine vollständigere Struktur und Beziehungen finden Sie unter [Gesamtarchitektur- und Designansatz] (00-overview.md).

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

Konzepte

Bedeutung

Wo es in diese Serie passt

DataSource

Eine Abstraktion der lokalen Datenspeicherung, die historische Datentabellen in Dateien oder Datenbanken verwaltet und keine Daten proaktiv abruft.

Datenerfassung, Speicherung und Datentypen

Datentabelle

Tabellen im DataSource, die Markt-, Finanz-, Makro- und andere Daten in einer einheitlichen Struktur speichern.

Datenerfassung, Speicherung und Datentypen

DataType

Eine Typbeschreibung von „Informationen, auf die eine Strategie verweisen kann“, bestimmt durch Name, Häufigkeit, Asset-Typ usw.

[Datenabruf, Speicherung und Datentypen] (02-data-layer.md), [Wie Strategien Daten deklarieren und verwenden] (03-data-in-strategies.md)

htype

Name des historischen Datentyps (z. B. close, open), oft zusammen mit freq und asset_type verwendet, um eine Art von Daten zu identifizieren

Datenerfassung, Speicherung und Datentypen

dtype_id

Die eindeutige Kennung eines DataType in der Form „name_assettype_freq“ (z. B. „close_E_d“)

Siehe „Zusammensetzung und Beispiele von dtype_id“ unten.

Operator

Der Strategiecontainer und der Ausführungseinstiegspunkt; enthält eine Liste von Gruppen und die group_timing_table und stellt run(config) bereit.

Operator und Gruppe

Group

Eine Sammlung von Strategien mit derselben run_freq und run_timing, mit einem signal_type und einem Blender

Operator und Gruppe

Strategy

Die Basisklasse Strategy und ihre Unterklassen; deklariert data_types/window_length und Parameter und implementiert real()

Wie eine Strategie abläuft

run_freq

Die Ausführungshäufigkeit einer Strategie (Gruppe), z. B. „d“ für täglich, „m“ für monatlich.

Operator und Gruppe

run_timing

Wenn eine Strategie (Gruppe) innerhalb eines Zeitraums ausgeführt wird, z. B. „schließen“ beim Schließen, „öffnen“ beim Öffnen.

Operator und Gruppe

group_timing_table

Eine Zeitschritt-x-Gruppen-Tabelle, die markiert, welche Gruppen in jedem Zeitschritt ausgeführt werden.

Operator und Gruppe

blender

Wie Signale von mehreren Strategien innerhalb derselben Gruppe kombiniert werden (Ausdrucks- oder Standardregeln)

Operator und Gruppe

signal_type

Signaltypen: PT (Zielposition), PS (proportionaler Kauf/Verkauf), VS (Mengenkauf/-verkauf)

Unten: „Drei Signaltypen PT/PS/VS“

Parameter

Definition der durch die Strategie einstellbaren Parameter (Name, Typ, Wertebereich usw.)

Wie eine Strategie abläuft

data_types

Erforderliche Datentypen, die von der Strategie deklariert werden (DataType oder Liste)

Wie eine Strategie Daten deklariert und verwendet

window_length

Für die Strategie erforderliche Fensterlänge der historischen Daten (z. B. 20 Tage)

Wie eine Strategie Daten deklariert und verwendet

realize()

Einstiegspunkt der Strategielogik; benötigt keine Parameter; holt Daten über get_pars/get_data und gibt Signale zurück

Wie eine Strategie abläuft

get_data / get_pars

Rufen Sie in real() Daten nach dtype_id und einstellbare Parameter nach Parameternamen ab

Wie eine Strategie Daten deklariert und verwendet

Backtester

Backtest-Executor: steuert den Operator gemäß group_timing_table und simuliert Füllungen

Backtesting, Live-Handel und Optimierung

Optimizer

Optimierer: Durchsucht den Parameterraum und führt mehrmals Backtests durch, um die Zielfunktion zu aggregieren

Backtesting, Live-Handel und Optimierung

Trader

Live-Handelsmanagement: Löst den Operator nach Zeitplan aus und koordiniert den Broker

Backtesting, Live-Handel und Optimierung

Broker

Abstrakte Schnittstelle für Auftragsausführung und Ausführungsberichte

Backtesting, Live-Handel und Optimierung

config

Führen Sie die Konfiguration aus (Asset-Pool, Zeitbereich, Kosten, Kapitalplan usw.), geteilt durch Backtesting/Live-Handel/Optimierung

Backtesting, Live-Handel und Optimierung

qt.run

Einheitlicher Einstiegspunkt: qt.run(op, mode=…, **kwargs) → op.run(config, datasource, logger)

Backtesting, Live-Handel und Optimierung

2.2. 2. dtype_id 的构成与示例

dtype_id besteht aus drei miteinander verketteten Teilen: name_assettype_freq.

  • Name: Name des Datentyps (z. B. close, open, total_mv, pe).

  • Assettyp: Vermögenswerttyp, z. B. „E“ (Aktien), „IDX“ (Index), „ANY“ (beliebig).

  • freq: Datenhäufigkeit, z. B. „d“ (täglich), „w“ (wöchentlich), „m“ (monatlich), „q“ (vierteljährlich).

Beispiel:

dtype_id

Bedeutung

close_E_d

Täglicher Schlusskurs der Aktien

close_IDX_d

Täglicher Schlusskurs eines Index

close_ANY_d

Täglicher Schlusskurs eines beliebigen Vermögenswerts

total_mv_E_q

Vierteljährliche Gesamtmarktkapitalisierung der Aktien

pe_E_d

Tägliches Aktien-KGV (falls verfügbar)

Wenn die Strategie „get_data(dtype_id)“ aufruft, muss die verwendete ID mit der dtype_id übereinstimmen, die vom von der Strategie deklarierten DataType generiert wurde (normalerweise sichtbar über die Eigenschaft „data_type_ids“ der Strategie).

2.3. 3. 三种信号类型 PT/PS/VS 的语义对比表

Typ

Vollständiger Name

Bedeutung (ein Satz)

Beispiel

PT

Position Target

Zielpositionsverhältnis: Das Signal zeigt das gewünschte Long-/Short-Positionsverhältnis an, das erreicht werden soll.

0,5 zeigt eine angestrebte Long-Position von 50 % an.

PS

Proportion Signal

Proportionaler Handel: Das Signal gibt an, welcher Anteil des Kapitals oder der Anteile gekauft/verkauft werden soll.

0,5 bedeutet, dass 50 % des Kapitals zum Kauf verwendet oder 50 % der Position verkauft werden.

VS

Volume Signal

Mengenbasierter Handel: Das Signal gibt die Menge an, die gekauft/verkauft werden soll (Aktien oder Einheiten).

100 bedeutet den Kauf von 100 Aktien; -50 bedeutet den Verkauf von 50 Aktien.

Der gleiche numerische Wert wird als unterschiedliche Bestellabsichten unter unterschiedlichen signal_type interpretiert; Der Signaltyp einer Gruppe wird beim Hinzufügen der Strategie bestimmt, und Strategien innerhalb derselben Gruppe geben denselben Signaltyp aus, der dann vom Mixer gemischt wird.

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

Basisklasse

Typische Anwendungsfälle

Eingaben (get_data usw.)

Ausgaben (Rückgabewert der Realisierung)

RuleIterator

Market Timing, Iteration mit einer einzigen Regel

Einzel-Asset- oder Multi-Asset-Datenfenster (von dtype_id)

Skalarsignal (z. B. 1 / -1 / 0); Die gleiche Regel gilt für alle Vermögenswerte

FactorSorter

Faktorbasierte Aktienauswahl

Multi-Asset-Querschnittsdaten (z. B. Faktorwerte für mehrere Aktien)

1D-Faktor-Array (ein Wert pro Asset); Die Engine wählt Aktien nach Faktorranking und Filterregeln aus

GeneralStg

Allzweck-Multi-Asset-Strategie

Datenfenster mit mehreren Assets und mehreren Datentypen

1D-Signalarray (eine Zielposition oder ein Kauf-/Verkaufsverhältnis pro Vermögenswert)

Weitere Einzelheiten finden Sie unter [Wie die Strategie ausgeführt wird: Timing, Daten und Parameter] (05-strategy-lifecycle.md).