8. Operatorクラス

Operator クラスは、qteasy のコア オブジェクトである Operator オブジェクトの作成に使用されます。

Operator は戦略コンテナです。これには一連の取引戦略が含まれており、各取引戦略に必要な履歴データが保存され、すべての取引戦略を呼び出して取引シグナルを生成できます。同時に、実際の取引におけるトレーダーの行動と同様に、保存されたルールに従ってすべての取引戦略によって生成されたシグナルを混合して、最終的な取引シグナルのセットを形成します。

Operator オブジェクトを作成するには、一連の取引戦略を指定し、トレーダーの取引モードとシグナリング モードを設定する必要があります。これらは、Operator オブジェクトの最も重要な属性であり、トレーダーの行動パターンを決定します。

class qteasy.Operator(strategies: Optional[Union[str, BaseStrategy, type, list[Union[str, qteasy.strategy.BaseStrategy, type]]]] = None, *, name: Optional[str] = None, signal_type: str = 'pt', op_type: str = 'batch', group_merge_type: str = 'None', run_freq: str = 'd', run_timing: str = 'close')[ソース]

qteasy の中核となる「トレーダー」オブジェクトは、戦略グループを保持し、統一されたスケジュールで取引シグナルを生成するために使用されます。

Operator は、1 つ以上のストラテジー グループの管理、実行に必要な履歴データの準備とキャッシュ、実行頻度とタイミングに従ってシグナルを生成するために各ストラテジーを呼び出し、グループ内/グループ間のマージ ルールに従ってシグナルを最終取引命令にマージする責任を負います。バックテスト、最適化、ライブ取引に使用できます。 Operator と Strategy / Group の関係や run_freq / run_timing の唯一の信頼できる情報源などのアーキテクチャの詳細については、ドキュメントの「Operator / Strategy / Group Architecture」セクションを参照してください。

add_strategies(strategies: Union[str, list[Union[str, qteasy.strategy.BaseStrategy, type]]], run_freq: str = 'd', run_timing: str = 'close', **kwargs: Any)[ソース]

複数の Strategy 取引戦略を Operator オブジェクトに追加します。

この方法では、取引戦略を追加するときに取引戦略の基本プロパティを変更することはできません。入力パラメータ戦略は、リストまたはカンマ区切りの文字列のいずれかです。リストの要素は、組み込み戦略のタイプを表す文字列または特定の戦略オブジェクトのいずれかになります。文字列と戦略オブジェクトは混合して与えることができます。

パラメータ:
  • strategies (stg or list of str or list of Strategy) -- 取引戦略または取引戦略オブジェクトの名前

  • run_freq (str, optional) -- run_freq はストラテジの実行頻度です。実行頻度が指定されていないことを意味する None にすることもできます。

  • run_timing (str, optional) -- run_timing はストラテジの実行タイミングです。実行タイミングが指定されていないことを意味する None にすることもできます。

  • **kwargs (Any) -- run_timing、run_freq、window_length、use_latest_data_cycle、freq、asset_type、data_type_ids など、追加された取引戦略によって共有されるプロパティ (add_strategy に渡されます)。

戻り値の型:

None

サンプル

>>> op = Operator()
>>> op.add_strategies(['dma', 'macd'])
>>> op.strategies
[RULE-ITER(DMA), RULE-ITER(MACD)]
add_strategy(stg: Union[str, BaseStrategy, type, tuple, list, Any], run_freq: str = 'd', run_timing: str = 'close', **kwargs)[ソース]

オペレータ オブジェクトにストラテジを追加します。

このメソッドを呼び出して取引戦略を Operator に追加すると、追加すると同時に取引戦略の基本プロパティを変更または指定できます。

パラメータ:
  • stg (str or int or Strategy) -- 追加する取引戦略。組み込み取引戦略の戦略 ID または戦略名にすることもできます。

  • run_freq (str, Optional) -- run_freq はストラテジの実行頻度です。実行頻度が指定されていないことを意味する None にすることもできます。

  • run_timing (str, Optional) -- run_timing はストラテジの実行タイミングです。実行タイミングが指定されていないことを意味する None にすることもできます。

  • kwargs -- 戦略を追加するときに、有効な戦略属性を直接割り当てることができます。以下を含む、変更する属性の名前を明示的に指定する必要があります。 - pars: dict または tuple、ストラテジ調整可能パラメータ - opt_tag: int、ストラテジ最適化タグ - stg_type: int、ストラテジ タイプ - par_count: int、ストラテジ パラメータの数 - par_types: リスト、ストラテジ パラメータ タイプ - par_ranges: リスト、ストラテジ パラメータ範囲 - data_freq: str、ストラテジ データ頻度 - window_length: int、ストラテジ ウィンドウ長 - run_freq: str、ストラテジ サンプリング頻度 - data_types: リスト、ストラテジ データ タイプ - data_type_id: str、ストラテジ データ タイプ ID (update_data_types に使用) - freq: str または list または dict、データ タイプの頻度 (変更すると、対応する DataType と置き換えられます) -asset_type: str または list または dict、データ タイプのアセット タイプ (変更すると、対応するデータ タイプが置き換えられます) DataType) - グループ: str、ストラテジ実行タイミング - use_latest_data_cycle: bool、ストラテジが最新のデータ サイクルを使用するかどうか

戻り値の型:

None

サンプル

>>> op = Operator()
>>> op.add_strategy('dma', opt_tag=1, pars=(50, 10, 20))
>>> op.strategies
[RULE-ITER(DMA)]
>>> op.strategies[0].opt_tag
1
>>> op.strategies[0].par_values
(50, 10, 20)
property all_dynamic_dtypes

演算子内の「従来の」動的データ型のコレクションを返します。非推奨であり、常に空を返します。

プロセス データは get_data('proc.xxx') を介して均一にアクセスされるようになり、DataType を介して宣言されることはなくなりました。この属性は呼び出し元の互換性のためだけに保持され、空の辞書を返します。

property all_strategy_data_types

オペレーター オブジェクトのすべての戦略に対するバックテスト価格タイプとトレード リスト履歴データ タイプのセットをオブジェクトから返します。

check_dynamic_data()[ソース]

取引シグナルを生成するために、演算子オブジェクトに動的データ型 (つまり、取引結果に依存する履歴データ) が含まれているかどうかを確認します。

いずれかのストラテジーが、realize() で get_data('proc.xxx') を使用する場合、動的プロセス データに依存しているとみなされ、動的バックテスト ブランチを使用する必要があります。

clear_strategies()[ソース]

すべての取引戦略の Operator オブジェクトを空にします。

create_data_windows()[ソース]

Create data windows for each strategy and its data types. Also create data window indices for each strategy and its data types. Data window indices are created according to group schedules.

disable_tracing()[ソース]

Operator オブジェクト内のすべての戦略の追跡を無効にします。

追跡を無効にすると、Operator オブジェクトは実行中にデバッグ情報を記録しなくなるため、実行時の効率が向上します。

戻り値の型:

None

property empty

演算子にポリシーが含まれているかどうかを確認する

enable_tracing()[ソース]

Operator オブジェクト内のすべての戦略の追跡を有効にする

追跡を有効にすると、Operator オブジェクトは実行中により多くのデバッグ情報を記録するため、その後の分析とデバッグが容易になります。

戻り値の型:

None

get_blender(group_name=None)[ソース]

オペレータ オブジェクト内のロング/ショート マスク ブレンダーを返します。 group_name が指定されていない場合は、完全な Blender 辞書を出力します。

パラメータ:

group_name (str) -- 利用可能な group_name

戻り値:

blender -- group_name が None の場合、すべての run_timing 値のブレンダーを含む辞書を返します。 group_name が None でない場合は、その run_timing のブレンダーを含むリストを返します。

戻り値の型:

dict or list

get_group(group_idx: Union[str, int]) Group[ソース]

get_group_by_id メソッドと同等の、group_idx によってグループ オブジェクトを取得します。

パラメータ:

group_idx (int or str) -- 戦略グループのインデックス番号

戻り値の型:

Group,

サンプル

>>> op = Operator('dma, macd')
>>> op.get_group(0)
Group(name=Group_1, members=[RULE-ITER(DMA), RULE-ITER(MACD)])
>>> op.get_group_by_id('Group_1')
Group(name=Group_1, members=[RULE-ITER(DMA), RULE-ITER(MACD)])
get_group_by_id(group_id: Union[str, int]) Group[ソース]

group_id でグループ オブジェクトを取得する

パラメータ:

group_id (str or int) -- 戦略グループの名前 ID またはインデックス番号

戻り値の型:

Group,

メモ

1,当group_id为int时,返回的是序号为group_id的策略组 2,当group_id为str时,返回的是ID为group_id的组

サンプル

>>> op = Operator('dma, macd')
>>> op.get_group_by_id(0)
Group(name=Group_1, members=[RULE-ITER(DMA), RULE-ITER(MACD)])
>>> op.get_group_by_id('Group_1')
Group(name=Group_1, members=[RULE-ITER(DMA), RULE-ITER(MACD)])
get_max_window_length_by_dtype_id(dtype: str) int[ソース]

演算子オブジェクトの特定のデータ型の最大ウィンドウ長を計算して返します。

パラメータ:

dtype (str) -- クエリする履歴データ タイプの dtype_id。

戻り値の型:

int, operator对象中所有子策略中某个dtype最长的窗口长度

get_share_idx(share)[ソース]

与えられた共有 (文字列) は、対応するインデックスを返します

パラメータ:

share (str) -- share は株式コードを表す文字列です。

戻り値:

シェアのインデックスを表す整数を返します。

戻り値の型:

int

get_signal_count(steps=None) int[ソース]

現在の実行スケジュールですべての戦略グループによって生成された取引シグナルの数を取得します。

パラメータ:

steps (list of int, optional) -- ステップが指定されている場合は、それらのステップの取引シグナルの数のみを計算します。なしの場合、すべてのステップの取引シグナルの数を計算します。

戻り値:

int

戻り値の型:

交易信号的数量

get_stg(stg_id)[ソース]

戦略オブジェクトの取得、Operator[アイテム]の別の使用法。

パラメータ:

stg_id (int or str) -- 戦略の名前またはシリアル番号

戻り値の型:

Strategy, 子策略

メモ

1、stg_id が int の場合、最初の stg_id ストラテジが返されます。 2、stg_id が str の場合、stg_id という名前のストラテジが返されます。 3、stg_id が一致しない場合、最後のストラテジが返されます。

サンプル

>>> op = Operator('dma, macd')
>>> op[0]
RULE-ITER(DMA)
>>> op['dma']
RULE-ITER(DMA)
>>> op[999]
RULE-ITER(MACD)
>>> op['invalid_strategy_name']
UserWarning: No such strategy with ID (invalid_strategy_name)!
get_strategies_by_group(group_id: str)[ソース]

オプションのパラメーターとしてタイミングを指定して、オペレーター オブジェクト内の戦略オブジェクトを返します。タイミングが指定されている場合は、そのタイミングを使用する取引戦略を返します。

パラメータ:

group_id (str) -- 利用可能なタイミング、デフォルトではなし

get_strategy_by_id(stg_id)[ソース]

戦略オブジェクトの取得、Operator[アイテム]の別の使用法。

パラメータ:

stg_id (int or str) -- 戦略の名前またはシリアル番号

戻り値の型:

Strategy, 子策略

参考

get_stg

get_strategy_count_by_group(group_id: str)[ソース]

戦略グループ group_id 内の戦略の総数を返します。

get_strategy_id_by_group(group_id: str)[ソース]

戦略グループ group_id 内のすべての戦略 ID を返します。

get_strategy_id_pairs()[ソース]

op 内のすべての戦略と ID ペアを含むジェネレーターを返します。

戻り値の型:

generator, 包含op中所有strategy和id对

サンプル

>>> op = Operator('dma, macd')
>>> list(op.get_strategy_id_pairs())
[('dma', RULE-ITER(DMA)), ('macd', RULE-ITER(MACD))]
get_strategy_names_by_group(group_id: str)[ソース]

戦略グループ group_id 内のすべての戦略名を返します。

property group_ids

オペレーター オブジェクトのすべてのストラテジの子のランタイム タイプを返します。

property group_merge_type

オペレーターオブジェクトの戦略組み合わせメソッドを返します。

property group_names

オペレーター オブジェクトのすべてのストラテジの子のランタイム タイプを返します。

property groups

演算子のすべての戦略グループを、戦略グループ名でインデックス付けされた辞書として返します。

property groups_by_index

演算子のすべての戦略グループを、戦略グループ インデックスによってインデックス付けされた辞書として返します。

info(verbose=False)[ソース]

戦略グループ、各グループ内の戦略、戦略混合方法などを含む、Operator オブジェクトに関する情報を出力します。

戦略にさらに多くの情報が含まれている場合は、戦略の特定の詳細も出力されます。

パラメータ:

verbose (bool, Default False) -- 戦略に関する詳細情報を印刷するかどうか。 True の場合、戦略に関する詳細情報が出力されます。

is_ready(tell_me_why: bool = False, raise_error: bool = False) bool[ソース]

Operator が取引シグナルを生成するために必要な最小要件を満たしているかどうかを確認します。

一般的な準備完了条件には、戦略がマウントされ、各戦略グループがブレンダーを構成し、履歴データ タイプや実行スケジュールなどの主要なフィールドが準備完了している (より詳細な妥当性チェックは後続のステップで完了します) が含まれます。

パラメータ:
  • tell_me_why (bool, default False) -- Operator オブジェクトが準備完了条件を満たしていない場合、特定の理由を出力するかどうか。デフォルトでは印刷されません。

  • raise_error (bool, default False) -- Operator オブジェクトが準備完了条件を満たさない場合、例外をスローするかどうか。デフォルトでは例外はスローされません。

戻り値の型:

bool, Operator对象是否已经准备好,可以开始生成交易信号

property max_window_length

オペレーター オブジェクトのすべてのサブ戦略の中で最長のウィンドウ長を計算して返します。バックテストや最適化のために履歴データを準備する場合、これを使用して、戦略を形成するのに十分な履歴データがあることを確認します。

戻り値の型:

int, operator对象中所有子策略中最长的窗口长度

property op_data_freq: dict

オペレーター オブジェクトのすべてのストラテジ サブオブジェクトに必要なデータのサンプリング周波数を返します。 data_freq がすべてのストラテジで同じである場合はこの値を返します。そうでない場合は、並べ替えられたリストを返します。

property op_data_type_count

トランザクションのリストを生成するためにオペレータ オブジェクトに必要な履歴データ タイプの数を返します。

property op_data_type_ids

オペレーター オブジェクトのすべてのストラテジ サブオブジェクトに必要な履歴データ タイプの ID を返します。

property op_data_types

オペレーター オブジェクトのすべてのストラテジ サブオブジェクトに必要な履歴データ型オブジェクトを返します。

property op_signal_index: Optional[Index]

演算子オブジェクトが取引シグナルを生成するインデックスを返します。

property op_signal_types: list

生成された取引リストの signal_types。生成された取引シグナルは異なる戦略グループによって生成される可能性があり、異なる戦略グループには独自のシグナル タイプ (PT/ST/VT) があるため、取引シグナルの各行は異なる取引シグナル タイプを持つ可能性があります。このプロパティは、op_signal_list の各行の signal_list を含むリストを返します。

戻り値の型:

list, 生成的交易清单的price_types,回测交易价格类型

property op_type

オペレーターオブジェクトの実行タイプを返します。

property opt_space_par

Space の構築に使用される、最適化に参加しているサブ戦略のパラメーター空間情報を返します。

各サブ戦略の opt_tag, aggregate fields such as par_range / par_types, and output the (ranges, types) tuple, which can be used directly as input to construct Space を繰り返します。

戻り値:

2 つのリスト ranges and types は、関係する各最適化ディメンションの値の範囲とタイプ マーカーにそれぞれ対応します。

戻り値の型:

tuple[list, list]

property opt_tags

すべての戦略の最適化されたタイプ ラベルを返します。この属性の戻り値は、すべての取引戦略の最適化されたタイプ ラベルのリストです。

prepare_data_buffer(*, start_date: Union[str, Timestamp], end_date: Union[str, Timestamp], data_package: dict) None[ソース]

データ バッファーを準備し、すべての戦略に必要なすべてのデータをロードします。

データ バッファーは、キーがデータ型、値が対応するデータ データフレームであるディクショナリです。入力パラメータには、データ パッケージの開始日と終了日が含まれます。これら 2 つの日付に基づいて、対応する時間範囲がデータ パッケージ内の各データフレームからスライスされ、データ バッファーに保存されます。

データ バッファーを保存するときは、スライディング ウィンドウを作成するのに十分なルックバックがデータにあることも確認してください。

パラメータ:
  • start_date (str or pd.Timestamp) -- データの開始日。デフォルトは「なし」です。これは、データ パッケージの最初の日付から開始することを意味します。

  • end_date (str or pd.Timestamp) -- データの終了日。デフォルトは「なし」で、データ パッケージの終了日までを意味します。

  • data_package (dict[]) -- 必要なすべてのデータを含むディクショナリ。キーはデータ型、値は対応するデータ データフレームとして含まれます。例: {'価格': 価格_df、'ボリューム': volume_df, ...}。各データフレームのインデックスはタイムスタンプであり、列は異なる機器コードです。

prepare_dynamic_data_buffer(*, trade_records: ndarray, trade_prices: ndarray, own_cashes: ndarray, available_cashes: ndarray, holding_positions: ndarray, available_positions: ndarray) None[ソース]

予約済みインターフェイス: プロセス データは proc.* 経由で均一に注入されています。このメソッドはロジックを実行しなくなりました。

prepare_running_schedule(start_date=None, end_date=None, **kwargs) None[ソース]

実行スケジュールは戦略の実行スケジュールであり、各戦略の実行時間や頻度などの情報が含まれます。

戦略を実行する前に、まず実行スケジュールを準備する必要があります。このスケジュールは、トレーダー内の各戦略グループの実行時タイミング パラメーターによって決定されます。実行スケジュールには N 行が含まれており、各行は時点を表します。列の数は戦略グループの数と等しく、各セルはその時点でその戦略グループが実行されるかどうかを示します。0 は実行しないことを意味し、1 は実行することを意味します。

このメソッドでは、次の 2 つの属性の値が設定されます。 - group_schedules: キーが戦略グループ名で、その値がそのグループの実行スケジュールであるディクショナリ - group_timing_table: すべての戦略グループの実行スケジュールを含むデータフレーム

パラメータ:
  • start_date (str or pd.Timestamp, optional) -- 開始日。デフォルトは「なし」で、データソースの最初の日付から開始することを意味します。

  • end_date (str or pd.Timestamp, optional) -- 終了日。デフォルトは「なし」で、データソースの終了日までを意味します。

  • kwargs (dict, optional) -- 取引開始時刻、終了時刻など、取引時系列の生成プロセス中に必要なパラメータを含むその他のパラメータ。詳細については、qteasy.trading_util.trade_time_index() 関数のパラメータの説明を参照してください。

戻り値の型:

None

property ready

プロパティ、operator.is_ready() の別の記述方法

remove_strategy(id_or_pos: Optional[Union[str, int]] = None) None[ソース]

戦略 ID または Operator での戦略の位置を指定することにより、Operator オブジェクトから取引戦略を削除します。

reset()[ソース]

Operator オブジェクトの実行状態をリセットして、取引シグナルの生成を再び開始できるようにします。

メモ

このメソッドは、履歴データ キャッシュ、データ ウィンドウ ビュー、データ ウィンドウ インデックス、取引シグナルなどを含む、Operator オブジェクトのすべての実行時データをリセットします。リセット後、Operator オブジェクトは再び取引シグナルの生成を開始できます。

サンプル

>>> op = Operator('dma, macd')
>>> op.reset()
run(config, datasource=None, logger=None)[ソース]

設定パラメータに従ってオペレーターを実行し、ライブ取引モードとバックテスト モードの両方をサポートします。

パラメータ:
  • config (dict) -- 実行構成パラメータディクショナリ

  • datasource (DataSource, optional) -- データソースオブジェクト。デフォルトは「なし」で、グローバルデフォルトデータソースが使用されることを意味します。

  • logger (Logger, optional) -- ロガーオブジェクト。デフォルトは None で、ロガーは使用されません。

戻り値:

backtest_result -- 実行モードがバックテストの場合、さまざまなバックテスト結果データを含むバックテスト結果オブジェクトを返します。実行モードがライブ取引の場合、結果は返されません。

戻り値の型:

BacktestResult, optional

run_backtest(config, datasource=None, logger=None) dict[ソース]

バックテスト モードでオペレーターを実行し、履歴データを使用して取引戦略をバックテストし、バックテスト結果を生成します。

パラメータ:
  • config (dict) -- バックテスト構成パラメータ辞書。

  • datasource (DataSource, optional) -- データソースオブジェクト。デフォルトは「なし」で、グローバルデフォルトデータソースが使用されることを意味します。

  • logger (Logger, optional) -- ロガーオブジェクト。デフォルトは None で、ロガーは使用されません。

戻り値:

backtest_result -- バックテストのさまざまな結果データを含むバックテスト結果オブジェクト。

戻り値の型:

BacktestResult

run_live_trade(config, datasource=None, logger=None)[ソース]

オペレーターをライブ取引モードで実行します。

run_optimization(config, datasource=None, logger=None) dict[ソース]

オペレーターを最適化モードで実行します。

run_prediction(config, datasource=None, logger=None) dict[ソース]

オペレーターをペーパー取引モードで実行します。

run_strategies(steps: Iterable) Iterable[ソース]

Operator を実行し、実行結果を返します。セマンティクスは、qt.run(self, ...) に渡されるキーワードと引数の形式に似ています。

パラメータ:

steps (Iterable) -- 実行するステップのインデックスを含む反復可能なオブジェクト。

列挙:

generator ((signal_type, step_index, signal)) -- 各ステップの取引シグナルを含むジェネレーターを返します。 signal_type: str、戦略グループのシグナル タイプ step_index: int、現在のステップのインデックス シグナル: np.ndarray、トレーディング シグナル、異なる signal_type モードで意味が異なる数値の配列。

run_strategy(step_index) Generator[Union[tuple[Any, int, Any], tuple[Optional[Any], int, Union[int, Any]]], Any, None][ソース]

現在のステップのすべての戦略グループを実行し、取引シグナルを生成します。

この関数は、現在のステップでの各戦略グループの取引シグナルを返すジェネレーター関数です。

パラメータ:

step_index (int) -- 現在のステップのインデックス。実行スケジュール内の位置を示します。

戻り値:

generator -- 現在のステップでの各戦略グループの取引シグナルを含むジェネレーターを返します。 signal_type: str、戦略グループのシグナル タイプ step_index: int、現在のステップのインデックス シグナル: np.ndarray、トレーディング シグナル、異なる signal_type モードで意味が異なる数値の配列。

戻り値の型:

(signal_type, step_index, signal)

set_blender(blender: Union[str, list[str], dict[str, str]], group_id: Optional[str] = None)[ソース]

Blender プロパティを設定するための統合されたエントリ

パラメータ:
  • blender (str or list of str or dict of str, optional) -- 取引シグナルの有効なブレンド式は、グループが None の場合、引数としてリストを受け入れ、すべてのグループのブレンド式を一度に設定できます。

  • group_id (str, optional) -- 戦略グループ ID が指定されている場合、そのグループのみが更新されます。 None, all strategy groups are updated. In the latter case, if blender が文字列の場合、すべてのグループが同じ式を使用することを意味します。リストの場合はグループ順に項目を一つずつ設定し、長さが足りない場合は最後の項目を再利用します。

戻り値の型:

None

例外:

TypeError -- 指定されたprice_typeが正しいものではない場合

警告

指定されたprice_typeが存在しない場合は、警告を発し、

サンプル

>>> op = Operator()
>>> op.add_strategy('dma', run_timing='close')  # 添加策略时指定run_timing,自动分配到第一个策略组Group_1
>>> op.add_strategy('trix', run_timing='close')  # 添加策略时指定run_timing,自动分配到第一个策略组Group_1
>>> op.add_strategy('macd', run_timing='open')  # 添加策略时指定run_timing,自动分配到第二个策略组Group_2
>>> op.add_strategy('bband', run_timing='open')  # 添加策略时指定run_timing,自动分配到第二个策略组Group_2
>>> # 设置策略组1的混合模式
>>> op.set_blender('s0+s1', 'Group_1')
>>> op.get_blender()
>>> {'Group_1': ['+', 's1', 's2']}
>>> # 给所有的交易价格策略设置同样的混合表达式
>>> op.set_blender('s0 + s1')
>>> op.get_blender()
>>> {'Group_1': ['+', 's2', 's1'], 'Group_2':  ['+', 's2', 's1']}
>>> # 通过一个列表给不同的策略组设置不同的混合表达式(策略组按顺序排列)
>>> op.set_blender(['s1 + s2', 's3*s4'], None)
>>> op.get_blender()
>>> {'close': ['+', 's2', 's1'], 'open':  ['*', 's4', 's3']}
set_group_parameters(group: Union[str, int], run_timing: Optional[str] = None, run_freq: Optional[str] = None, signal_type: Optional[str] = None, blender_str: Optional[str] = None, **kwargs)[ソース]

ストラテジーグループのパラメータを設定または変更します。 :param group: ストラテジーグループの ID :type group: str :param run_timing: ストラテジーグループの実行タイミング。実行タイミングを変更する場合、グループ内のすべての取引戦略の実行タイミングも変更します。 :type run_timing: str、オプション :param run_freq: 戦略グループの実行頻度。実行頻度を変更する場合は、ストラテジー グループを変更します。 :type run_freq: str、オプション :param signal_type: ストラテジー グループの取引シグナル タイプ。デフォルトは「PT」、つまりパーセンテージポジション target :type signal_type: str、オプション :param Blender_str: ストラテジーグループの取引シグナルブレンディング式。文字列または文字列のリストを指定できます。 :type Blender_str: str、オプション :param kwargs: その他のパラメータ。 group_name、run_timing、run_freq などの有効な戦略グループ パラメータを指定できます。 :type kwargs: dict、オプション

戻り値の型:

None

例外:
  • TypeError -- グループのタイプが文字列または整数でない場合。

  • ValueError -- グループが存在しないか、グループが見つからない場合。

set_opt_par_values(par_values)[ソース]

オプティマイザ側のエントリ ポイント: 各サブ戦略 opt_tag によってパラメータ ベクトルをスライスし、それを書き戻します。

set_parameter`, this method targets an optimization workflow where “one vector corresponds to multiple strategy sub-blocks”; the caller must ensure that par_values is consistent with the flattening order of ``opt_space_par`」とは異なります。

パラメータ:

par_values (tuple) -- オプティマイザの現在の候補点に対応するパラメータタプル。

戻り値の型:

None

メモ

内部的に Strategy.update_par_values を呼び出します。ここではパラメータの有効性チェックは実行されません。

set_parameter(stg_id: Union[str, int], pars: Optional[Union[Parameter, tuple, list, dict]] = None, opt_tag: Optional[int] = None, data_types: Optional[Union[DataType, list[qteasy.datatypes.DataType], dict[str, qteasy.datatypes.DataType]]] = None, data_type_id: Optional[str] = None, window_length: Optional[Union[int, tuple[int, ...], list[int], dict[str, int]]] = None, use_latest_data_cycle: Optional[Union[bool, list[bool], tuple[bool, ...], dict[str, bool]]] = None, freq: Optional[Union[str, list[str], tuple[str, ...], dict[str, str]]] = None, asset_type: Optional[Union[str, list[str], tuple[str, ...], dict[str, str]]] = None, par_values: Optional[Union[tuple, list, dict[str, Any]]] = None, par_range: Optional[Union[tuple, list, dict[str, tuple]]] = None, run_freq: Optional[str] = None, run_timing: Optional[str] = None, **kwargs)[ソース]

ポリシー パラメータを設定するための統合エントリ。stg_id はパラメータを受け入れる特定のメンバー ポリシーを識別し、関数パラメータで指定されたポリシー パラメータを対応するポリシーに割り当てます。

パラメータ:
  • stg_id (str,) -- ポリシーの名前 (ID) に基づいてパラメータの変更が必要なポリシーを特定します。

  • pars (tuple or dict, optional) -- タプル形式の調整可能なポリシー パラメータ ポリシーを作成するときに、一部のポリシー パラメータを「調整可能なパラメータ」として設定できます。これらのパラメータの値の範囲は、ポリシーの最適化のプロセスで調整できます。これらのパラメータの組み合わせを調整することで、ポリシー パラメータの最適な組み合わせを見つけて、最適なポリシーを見つけることができます。

  • opt_tag (int, optional) -- 最適化タイプ: 0: 最適化に参加せず、戦略最適化プロセス中に戦略の調整可能なパラメーターを調整しません。 1: 最適化に参加し、パラメーターの最適な組み合わせを見つけるために、戦略最適化プロセス中に最適化アルゴリズムに従って戦略パラメーターを積極的に調整します。 2: 列挙タイプとして最適化に参加し、戦略最適化プロセス中に指定されたパラメーターの組み合わせからパラメーターの最適な組み合わせのみを選択します。

  • data_types (DataType or list of DataType or dict of str, optional) -- 戦略の計算に必要な履歴データのデータ型。指定されている場合は、このデータ型のパラメーターを更新します。

  • data_type_id (str, optional) -- 戦略の計算に必要な履歴データのデータ タイプの ID。この ID を指定することは、このデータ型のパラメーターを更新することを示します。

  • window_length (int or list of int or tuple of int,) -- 窓の長さ: ポリシーによって計算された正面窓の長さ

  • use_latest_data_cycle (bool or list of bool or tuple of bool,) -- 最新のデータ期間を使用するかどうか。

  • freq (str or list of str or tuple of str or dict of str,) -- データ型の頻度。指定されている場合は、対応する項目を新しい DataType に置き換えます (dtype_id はそれに応じて変更されます)。

  • asset_type (str or list of str or tuple of str or dict of str,) -- データ型の資産タイプ。指定されている場合は、対応する項目を新しい DataType に置き換えます (dtype_id はそれに応じて変更されます)。

  • par_values (tuple or list,) -- 戦略パラメータの特定の値。

  • par_range (tuple or list, or dict of tuples,) -- 戦略パラメータの値の範囲。

  • run_freq (str, optional) -- このパラメーターが指定されている場合は、ストラテジーの実行頻度を変更します。実行頻度を変更すると、戦略がその戦略グループから削除され、新しい戦略グループに再割り当てされます。

  • run_timing (str, optional) -- このパラメータが指定されている場合は、ストラテジの実行タイミングを変更します。実行タイミングを変更すると、ストラテジーがそのストラテジー グループから削除され、新しいストラテジー グループに再割り当てされます。

  • kwargs (dict,) -- その他のパラメータ

set_shares(shares: list[str])[ソース]

オペレーターオブジェクトの取引商品のリストを設定します。

パラメータ:

shares (list of str) -- 取引商品シンボルのリストを表す文字列のリスト

戻り値の型:

None

property strategies

オペレーター オブジェクトのすべての Strategy オブジェクトをリストとして返します。

property strategy_count

オペレーター オブジェクト内のすべての Strategy オブジェクトの数を返します。

property strategy_group_count

オペレーターオブジェクト内のすべての取引戦略グループの数を計算します。

戻り値の型:

int, operator对象中所有交易策略组的数量

property strategy_groups

演算子のすべての戦略グループを、戦略グループ名でインデックス付けされた辞書として返します。

property strategy_ids

演算子オブジェクト内のすべての取引戦略オブジェクトの ID を返します。

view_blender(group: Optional[Union[str, int]] = None) Union[dict, str][ソース]
オペレーター オブジェクト内のマルチホロー マスク ミキサーの人間が判読可能なバージョン、つまり、元のブレンダー文字列のより人間が判読可能なバージョンを返します。

s0 などのストラテジ コードをストラテジ ID とフォーマットに適切に置き換えたバージョン。 group パラメーターが指定されていない場合は、すべての戦略グループの Blender 読み取り可能なバージョンを返します。

パラメータ:

group (str) -- 使用可能なグループ ID またはインデックス

グループ戦略グループクラス

class qteasy.group.Group(name: str, signal_type: str = 'pt', blender: Optional[str] = None, run_freq: str = 'd', run_timing: str = 'close')[ソース]

複数のストラテジ メンバーを含むストラテジ グループ。メンバー ストラテジの信号タイプ、ブレンド方法、実行頻度、タイミングなどのプロパティを定義します。

add_strategy(strategy: BaseStrategy) None[ソース]

グループに戦略を追加します。戦略はグループのメンバーになります。

追加された戦略は BaseStrategy のインスタンスである必要があり、まだこのグループのメンバーであってはなりません。それ以外の場合は、ValueError が発生します。追加された戦略の group_id は、このグループの group_id に設定され、戦略が関連するグループに関する情報にアクセスできるようになります。

パラメータ:

strategy (BaseStrategy) -- グループに追加する戦略インスタンス。 BaseStrategy のサブクラスのインスタンスである必要があります。

戻り値の型:

None

例外:
  • ValueError -- ストラテジがすでにグループのメンバーである場合は、ストラテジがすでにグループに存在することを示す ValueError を発生させます。

  • TypeError -- ストラテジが BaseStrategy のインスタンスではない場合は、無効なストラテジ タイプを示す TypeError を発生させます。

blend(signals: Iterable)[ソース]

現在のブレンダーを使用して、同じグループ内のストラテジからの信号を 1 つの信号セットにブレンドします。

clear_strategies()[ソース]

グループ内のすべての戦略をクリアします。すべてのメンバー戦略はこのグループのメンバーではなくなります。

property group_id

Strategy.group_id との互換性を確保するための、名前と同じグループの ID。

remove_strategy(strategy: BaseStrategy)[ソース]

グループから戦略を削除します。戦略はグループのメンバーではなくなります。

削除された戦略は、このグループのメンバーである必要があります。それ以外の場合は、ValueError が発生します。削除された戦略の group_id は、どのグループにも属していないことを示すために None に設定されます。

パラメータ:

strategy (BaseStrategy) -- グループから削除する戦略インスタンス。グループのメンバーである必要があります。

戻り値の型:

None

例外:
  • ValueError -- ストラテジがグループのメンバーではない場合は、ストラテジがグループにないことを示す ValueError を発生させます。

  • TypeError -- ストラテジが BaseStrategy のインスタンスではない場合は、無効なストラテジ タイプを示す TypeError を発生させます。