
This strategy is a multi-dimensional technical analysis trading system that combines momentum indicators (RSI, MACD), trend indicators (EMA), volatility indicators (Bollinger Bands, ATR), and price structure indicators (Fibonacci retracements) to capture market opportunities through multi-dimensional signal coordination. The strategy is optimized for 15-minute timeframes and employs ATR-based dynamic stop-loss and take-profit levels, demonstrating strong risk control capabilities.
The core logic includes the following dimensions: 1. Trend Confirmation: Using 9⁄21 period EMA crossovers to determine trend direction 2. Momentum Verification: Combining RSI overbought/oversold (55⁄45) and MACD histogram for momentum validation 3. Volatility Reference: Using Bollinger Bands (20 periods, 2 standard deviations) to measure price volatility 4. Support/Resistance: Fibonacci 0.382⁄0.618⁄0.786 levels calculated from 100-period high/low 5. Risk Management: 1.5x ATR stop-loss and 3x ATR take-profit based on 14-period ATR
Trading occurs only when multiple dimensional signals align, improving trading accuracy.
This strategy builds a robust trading system through the coordination of multi-dimensional technical indicators. Its core advantages lie in signal cross-validation and dynamic risk control, but attention must be paid to parameter optimization and market environment adaptability. Future optimization should focus on dynamic parameter adjustment and signal quality improvement.
/*backtest
start: 2024-12-10 00:00:00
end: 2025-01-08 08:00:00
period: 1h
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT","balance":49999}]
*/
//@version=5
strategy("Optimized Advanced Strategy", overlay=true)
// Bollinger Bandı
length = input(20, title="Bollinger Band Length")
src = close
mult = input.float(2.0, title="Bollinger Band Multiplier")
basis = ta.sma(src, length)
dev = mult * ta.stdev(src, length)
upper = basis + dev
lower = basis - dev
// RSI
rsi = ta.rsi(close, 14)
// MACD
[macdLine, signalLine, _] = ta.macd(close, 12, 26, 9)
// EMA
emaFast = ta.ema(close, 9)
emaSlow = ta.ema(close, 21)
// ATR
atr = ta.atr(14)
// Fibonacci Seviyeleri
lookback = input(100, title="Fibonacci Lookback Period")
highPrice = ta.highest(high, lookback)
lowPrice = ta.lowest(low, lookback)
fiboLevel618 = lowPrice + (highPrice - lowPrice) * 0.618
fiboLevel382 = lowPrice + (highPrice - lowPrice) * 0.382
fiboLevel786 = lowPrice + (highPrice - lowPrice) * 0.786
// Kullanıcı Ayarlı Stop-Loss ve Take-Profit
stopLossATR = atr * 1.5
takeProfitATR = atr * 3
// İşlem Koşulları
longCondition = (rsi < 55) and (macdLine > signalLine) and (emaFast > emaSlow) and (close >= fiboLevel382 and close <= fiboLevel618)
shortCondition = (rsi > 45) and (macdLine < signalLine) and (emaFast < emaSlow) and (close >= fiboLevel618 and close <= fiboLevel786)
// İşlem Girişleri
if (longCondition)
strategy.entry("Long", strategy.long, stop=close - stopLossATR, limit=close + takeProfitATR, comment="LONG SIGNAL")
if (shortCondition)
strategy.entry("Short", strategy.short, stop=close + stopLossATR, limit=close - takeProfitATR, comment="SHORT SIGNAL")
// Bollinger Bandını Çizdir
plot(upper, color=color.red, title="Bollinger Upper Band")
plot(basis, color=color.blue, title="Bollinger Basis")
plot(lower, color=color.green, title="Bollinger Lower Band")
// Fibonacci Seviyelerini Çizdir
// line.new(x1=bar_index[1], y1=fiboLevel382, x2=bar_index, y2=fiboLevel382, color=color.blue, width=1, style=line.style_dotted)
// line.new(x1=bar_index[1], y1=fiboLevel618, x2=bar_index, y2=fiboLevel618, color=color.orange, width=1, style=line.style_dotted)
// line.new(x1=bar_index[1], y1=fiboLevel786, x2=bar_index, y2=fiboLevel786, color=color.purple, width=1, style=line.style_dotted)
// Göstergeleri Görselleştir
plot(macdLine, color=color.blue, title="MACD Line")
plot(signalLine, color=color.orange, title="MACD Signal Line")
plot(emaFast, color=color.green, title="EMA Fast (9)")
plot(emaSlow, color=color.red, title="EMA Slow (21)")
// İşlem İşaretleri
plotshape(series=longCondition, location=location.belowbar, color=color.green, style=shape.labelup, title="Long Entry")
plotshape(series=shortCondition, location=location.abovebar, color=color.red, style=shape.labeldown, title="Short Entry")