複数の移動平均ペア取引戦略


作成日: 2023-09-23 15:16:50 最終変更日: 2023-09-23 15:16:50
コピー: 0 クリック数: 671
1
フォロー
1617
フォロワー

概要

この戦略は,双均線フィルタリングと価格形状判断の思想を融合させ,信号品質を向上させることを目的としたより包括的な入場機構を形成する.この戦略は,利潤の為替制御と最大ポジション保持週期限制を併用し,より完善なリスク管理機構を実現する.

戦略原則

この戦略は主に以下の指標と取引ルールを含んでいます.

  1. 3条SMA平均線:大レベルトレンドの方向を判断する

  2. 2条 EMA均線:細部方向判断について

  3. SAR指標:トレンドと突破を判断する補助

  4. K線形:特定のK線形を入口信号の1つとして識別する.

  5. 最大利潤平準ポジション回数: 単方面保有ポジションの最大利潤回数制限,固定利潤.

  6. 最大保有周期: 損失拡大を避け,単一損失をコントロールする.

この戦略は,複数の技術指標を組み合わせて判断し,より安定した入場信号と退出機構を形成し,収益性を高めながらリスクを制御し,安定した取引を実現する.

優位分析

単一指数戦略に比べて,この戦略は以下の利点があります.

  1. マルチ指標の組み合わせにより,信号の正確性が向上した.

  2. K線形状認識により,入場時間を向上させました.

  3. 利潤平準化回数制御により,利潤確定が実現した.

  4. 持仓週間の期限制は単発損失の拡大を防ぐ.

  5. SMA平均線は大きなトレンドを判断し,トレンドフォロー効果を発揮する.

  6. EMAは,詳細をまとめて,感受性を高めています.

  7. SAR指標は突破の信頼性を判断するのに役立ちます.

  8. リスクと利益のバランスが整っている.

  9. 市場調整のパラメータにより,安定した余分な収益が得られます.

リスク分析

この戦略には多くの利点がありますが,以下のリスクがあります.

  1. 多指標の組み合わせは複雑で,実行が困難である.

  2. パラメータ最適化の範囲は広く,最適化のリスクがあります.

  3. K線形認識の効果は疑問であり,誤信号が発生する可能性がある.

  4. 利平仓のあと,追撃のチャンスを逃すのは簡単だ.

  5. 持仓週間の期限制は,利益の上限を軽視している.

  6. 安定性と収益の最適化には 矛盾がある.

  7. 多種種の市場環境への適応性は検討されるべきである.

  8. 戦略の健全性について 継続的に注目する必要があります.

最適化の方向

この分析を基に,この戦略は以下のように最適化できます.

  1. 収益の安定性を高めるためのパラメータの組み合わせの調整.

  2. 機械学習技術導入のタイミング

  3. ストップ・ストップ・ストップ戦略の最適化と動的調整

  4. 異なるポジション保持周期が収益曲線に与える影響を評価する.

  5. 異なる品種市場における適応性を検証する戦略

  6. パラメータの強度テストを追加し,過度最適化を防止する.

  7. リスク管理システムの開発

  8. 戦略の効果を継続的に検証し,時代遅れの失効を防止する.

要約する

この戦略は,全体として,複数の指標の補助で比較的安定した取引システムを形成している.しかし,いかなる戦略も,パラメータの健全性に関する問題に焦点を当てて,戦略が異なる市場環境に適応できるように,継続的な最適化と検証を必要とします.量化取引は,連続したプロセスです.

ストラテジーソースコード
//@version=3
strategy("Free Strategy #08 (Combo of #01 and #02) (ES / SPY)", overlay=true)

// Inputs
Quantity = input(1, minval=1, title="Quantity")
SmaPeriod01 = input(3, minval=1, title="SMA Period 01")
SmaPeriod02 = input(8, minval=1, title="SMA Period 02")
SmaPeriod03 = input(10, minval=1, title="SMA Period 03")
EmaPeriod01 = input(5, minval=1, title="EMA Period 01")
EmaPeriod02 = input(3, minval=1, title="EMA Period 02")
MaxProfitCloses = input(5, minval=1, title="Max Profit Close")
MaxBars = input(10, minval=1, title="Max Total Bars")

// Misc Variables
src = close
BarsSinceEntry = 0
MaxProfitCount = 0
Sma01 = sma(close, SmaPeriod01)
Sma02 = sma(close, SmaPeriod02)
Sma03 = sma(close, SmaPeriod03)
Ema01 = ema(close, EmaPeriod01)
Ema02 = ema(close, EmaPeriod02)
OHLC = (open + high + low + close) / 4.0

// Conditions
Cond00 = strategy.position_size == 0
Cond01 = close < Sma03
Cond02 = close <= Sma01
Cond03 = close[1] > Sma01[1]
Cond04 = open > Ema01
Cond05 = Sma02 < Sma02[1]
Entry01 = Cond00 and Cond01 and Cond02 and Cond03 and Cond04 and Cond05

Cond06 = close < Ema02
Cond07 = open > OHLC
Cond08 = volume <= volume[1]
Cond09 = (close < min(open[1], close[1]) or close > max(open[1], close[1]))
Entry02 = Cond00 and Cond06 and Cond07 and Cond08 and Cond09

// Update Exit Variables
BarsSinceEntry := Cond00 ? 0 : nz(BarsSinceEntry[1]) + 1
MaxProfitCount := Cond00 ? 0 : (close > strategy.position_avg_price and BarsSinceEntry > 1) ? nz(MaxProfitCount[1]) + 1 : nz(MaxProfitCount[1])

// Entries
strategy.entry(id="L1", long=true, qty=Quantity, when=(Entry01 or Entry02))
 
// Exits
strategy.close("L1", (BarsSinceEntry - 1 >= MaxBars or MaxProfitCount >= MaxProfitCloses))