複数期間の出来高加重平均価格と移動平均ブレイクアウト取引戦略

VWAP EMA ATR RR TP SL
作成日: 2025-02-20 13:25:02 最終変更日: 2025-02-20 13:25:02
コピー: 2 クリック数: 451
2
フォロー
319
フォロワー

複数期間の出来高加重平均価格と移動平均ブレイクアウト取引戦略 複数期間の出来高加重平均価格と移動平均ブレイクアウト取引戦略

概要

これは,取引量加重平均価格 (VWAP) と多周期指数移動平均 (EMA) を組み合わせた取引戦略である.この戦略は,主に日内取引に使用され,特に15分間の時間周期に適している.この戦略は,価格とVWAPと異なる周期EMAの間の関係を分析し,取引量情報を合成して,市場動向と取引機会を決定する.

戦略原則

戦略は10周期,20周期および200周期のEMAとVWAPを核心指標として使用しています.取引シグナルの生成は以下の条件に基づいています.

  • 多頭入場条件:価格はVWAP,200EMA,10EMAおよび20EMAを同時に上回る必要があります.現在のK線閉店価格は開店価格よりも高いです.VWAPは200EMA上位です.10EMAは20EMA上位で,20EMAはVWAP上位です.
  • 空頭入学条件:多頭と逆の条件の組み合わせ
  • 止損設定:前10 K線の最低点 (多頭) または最高点 (空頭) を加減ATR値を使用する.
  • 利益目標: リスクと利益の比率を1:2と1:3で設定し,2つの目標位を設定する.

戦略的優位性

  1. 多重確認メカニズム:複数の技術指標の配合により,取引信号の信頼性が向上する.
  2. ダイナミックリスク管理:ATRベースのダイナミックストップ・ローズ設定で,市場の変動の変化に対応できる.
  3. 明確な利益目標: 固定されたリスク/利益比率を採用し,トレーダーにリスク管理を容易にする.
  4. トレンド追跡と動力の組み合わせ: 異なる周期平均線を組み合わせることで,トレンドを捉えながらも短期的な機会を逃さない.

戦略リスク

  1. 遅滞のリスク:EMAとVWAPは遅滞の指標であり,市場が急速に変化する時に反応しなくなる可能性があります.
  2. 横盤整理段階では,偽の突破シグナルが過剰に発生する可能性があります.
  3. 資金管理のリスク: 固定されたリスク/利益の比率は,すべての市場環境には適さないかもしれない.
  4. 取引コストの影響: 取引頻度が高い場合,取引コストが高くなります.

戦略最適化の方向性

  1. 波動率フィルターを導入:ATRのパーセントの値下げを追加し,低波動率の環境で取引を避ける.
  2. 最適化時間フィルター:異なる市場の特徴に応じて最適取引時間帯を設定できます.
  3. 動的調整 リスク・利益比:市場の変動動態に応じて収益目標を調整する
  4. 取引量確認を追加:最小取引量値を設定して,突破の信頼性を高めることができる.

要約する

この戦略は,複数の技術指標を組み合わせて,完全な取引システムを構築する.戦略の核心的な優位性は,複数の確認機構と完善したリスク管理システムにある.ある程度の遅れのリスクがあるものの,推奨された最適化の方向によって,戦略の安定性と収益性をさらに向上させることができる.戦略は,日内トレーダーに特に適しているが,特定の市場の特徴に応じてパラメータの最適化が必要である.

ストラテジーソースコード
/*backtest
start: 2024-02-21 00:00:00
end: 2024-11-24 00:00:00
period: 2h
basePeriod: 2h
exchanges: [{"eid":"Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("VWAP EMA Breakout", overlay=true)

// Define Indicators
ema10 = ta.ema(close, 10)
ema20 = ta.ema(close, 20)
ema200 = ta.ema(close, 200)
vwap = ta.vwap(close)
atr = ta.atr(14)

// Price Conditions (Long)
priceAboveVWAP200EMA = close > vwap and close > ema200 and close > ema10 and close > ema20
bullishCandle = close > open

// Additional Conditions for VWAP and EMA Relationships (Long)
vwapAbove200EMA = vwap > ema200
emaConditions = ema10 > ema20 and ema20 > vwap and vwap > ema200

// Entry Conditions (Long)
longCondition = priceAboveVWAP200EMA and bullishCandle and vwapAbove200EMA and emaConditions

// Stop-Loss & Take-Profit (Long)
swingLow = ta.lowest(low, 10)
stopLossLong = swingLow - atr
riskLong = close - stopLossLong
takeProfitLong2 = close + (riskLong * 2) // 1:2 RR
takeProfitLong3 = close + (riskLong * 3) // 1:3 RR

// Execute Long Trade
if longCondition
    strategy.entry("Long", strategy.long)
    strategy.exit("TP 1:2", from_entry="Long", limit=takeProfitLong2, stop=stopLossLong)
    strategy.exit("TP 1:3", from_entry="Long", limit=takeProfitLong3, stop=stopLossLong)

// Price Conditions (Short)
priceBelowVWAP200EMA = close < vwap and close < ema200 and close < ema10 and close < ema20
bearishCandle = close < open

// Additional Conditions for VWAP and EMA Relationships (Short)
vwapBelow200EMA = vwap < ema200
emaConditionsShort = ema10 < ema20 and ema20 < vwap and vwap < ema200

// Entry Conditions (Short)
shortCondition = priceBelowVWAP200EMA and bearishCandle and vwapBelow200EMA and emaConditionsShort

// Stop-Loss & Take-Profit (Short)
swingHigh = ta.highest(high, 10)
stopLossShort = swingHigh + atr
riskShort = stopLossShort - close
takeProfitShort2 = close - (riskShort * 2) // 1:2 RR
takeProfitShort3 = close - (riskShort * 3) // 1:3 RR

// Execute Short Trade
if shortCondition
    strategy.entry("Short", strategy.short)
    strategy.exit("TP 1:2", from_entry="Short", limit=takeProfitShort2, stop=stopLossShort)
    strategy.exit("TP 1:3", from_entry="Short", limit=takeProfitShort3, stop=stopLossShort)

// Plot Indicators
plot(ema10, color=color.red, title="10 EMA")
plot(ema20, color=color.green, title="20 EMA")
plot(ema200, color=color.purple, title="200 EMA")
plot(vwap, color=color.white, title="VWAP")