マルチ期間トレンド線形エングルフィングパターン定量取引戦略


作成日: 2025-01-06 11:42:37 最終変更日: 2025-01-06 11:42:37
コピー: 1 クリック数: 315
1
フォロー
1617
フォロワー

マルチ期間トレンド線形エングルフィングパターン定量取引戦略

概要

これは、エングルフィング パターンに基づいた定量的な取引戦略であり、市場に現れる複数期間のトレンドの線形エングルフィング パターンを識別して取引を行います。この戦略の核心は、価格反転シグナルを捉え、保有期間とリスク管理を組み合わせ、堅実な取引結果を達成することです。この戦略はあらゆる市場と期間に適用可能であり、高い普遍性を備えています。

戦略原則

この戦略は、ローソク足パターンのエングルフィングパターンを取引することに基づいています。強気のエングルフィングパターン(小さな黒いローソク足の後に、大きな白いローソク足が続き、小さな黒いローソク足を完全に包み込む)が発生すると、下降トレンドで買いシグナルが生成されます。弱気のエングルフィングパターン(小さな黒いローソク足の後に、大きな白いローソク足が続き、小さな黒いローソク足を完全に包み込む)が発生すると、下降トレンドで買いシグナルが生成されます。 (例えば、白いローソク足が小さい方の白いローソク足を完全に飲み込むと)上昇トレンドでは買いシグナルが生成されます。売りシグナルが生成されます。この戦略は、パラメータ化によって保有期間を設定し、指定された期間後にポジションを自動的にクローズして、過剰な保有によってもたらされるリスクを回避します。

戦略的優位性

  1. 明確な信号:包み込むパターンは明らかな視覚特性と高い信号認識精度を備えています。
  2. 高い適用性:あらゆる市場や期間に適用でき、幅広い実用的価値を持つ
  3. リスク管理可能:保有期間を固定することで、保有リスクを効果的に管理できる
  4. 柔軟なパラメータ:取引方向と保有期間は、さまざまな市場特性に応じて調整できます。
  5. 強力な視覚化:パターンの位置を背景色でマークし、分析やバックテストに便利です。

戦略リスク

  1. 偽のブレイクアウトリスク:エングルフィングパターンには偽のブレイクアウトがある可能性があり、他の指標を組み合わせて確認する必要があります。
  2. 市場環境への依存性: パフォーマンスは市場環境によって異なるため、パラメータを適時に調整する必要があります。
  3. 固定保有期間:固定保有期間では、より大きな利益を逃したり、より大きな損失を被ったりする可能性があります。
  4. シグナルの遅れ: シグナルはKラインのクローズに基づいてのみ確認できるため、最適なエントリー機会を逃す可能性があります。

戦略最適化の方向性

  1. トレンドフィルタリングを導入する: 移動平均などのトレンド指標を組み合わせて、逆トレンド信号をフィルタリングする
  2. 動的保有期間: 市場のボラティリティに応じて保有期間を動的に調整します
  3. ボリューム確認の追加: パターンの有効性を確認するためにボリュームインジケーターを追加します
  4. ストップロス設定の最適化: リスク管理能力を向上させるために動的なストップロスメカニズムを導入する
  5. 複数期間の共鳴: 複数の期間からの信号を組み合わせて、取引の成功率を向上させます

要約する

この戦略は、体系的なアプローチを使用して市場の巻き込みパターンの機会を捉え、それをパラメータ化されたポジション管理と組み合わせて、リスク管理された取引を実現します。この戦略は非常に実用的で適応性が高いですが、トレーダーは特定の市場特性に応じて戦略を最適化し、調整する必要があります。戦略の安定性と信頼性を向上させるには、他のテクニカル指標とリスク管理手段を組み合わせることをお勧めします。

ストラテジーソースコード
/*backtest
start: 2024-12-06 00:00:00
end: 2025-01-04 08:00:00
period: 2h
basePeriod: 2h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=6
strategy("Engulfing Candlestick Strategy", overlay=true)

// Input parameters
bull_color = input.color(color.new(color.green, 0), title="Bullish Engulfing Highlight")
bear_color = input.color(color.new(color.red, 0), title="Bearish Engulfing Highlight")
hold_periods = input.int(17, title="Hold Periods", minval=1)  // How many bars to hold the position

// Input for selecting the pattern (Bullish or Bearish Engulfing)
pattern_type = input.string("Bullish Engulfing", title="Engulfing Pattern", options=["Bullish Engulfing", "Bearish Engulfing"])

// Input for selecting the trade type (Long or Short)
trade_type = input.string("Long", title="Trade Type", options=["Long", "Short"])

// Conditions for Bullish Engulfing
bullish_engulfing = close > open and open < close[1] and close > open[1] and open[1] > close[1]

// Conditions for Bearish Engulfing
bearish_engulfing = close < open and open > close[1] and close < open[1] and open[1] < close[1]

// Declare the entry condition variable
var bool entry_condition = false  // Set initial value to 'false'

// Entry logic based on selected pattern and trade type
if pattern_type == "Bullish Engulfing"
    entry_condition := bullish_engulfing
else
    entry_condition := bearish_engulfing

// Execute the entry based on the selected trade type
if entry_condition
    if trade_type == "Long"
        strategy.entry("Long", strategy.long)
    else
        strategy.entry("Short", strategy.short)

// Close position after specified number of bars
if strategy.position_size != 0 and bar_index - strategy.opentrades.entry_bar_index(0) >= hold_periods
    strategy.close("Long")
    strategy.close("Short")

// Highlight Bullish Engulfing Candles (Background Color)
bgcolor(bullish_engulfing and pattern_type == "Bullish Engulfing" ? color.new(bull_color, 80) : na, title="Bullish Engulfing Background")
// Highlight Bearish Engulfing Candles (Background Color)
bgcolor(bearish_engulfing and pattern_type == "Bearish Engulfing" ? color.new(bear_color, 80) : na, title="Bearish Engulfing Background")