
これは,複数の技術指標の確認に基づいたトレンド取引戦略であり,移動平均,動向指標,取引量分析を組み合わせて取引信号のフィルタリングを行います. この戦略は,トレンド方向判断 (EMA交差),取引量強度確認 (RSIとMACD) および取引量検証 (量能突破とOBVトレンド) を含む3層のフィルタリング機構を採用し,ATRベースのリスク制御システムで装備されています.
この戦略は,以下の3つのメカニズムに基づいて機能します.
リスクマネジメントは1.5倍ATRをストップ基準として採用し,デフォルト1:2のリスク・リターン比率をリターン比率に設定する.
これは,複数の技術指標を組み合わせて,比較的信頼性の高い取引信号を提供する,設計された多層確認取引戦略である.戦略のリスク管理システムは,比較的完備しているが,特定の市場環境に応じて,トレーダーがパラメータを最適化する必要があります.この戦略は,波動性のある,流動性の豊富な市場で使用するのに最適であり,トレーダーに一定の技術分析の基礎が必要です.
/*backtest
start: 2025-02-12 00:00:00
end: 2025-02-19 00:00:00
period: 1m
basePeriod: 1m
exchanges: [{"eid":"Binance","currency":"SOL_USDT"}]
*/
//@version=5
strategy("5min Triple Confirmation Crypto Strategy", overlay=true, margin_long=100, margin_short=100)
// ===== Inputs =====
fast_length = input.int(9, "Fast EMA Length")
slow_length = input.int(21, "Slow EMA Length")
rsi_length = input.int(14, "RSI Length")
volume_ma_length = input.int(20, "Volume MA Length")
atr_length = input.int(14, "ATR Length")
risk_reward = input.float(2.0, "Risk:Reward Ratio")
// ===== 1. Trend Confirmation (EMA Crossover) =====
fast_ema = ta.ema(close, fast_length)
slow_ema = ta.ema(close, slow_length)
bullish_trend = ta.crossover(fast_ema, slow_ema)
bearish_trend = ta.crossunder(fast_ema, slow_ema)
// ===== 2. Momentum Confirmation (RSI + MACD) =====
rsi = ta.rsi(close, rsi_length)
[macd_line, signal_line, _] = ta.macd(close, 12, 26, 9)
bullish_momentum = rsi > 50 and ta.crossover(macd_line, signal_line)
bearish_momentum = rsi < 50 and ta.crossunder(macd_line, signal_line)
// ===== 3. Volume Confirmation (Volume Spike + OBV) =====
volume_ma = ta.sma(volume, volume_ma_length)
volume_spike = volume > 1.8 * volume_ma
obv = ta.obv
obv_trend = ta.ema(obv, 5) > ta.ema(obv, 13)
// ===== Entry Conditions =====
long_condition =
bullish_trend and
bullish_momentum and
volume_spike and
obv_trend
short_condition =
bearish_trend and
bearish_momentum and
volume_spike and
not obv_trend
// ===== Risk Management =====
atr = ta.atr(atr_length)
long_stop = low - 1.5 * atr
long_target = close + (1.5 * atr * risk_reward)
short_stop = high + 1.5 * atr
short_target = close - (1.5 * atr * risk_reward)
// ===== Strategy Execution =====
strategy.entry("Long", strategy.long, when=long_condition)
strategy.exit("Long Exit", "Long", stop=long_stop, limit=long_target)
strategy.entry("Short", strategy.short, when=short_condition)
strategy.exit("Short Exit", "Short", stop=short_stop, limit=short_target)
// ===== Visual Alerts =====
plotshape(long_condition, style=shape.triangleup, location=location.belowbar, color=color.green, size=size.small)
plotshape(short_condition, style=shape.triangledown, location=location.abovebar, color=color.red, size=size.small)
plot(fast_ema, "Fast EMA", color=color.blue)
plot(slow_ema, "Slow EMA", color=color.orange)