9. トレーディング戦略クラス
このページは、コア Strategy クラスの autodoc エントリです。設計ノートとチュートリアルについては、以下を参照してください。
デザイン:
design/10-live-trading-s1.3-architecture.md戦略管理:
manage_strategies/*実践的なチュートリアル:
tutorials/*
BaseStrategy
- class qteasy.BaseStrategy(*, name: str = '', description: str = '', stg_type: str = 'BASE', pars: Optional[Union[Parameter, List[Parameter], Dict[str, Parameter]]] = None, data_types: Optional[Union[DataType, List[DataType], Dict[str, DataType]]] = None, use_latest_data_cycle: Union[bool, List[bool], Dict[str, bool]] = False, window_length: Union[int, List[int], Dict[str, int]] = 270, opt_tag: int = 0, par_values: Optional[Union[Tuple[Any], List[Any]]] = None)[ソース]
ベースクラス:
object定量的戦略の抽象基本クラス。具体的な戦略はそれを継承し、信号生成ロジックを実装します。
完全な戦略は通常 3 つの部分で構成されます: 調整可能なパラメーター (
pars), declared historical data (data_types,window_length, etc.), andrealize()logic that turns data into signals. During runs, useget_pars()andget_data(); Operator は数値シグナルを PT/PS/VS 取引指示として解析します。カスタム戦略と PT/PS/VS の詳細については、「取引戦略と BaseStrategy」ドキュメントを参照してください。サンプル
「BaseStrategy」は抽象的です。サブクラス化してカスタム戦略を実装します。以下の例は、安定した型の出力を示しています。
>>> import qteasy as qt >>> qt.BaseStrategy.__name__ 'BaseStrategy'
- get_pars(*par_names)[ソース]
get the value of parameter by its name or id, alias as operator.par_name multiple parameters can be got at one time
- info(verbose: bool = False, status: bool = False, stg_id: Optional[str] = None, extra_info: Optional[str] = None) None[ソース]
すべての関連情報と主要な属性を出力します。
- パラメータ:
verbose (bool, default False) -- 追加の詳細を印刷するかどうか
status (bool, default False) -- ストラテジーの実行状態を印刷するかどうか
stg_id (str, default None) -- 戦略 ID。なしの場合は、代わりに戦略名を出力します
extra_info (str, default None) -- メイン情報の後、パラメータとデータの前に印刷される追加のテキスト
- 戻り値の型:
None
GeneralStg
- class qteasy.GeneralStg(name: str = 'General', description: str = 'description of General strategy', **kwargs)[ソース]
ベースクラス:
BaseStrategy一般戦略クラス:
realize()で完全な取引ロジックとシグナル出力を定義します。GeneralStg クラスの詳細については、qteasy ドキュメントを参照してください。
FactorSorter
- class qteasy.FactorSorter(name: str = 'Factor', description: str = 'description of factor sorter strategy', max_sel_count: float = 0.5, condition: str = 'any', lbound: float = -inf, ubound: float = inf, sort_ascending: bool = False, weighting: str = 'even', **kwargs)[ソース]
ベースクラス:
BaseStrategy- FactorSorter 銘柄ピッキング戦略。ユーザー定義の銘柄ピッキング係数のフィルタリングと並べ替えに基づいて、各銘柄ピッキングの重み付けを決定します (FactorSorter 戦略は、
生成される取引シグナルは 0 から 1 の間です。signal_type を "PT" に設定することをお勧めします)
このタイプの戦略では、ユーザーが履歴データから銘柄選択要因を抽出し、銘柄選択要因のサイズに従って並べ替えた後、ポートフォリオ内の株式の取引シグナルを決定する必要があります。ユーザーは、realize() メソッドで銘柄選択要因を計算する必要があり、一度係数が計算されると、次の並べ替えおよび銘柄選択ロジックをユーザーが定義する必要はありません。この戦略は、事前定義された条件に基づいて基準を満たすファクターをフィルターで除外し、残りのファクターを並べ替え、その中から特定の数の銘柄を選択し、最後にファクター値に基づいて重み付けまたはシグナル値を割り当てます。
RuleIterator
- class qteasy.RuleIterator(name: str = 'Rule-Iterator', description: str = 'description of rule iterator strategy', allow_multi_par: bool = True, **kwargs)[ソース]
ベースクラス:
BaseStrategyルール反復戦略: 共有ごとに区別せずに、すべての共有に同じルールを適用します。
RuleIteratorは、同じルールの株ごとに異なるパラメータを適用できます。たとえば、株ごとに異なる MA 期間などです。 Strategy クラスの詳細については、qteasy のドキュメントを参照してください。共有ごとのパラメータ:
update_par_values({code: (p1, p2, ...), ...})with keys matchingshare_names; a positional tuple shares one runtime parameter set across shares (see RuleIterator in “Three Strategy Base Classes”). Usedefaultfor shares not listed explicitly;othersのパスはサポートされていません。
10. ポリシーパラメータがありません
Parameter は、調整可能な戦略パラメータのタイプ、範囲、および値のセマンティクスを定義します。