資源の読み込みに... 荷物...

マルチフィルタートレンドブレークスルー スマート移動平均取引戦略

作者: リン・ハーンチャオチャン開催日:2024年12月20日 15:49:05
タグ:VWAPエイマRSIADXATRHTFSMA

img

概要

この戦略は,複数の技術指標フィルターに基づくトレンドブレークスルートレーディングシステムである.複数の信号確認を通じて偽のブレイクアウトをフィルタリングし,取引精度を向上させるために,指数的な移動平均値 (EMA),ボリューム重量平均価格 (VWAP),相対強度指数 (RSI),平均方向指数 (ADX),などを含む複数の技術指標を組み合わせている.この戦略は,より高いタイムフレームトレンド判断を組み込み,効果的なリスク管理のためにATRベースのダイナミックストップ・ロストとテイク・プロフィート・スキームを使用している.

戦略の原則

戦略の基本論理は次の主要な要素に基づいています

  1. トレンド判断システム: 9 期間の EMA と 21 期間の EMA のクロスオーバーを使用して短期的なトレンド変化を把握し,より大きなトレンド方向性を確認するために 15 分間の時間枠 50 期間の EMA を参照します.
  2. 価格モメンタム確認:モメンタム確認のためにRSIインジケータを使用し,ロングのRSI>55とショートのRSI<45が必要です.
  3. トレンド強度検証: トレンド強度判断のためのADX指標を組み込み,トレンド有効性を確保するためにADX>25が必要です.
  4. 価格ポジション検証:価格ポジションの基準としてVWAPを使用し,価格が正しいVWAPポジションにある必要があります.
  5. 取引量の確認: 十分な市場参加を確保するために,10年間の平均取引量の1.5倍の取引量を要求する.
  6. リスクマネジメント: 口座資本の固定パーセントとATRに基づいてポジションサイズを動的に計算し,ストップ損失のATRを1.5倍,収益のATRを3倍にする.

戦略 の 利点

  1. 複数の信号の確認メカニズムにより 誤った信号による干渉が大幅に減少します
  2. 高値と低値のタイムフレーム分析の組み合わせにより,傾向判断の正確性が向上します.
  3. ダイナミックなポジションマネジメントとストップ・ロスト/テイク・プロフィート設定により,良質なリスク管理が可能になります.
  4. 取引の確認としてボリュームブレイクを使用すると,取引の信頼性が向上します.
  5. 高いパラメータ調整能力により,異なる市場条件に最適化が可能になります.

戦略リスク

  1. 複数のフィルタが有効な取引機会を逃す可能性があります
  2. 市場が異なる場合,頻繁に取引信号を生成する可能性があります.
  3. パラメータの最適化により,歴史的なデータが過剰に適合する可能性があります.
  4. ATRストップは,非常に不安定な市場では,あまりにも幅が広い可能性があります.

戦略の最適化方向

  1. 市場状況に基づいてパラメータを動的に調整するための適応パラメータメカニズムを導入する.
  2. 異なる市場環境で異なるパラメータの組み合わせを使用するための市場環境認識モジュールを追加します.
  3. 高波動期を避けるため,取引時間フィルターを追加する.
  4. ストップ・ロストとテイク・プロフィートの比率を最適化し,市場の変動に基づく動的調整を考慮する.
  5. 異なる強度レベルで異なるポジション管理戦略を採用するために,トレンド強度格付けを追加します.

概要

この戦略は,複数の技術指標のシネージを通じて比較的完全な取引システムを構築する.その主な利点は,資本の安全を保護するために科学的リスク管理方法を採用しながら,多次元信号確認を通じて取引の精度を向上させることにある.一定の制限があるにもかかわらず,継続的な最適化と改善を通じて,この戦略は実際の取引で安定した収益を達成する可能性がある.


/*backtest
start: 2024-11-19 00:00:00
end: 2024-12-18 08:00:00
period: 1h
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("Trend-Filtered Scalping Strategy", overlay=true, shorttitle="TFSS")

// Inputs
emaShort     = input.int(9, title="EMA Short", minval=1)
emaLong      = input.int(21, title="EMA Long", minval=1)
rsiLength    = input.int(14, title="RSI Length", minval=1)
atrLength    = input.int(14, title="ATR Length", minval=1)
adxLength    = input.int(20, title="ADX Length", minval=1)
adxSmoothing = input.int(14, title="ADX Smoothing", minval=1)
volMultiplier = input.float(1.5, title="Volume Spike Multiplier", minval=1.0)
riskPercent  = input.float(1, title="Risk % of Equity", minval=0.1, step=0.1)

// Higher Time Frame for Trend Filter
htfTimeframe = input.timeframe("15", title="Higher Time Frame")
ema50HTF     = request.security(syminfo.tickerid, htfTimeframe, ta.ema(close, 50))

// Indicators
ema9  = ta.ema(close, emaShort)
ema21 = ta.ema(close, emaLong)
vwap  = ta.vwap(close)
rsi   = ta.rsi(close, rsiLength)
atr   = ta.atr(atrLength)
volAvg = ta.sma(volume, 10)

// ADX Calculation with Smoothing
[_, _, adx] = ta.dmi(adxLength, adxSmoothing)

// Entry Conditions
longCondition = (ta.crossover(ema9, ema21) and close > vwap and rsi > 55 and adx > 25 and close > ema50HTF and volume > volAvg * volMultiplier)
shortCondition = (ta.crossunder(ema9, ema21) and close < vwap and rsi < 45 and adx > 25 and close < ema50HTF and volume > volAvg * volMultiplier)

// Position Sizing Based on Risk %
capitalPerTrade = (strategy.equity * (riskPercent / 100)) / atr
longStop  = close - 1.5 * atr
longTarget = close + 3 * atr
shortStop = close + 1.5 * atr
shortTarget = close - 3 * atr

// Entry Logic
if longCondition and not strategy.opentrades
    strategy.entry("Long", strategy.long, qty=capitalPerTrade)
    strategy.exit("Exit Long", from_entry="Long", stop=longStop, limit=longTarget)

if shortCondition and not strategy.opentrades
    strategy.entry("Short", strategy.short, qty=capitalPerTrade)
    strategy.exit("Exit Short", from_entry="Short", stop=shortStop, limit=shortTarget)

// Alerts
alertcondition(longCondition, title="Long Entry Alert", message="Long Condition Triggered!")
alertcondition(shortCondition, title="Short Entry Alert", message="Short Condition Triggered!")

// Plot Indicators
plot(ema9, title="EMA 9", color=color.green)
plot(ema21, title="EMA 21", color=color.red)
plot(vwap, title="VWAP", color=color.blue)
plot(ema50HTF, title="HTF EMA 50", color=color.purple)
hline(55, "RSI Long Threshold", color=color.green)
hline(45, "RSI Short Threshold", color=color.red)


関連性

もっと