
この戦略は,複数の技術指標を統合した量化取引方法であり,指数移動平均 (EMA),相対的に強い指数 (RSI),平均実際の変動幅 (ATR),取引量重量平均価格 (VWAP) およびスーパートレンド (Supertrend) などの指標を組み合わせることで,市場の傾向を正確に捉え,リスクを制御できる取引を実現します.
戦略の核心となる原則は,多次元技術指標の協同作用に基づいています.
これは,多次元技術指標に基づく量化取引戦略で,体系的な指標の組み合わせと厳格なリスク管理により,市場動向を捉え,取引リスクを制御することを目的としています.この戦略の核心は,指標の協同作用と動的パラメータの最適化であり,量化取引のための柔軟で比較的安定した方法を提供します.
/*backtest
start: 2025-02-25 00:00:00
end: 2025-03-27 00:00:00
period: 5m
basePeriod: 5m
exchanges: [{"eid":"Futures_Binance","currency":"ETH_USDT"}]
*/
//@version=6
strategy("Advanced BTC/USDT Strategy", overlay=true, default_qty_type=strategy.percent_of_equity, default_qty_value=10)
// ==== INPUT PARAMETERS ====
emaShortLength = input.int(50, title="Short EMA Length")
emaLongLength = input.int(200, title="Long EMA Length")
rsiLength = input.int(14, title="RSI Length")
atrLength = input.int(14, title="ATR Length")
supertrendFactor = input.float(2.0, title="Supertrend Factor")
supertrendATRLength = input.int(10, title="Supertrend ATR Length")
riskRewardRatio = input.float(2.0, title="Risk-Reward Ratio")
// ==== TECHNICAL INDICATORS ====
// Exponential Moving Averages (EMA)
emaShort = ta.ema(close, emaShortLength)
emaLong = ta.ema(close, emaLongLength)
// Relative Strength Index (RSI)
rsi = ta.rsi(close, rsiLength)
// Supertrend Indicator
[supertrend, supertrendDirection] = ta.supertrend(supertrendFactor, supertrendATRLength)
// Average True Range (ATR) for Stop Loss Calculation
atr = ta.atr(atrLength)
stopLossDistance = atr * 1.5 // ATR-based stop-loss
takeProfitDistance = stopLossDistance * riskRewardRatio
// Volume Weighted Average Price (VWAP)
vwap = ta.vwap(close)
// ==== ENTRY CONDITIONS ====
// Long Entry: Golden Cross + RSI Confirmation + VWAP Support + Supertrend Uptrend
longCondition = ta.crossover(emaShort, emaLong) and rsi > 40 and rsi < 65 and close > vwap and supertrendDirection == 1
// Short Entry: Death Cross + RSI Confirmation + VWAP Resistance + Supertrend Downtrend
shortCondition = ta.crossunder(emaShort, emaLong) and rsi > 60 and rsi < 80 and close < vwap and supertrendDirection == -1
// ==== EXIT CONDITIONS ====
// Stop-Loss and Take-Profit Levels for Long Positions
longStopLoss = close - stopLossDistance
longTakeProfit = close + takeProfitDistance
// Stop-Loss and Take-Profit Levels for Short Positions
shortStopLoss = close + stopLossDistance
shortTakeProfit = close - takeProfitDistance
// ==== TRADE EXECUTION ====
// Open Long Trade
if (longCondition)
strategy.entry("Long", strategy.long)
strategy.exit("Long Exit", from_entry="Long", limit=longTakeProfit, stop=longStopLoss)
// Open Short Trade
if (shortCondition)
strategy.entry("Short", strategy.short)
strategy.exit("Short Exit", from_entry="Short", limit=shortTakeProfit, stop=shortStopLoss)
// ==== ALERT SYSTEM (OPTIONAL) ====
// Send real-time alerts for buy/sell signals
alertcondition(longCondition, title="BUY Alert 🚀", message="BTC Buy Signal! 📈")
alertcondition(shortCondition, title="SELL Alert 🔻", message="BTC Sell Signal! 📉")
// ==== PLOTTING ====
// Plot Moving Averages
plot(emaShort, color=color.blue, title="50 EMA")
plot(emaLong, color=color.red, title="200 EMA")
// Plot Supertrend
plot(supertrend, color=supertrendDirection == 1 ? color.green : color.red, title="Supertrend")
// Plot VWAP
plot(vwap, color=color.orange, title="VWAP")
// Plot Buy/Sell Signals
plotshape(series=longCondition, location=location.belowbar, color=color.green, style=shape.labelup, title="Buy Signal")
plotshape(series=shortCondition, location=location.abovebar, color=color.red, style=shape.labeldown, title="Sell Signal")