複数のフィルタートレンドの画期的なインテリジェントな移動平均取引戦略

VWAP EMA RSI ADX ATR HTF SMA
作成日: 2024-12-20 15:49:05 最終変更日: 2024-12-20 15:49:05
コピー: 0 クリック数: 427
1
フォロー
1617
フォロワー

複数のフィルタートレンドの画期的なインテリジェントな移動平均取引戦略

概要

この戦略は,複数の技術指標の網をベースにしたトレンドブレイク取引システムである.これは,指数移動平均 ((EMA),成交量重量平均価格 ((VWAP),相対的に強い指数 ((RSI),平均トレンド指数 ((ADX) など,複数の技術指標を総合的に使用し,複数のシグナルを認識して偽の突破をフィルターし,取引の正確性を向上させる.この戦略は,より高い時間周期のトレンド判断を組み合わせ,ATRベースのダイナミックストップ・ローズ・ストップ・スキームを採用し,リスクを効果的に制御する.

戦略原則

戦略の中核となるロジックは、次の主要な要素に基づいています。

  1. トレンド判断システム: 9周期と21周期のEMAの交差を用い,短期的なトレンドの変化を捉え,また15分周期の50周期EMAを参考にして,より大きなトレンドの方向を確認する.
  2. 価格動力の確認:RSI指標を使用して動力の確認,多頭要求RSI>55,空頭要求RSI<45.
  3. トレンド強度検証:トレンドの強さを判断するADX指標を導入し,トレンドの有効性を確保するためにADX>25を要求する.
  4. 価格位置検証:VWAPを価格位置の参照として使用し,価格が正しいVWAP位置にあることを要求する.
  5. 取引量確認: 取引量が10サイクル平均の取引量の1.5倍以上であることを要求し,市場の十分な参加を確保する.
  6. リスク管理:口座総額の固定比率とATRの動的な計算による保有規模,1.5倍ATRをストップロストとして使用し,3倍ATRをストップとして使用.

戦略的優位性

  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)