EMAトレンドとサイクルブレイクアウト取引戦略の組み合わせ

EMA SL TP ROI
作成日: 2025-01-17 16:17:10 最終変更日: 2025-01-17 16:17:10
コピー: 4 クリック数: 466
1
フォロー
1617
フォロワー

EMAトレンドとサイクルブレイクアウト取引戦略の組み合わせ

概要

これは、EMA トレンド、サイクル ブレイクアウト、取引セッション フィルタリングを組み合わせた定量取引戦略です。この戦略は、主に移動平均のトレンド方向の判断に基づいており、重要なサイクル位置での価格のブレイクスルーパターンを取引シグナルとして使用し、同時に取引期間フィルタリングを導入して取引品質を向上させます。この戦略では、リスクを制御するために、パーセンテージのストップロスとテイクプロフィットの方法を使用します。

戦略原則

戦略の中核となるロジックには、次の重要な要素が含まれます。

  1. 20 日間の EMA をトレンド検出ツールとして使用し、価格が EMA を上回っている場合にのみロングし、価格が EMA を下回っている場合にのみショートします。
  2. 取引シグナルとして、キーローテーションレベル(5ドルのラウンドナンバー)付近のエングルフィングパターンを探します。
  3. ボラティリティが低い期間を避けるため、ロンドンとニューヨークの取引セッション中にのみポジションを開きます。
  4. ロングシグナルは、以下の条件を同時に満たす必要があります: 強気エングルフィングパターン、EMAを上回る価格、有効な取引セッション
  5. ショートシグナルは、以下の条件を同時に満たす必要があります:弱気エングルフィングパターン、EMAを下回る価格、有効な取引セッション
  6. トレード管理には1%のストップロスと1.5%のテイクプロフィットのリスクリワード比率を使用する

戦略的優位性

  1. 複数の信号確認メカニズムにより、取引の信頼性が大幅に向上
  2. テクニカル分析と価格心理学を組み合わせて勝率を向上させる
  3. 期間フィルタリングにより、活発な市場期間中の取引が保証され、誤ったブレイクアウトを回避できます。
  4. 固定パーセンテージのストップロスとテイクプロフィットによりリスク管理が容易になります
  5. 戦略ロジックは明確で、理解しやすく、実行しやすい
  6. 不安定な市場環境に適しています

戦略リスク

  1. 横ばい市場では誤ったシグナルが多すぎる可能性がある
  2. 固定ストップロスとテイクプロフィットは柔軟性が足りず、大きな市場トレンドを見逃す可能性がある。
  3. ファンダメンタル要因を考慮せずにテクニカル指標だけに頼る
  4. 重要なニュースが発表されるとスリッページリスクに直面する可能性があります
  5. 取引セッションの制限により、他のセッション中に良い機会を逃す可能性があります。

戦略最適化の方向性

  1. 適応型ストップロスとテイクプロフィットのメカニズムを導入し、市場のボラティリティに応じて動的に調整します。
  2. ブレイクスルーの信頼性を高めるためにボリューム確認インジケーターを追加する
  3. 弱いトレンドでの取引を避けるためにトレンド強度フィルターを追加します
  4. 参入タイミングを最適化するために市場感情指標の導入を検討する
  5. 回転位置を識別するためのよりスマートなアルゴリズムの開発

要約する

この戦略は、移動平均トレンド、価格パターン、期間フィルタリングなどの複数のメカニズムを組み合わせることで、論理的に厳密な取引システムを構築します。一定の制限はあるものの、継続的な最適化と改善を通じて、戦略の安定性と収益性がさらに向上することが期待されます。この戦略は、中長期のトレンド追跡システムの基本フレームワークとして適しており、実際の取引ニーズに応じてカスタマイズおよび改善することができます。

ストラテジーソースコード
/*backtest
start: 2024-12-17 00:00:00
end: 2025-01-16 00:00:00
period: 1h
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT","balance":49999}]
*/


//@version=6
strategy("The Gold Box Strategy", overlay=true, default_qty_type=strategy.percent_of_equity, default_qty_value=200)

// Inputs
roundNumberInterval = input.int(5, title="Round Number Interval ($)", minval=1)
useEMA = input.bool(true, title="Use 20 EMA for Confluence")
emaLength = input.int(20, title="EMA Length")

// Session times for London and NY
londonSession = input("0300-1200", title="London Session (NY Time)")
nySession = input("0800-1700", title="New York Session (NY Time)")

// EMA Calculation
emaValue = ta.ema(close, emaLength)

// Plot Round Number Levels
roundLow = math.floor(low / roundNumberInterval) * roundNumberInterval
roundHigh = math.ceil(high / roundNumberInterval) * roundNumberInterval

// for level = roundLow to roundHigh by roundNumberInterval
//     line.new(x1=bar_index - 1, y1=level, x2=bar_index, y2=level, color=color.new(color.gray, 80), extend=extend.both)

// Session Filter
inLondonSession = not na(time("1", londonSession))
inNYSession = not na(time("1", nySession))
inSession = true

// Detect Bullish and Bearish Engulfing patterns
bullishEngulfing = close > open[1] and open < close[1] and close > emaValue and inSession
bearishEngulfing = close < open[1] and open > close[1] and close < emaValue and inSession

// Entry Conditions
if bullishEngulfing
    strategy.entry("Long", strategy.long, comment="Bullish Engulfing with EMA Confluence")
if bearishEngulfing
    strategy.entry("Short", strategy.short, comment="Bearish Engulfing with EMA Confluence")

// Stop Loss and Take Profit
stopLossPercent = input.float(1.0, title="Stop Loss (%)", minval=0.1) / 100
takeProfitPercent = input.float(1.5, title="Take Profit (%)", minval=0.1) / 100

strategy.exit("Exit Long", "Long", stop=close * (1 - stopLossPercent), limit=close * (1 + takeProfitPercent))
strategy.exit("Exit Short", "Short", stop=close * (1 + stopLossPercent), limit=close * (1 - takeProfitPercent))