双方向ブレークスルーに基づく適応型取引戦略


作成日: 2024-02-06 15:31:36 最終変更日: 2024-02-06 15:31:36
コピー: 0 クリック数: 683
1
フォロー
1617
フォロワー

双方向ブレークスルーに基づく適応型取引戦略

概要

双方向突破自己適応取引戦略は,株式の開場価格と閉場価格の関係に基づいて判断と取引操作を行う量化戦略である.この戦略は,設定されたパラメータ条件を満たした場合に,多額の取引または空白の取引を行う.同時に,それは自己適応退出機構を有し,最新の開場価格の変化に基づいて,現在のポジションを退出するタイミングを決定することができる.

戦略原則

この戦略の核心的な論理は,開盤価格と閉盤価格の大きさの関係に基づいて方向を判断することである.具体的には,開盤価格が開盤価格よりも開盤価格が設定された値val1を超えた場合,複数のシグナルが生じる;開盤価格が閉盤価格よりも開盤価格が設定された値val1を超えた場合,空白シグナルが生じる.一旦ポジションに入ると,戦略は価格の変化を監視し続けます.開盤価格が設定された値val2を超えた場合,退出操作を実行します.見られるように,この戦略は,ポジション構築論理と退出論理を同時に含み,全体として比較的完全な取引枠組みを形成する.

コード実装上では,戦略は最初に長ポジションと短ポジションの条件表現を定義し,その後,ポジション構築の論理に適合するときに単一の入場を行う.その後,退出条件が触発されたかどうかを継続的に検出し,退出条件が満たされたら平仓操作を行う.したがって,この戦略は,市場の変化をリアルタイムで監視し,自己適応性と柔軟性がある.

戦略的優位性

双方向の突破型自適化取引戦略には以下の利点があります.

  1. 操作は明快でシンプルで,理解し,実行しやすい.
  2. 動的にポジションを調整し,市場の変化に適応する
  3. 危険を制御する 損失防止機能
  4. パラメータによって異なる品種に適用できます
  5. アルゴリズムの最適化が容易で,拡張可能な空間が広大です.

戦略リスク

この戦略には利点があるものの,リスクもあります.

  1. 市場が急激に波動すると,ストップ・ロース策は効果的でない可能性があります.
  2. 長期トレンドを把握できず,ポジションを頻繁に切り替える
  3. パラメータの不適切な設定は,過剰取引につながる可能性があります.
  4. 測定システムの故障により,無防備な損失が発生する可能性があります.

これらのリスクは,リアルタイムで注意深く観察し,パラメータを調整またはアルゴリズムを最適化する必要があります.

戦略最適化の方向性

この戦略は以下の方向から最適化できます.

  1. ストップ・ローズ戦略の最適化を加え,機敏性を保ちながらもポジションの頻繁に切り替えを制御する.
  2. トレンド判断の指標を増やし,非トレンドの取引の頻度を下げる.
  3. 短期間の日内操作戦略と組み合わせた戦略の収益率を向上させる.
  4. オプティマイゼーションパラメータの自己適応メカニズムにより,値は動的に調整できます.
  5. 機械学習モデルを追加して 動きの方向を判断する.

アルゴリズムとモデルの最適化により,戦略全体の安定性と収益性を向上させることができます.

要約する

双方向突破自己適応取引戦略は,傾向判断と自己適応退出の2つのメカニズムを組み合わせて,リスクを効果的に制御し,その単純な原理と柔軟なパラメータにより,戦略を容易に理解し,拡張し,推奨され,深入の研究に値する量化戦略である.

ストラテジーソースコード
/*backtest
start: 2023-01-30 00:00:00
end: 2024-02-05 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=3
strategy("Repaint in version 3", overlay=true, calc_on_every_tick=true, calc_on_order_fills=true) // Repaint?
// strategy("Repaint in version 3", overlay=true, calc_on_every_tick=true) // Correct

val1 = input(123)
val2 = input(234)

from_year=input(2018, minval=2000, maxval=2020)
from_month=input(6, minval=1, maxval=12)
from_day=input(1, minval=1, maxval=31)

to_year=input(2019, minval=2007, maxval=2020)
to_month=input(12, minval=1, maxval=12)
to_day=input(31, minval=1, maxval=31)

long = (close-open) > val1
short = (open-close) > val1

exitLong = (open-close) > val2
exitShort = (close-open) > val2

term = true

strategy.entry("LONG", strategy.long, when=long and term)
strategy.close("LONG",  when = exitLong and not short and term)

strategy.entry("SHORT", strategy.short, when=short and term)
strategy.close("SHORT", when = exitShort and not long and term)