
This strategy is an innovative multi-timeframe trading approach that combines Smart Money Concepts (SMC), Exponential Moving Average (EMA), and multi-timeframe trend analysis, aimed at capturing trading opportunities through precise support and resistance zone identification and dynamic market signals.
The strategy core is based on the following key technical indicators and analysis methods:
This strategy provides traders with a systematic and standardized trading method by integrating multi-timeframe analysis, Smart Money Concepts, and advanced signal generation mechanisms. Despite potential risks, its multi-dimensional analysis and dynamic risk management offer significant advantages for traders. Future optimizations will further enhance the strategy’s adaptability and profit potential.
/*backtest
start: 2024-04-01 00:00:00
end: 2025-03-31 00:00:00
period: 2d
basePeriod: 2d
exchanges: [{"eid":"Futures_Binance","currency":"ETH_USDT"}]
*/
// This Pine Script™ code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © maechelang
//@version=6
strategy("Optimized Trading Strategy v6", overlay=true, default_qty_type=strategy.percent_of_equity, default_qty_value=10)
// === Timeframe Confirmation (M5 & M15) ===
m5_trend = request.security(syminfo.tickerid, "5", ta.sma(close, 50))
m15_trend = request.security(syminfo.tickerid, "15", ta.sma(close, 50))
// === Support & Resistance (Swing High & Low) ===
swingHigh = ta.highest(high, 50)
swingLow = ta.lowest(low, 50)
plot(swingHigh, "Resistance", color=color.blue, linewidth=2, style=plot.style_stepline)
plot(swingLow, "Support", color=color.red, linewidth=2, style=plot.style_stepline)
// === Supply & Demand Zones ===
demand_zone = ta.lowest(low, 20)
supply_zone = ta.highest(high, 20)
bgcolor(close > demand_zone ? color.new(color.green, 85) : na)
bgcolor(close < supply_zone ? color.new(color.red, 85) : na)
// === Smart Money Concepts (SMC) - Liquidity Grab & Breaker Block ===
liqGrab = (ta.highest(high, 10) < ta.highest(high, 50)) and (ta.lowest(low, 10) > ta.lowest(low, 50))
breakerBlock = ta.crossover(close, ta.sma(close, 50)) or ta.crossunder(close, ta.sma(close, 50))
// === News Filter (Hindari Volatilitas Tinggi) ===
newsVolatility = ta.tr(true) > ta.sma(ta.tr(true), 20) * 1.5
// === Buy & Sell Signals (EMA + SMC + Multi-Timeframe) ===
emaFast = ta.ema(close, 9)
emaSlow = ta.ema(close, 21)
buySignal = ta.crossover(emaFast, emaSlow) and close > swingLow and not breakerBlock and close > m5_trend and close > m15_trend and not newsVolatility
sellSignal = ta.crossunder(emaFast, emaSlow) and close < swingHigh and not breakerBlock and close < m5_trend and close < m15_trend and not newsVolatility
// === TP & SL Fixed 100 Pips ===
pip = syminfo.mintick * 100
buyTP = close + 100 * pip
buySL = close - 100 * pip
sellTP = close - 100 * pip
sellSL = close + 100 * pip
// === Entry & Exit Orders ===
if buySignal
strategy.entry("BUY NOW", strategy.long)
strategy.exit("EXIT BUY", from_entry="BUY NOW", limit=buyTP, stop=buySL)
label.new(bar_index, low, "BUY NOW\nEntry: " + str.tostring(close, "#.##") + "\nTP: " + str.tostring(buyTP, "#.##") + "\nSL: " + str.tostring(buySL, "#.##"), color=color.blue, textcolor=color.white, size=size.small)
if sellSignal
strategy.entry("SELL NOW", strategy.short)
strategy.exit("EXIT SELL", from_entry="SELL NOW", limit=sellTP, stop=sellSL)
label.new(bar_index, high, "SELL NOW\nEntry: " + str.tostring(close, "#.##") + "\nTP: " + str.tostring(sellTP, "#.##") + "\nSL: " + str.tostring(sellSL, "#.##"), color=color.red, textcolor=color.white, size=size.small)