
Ini adalah strategi multi-tahap berdasarkan support dan trend EMA. Strategi ini mencari peluang masuk yang optimal dengan mengidentifikasi tren pasar dan support utama, digabungkan dengan stop loss ATR dinamis dan profit berturut-turut untuk mencapai manajemen risiko. Strategi ini berfokus pada harga yang kembali ke support dalam tren naik, meningkatkan tingkat keberhasilan perdagangan dengan menetapkan rasio risiko-pengembalian yang wajar.
Strategi menggunakan 100 siklus EMA sebagai indikator untuk menilai tren, mengkonfirmasi tren naik ketika harga berada di atas EMA. Di samping itu, menghitung harga terendah 10 siklus sebagai dukungan jangka pendek, ketika harga kembali ke dekat dukungan ((support + 0,5*ATR) untuk mencari peluang masuk. Setelah masuk menggunakan metode keuntungan bertahap, 50% dari posisi ditutup dengan 5 kali ATR, dan sisa posisi ditutup sepenuhnya dengan 10 kali ATR, sambil mengatur 1 kali ATR sebagai stop loss dinamis. Risiko setiap perdagangan dikendalikan dalam 3% dari total nilai akun, dengan cara menghitung ukuran posisi secara dinamis untuk mencapai manajemen risiko.
Strategi ini membangun sistem perdagangan yang lengkap dengan menggabungkan trend follow and support retracement, dan mengelola risiko dengan keuntungan dan stop loss yang dinamis. Keunggulan utama strategi ini adalah mekanisme kontrol risiko yang baik dan logika perdagangan yang jelas, tetapi masih perlu terus mengoptimalkan parameter dan kondisi masuk dalam praktik untuk beradaptasi dengan lingkungan pasar yang berbeda.
/*backtest
start: 2024-02-22 00:00:00
end: 2024-05-30 00:00:00
period: 2d
basePeriod: 2d
exchanges: [{"eid":"Binance","currency":"ETH_USDT"}]
*/
//@version=5
strategy("Ultra-Profitable SMC Long-Only Strategy", shorttitle="Ultra_Profit_SMC", overlay=true)
// User Inputs
emaTrendLength = input.int(100, title="Trend EMA Length") // Faster EMA to align with aggressive trends
supportLookback = input.int(10, title="Support Lookback Period") // Short-term support zones
atrLength = input.int(14, title="ATR Length")
atrMultiplierSL = input.float(1.0, title="ATR Multiplier for Stop-Loss")
atrMultiplierTP1 = input.float(5.0, title="ATR Multiplier for TP1")
atrMultiplierTP2 = input.float(10.0, title="ATR Multiplier for TP2")
riskPercent = input.float(3.0, title="Risk per Trade (%)", step=0.1)
// Calculate Indicators
emaTrend = ta.ema(close, emaTrendLength) // Trend EMA
supportLevel = ta.lowest(low, supportLookback) // Support Level
atr = ta.atr(atrLength) // ATR
// Entry Conditions
isTrendingUp = close > emaTrend // Price above Trend EMA
nearSupport = close <= supportLevel + (atr * 0.5) // Price near support zone
longCondition = isTrendingUp and nearSupport
// Dynamic Stop-Loss and Take-Profit Levels
longStopLoss = supportLevel - (atr * atrMultiplierSL)
takeProfit1 = close + (atr * atrMultiplierTP1) // Partial Take-Profit at 5x ATR
takeProfit2 = close + (atr * atrMultiplierTP2) // Full Take-Profit at 10x ATR
// Position Sizing
capital = strategy.equity
tradeRisk = riskPercent / 100 * capital
positionSize = tradeRisk / (close - longStopLoss)
// Execute Long Trades
if (longCondition)
strategy.entry("Ultra Long", strategy.long, qty=positionSize)
// Exit Conditions
strategy.exit("Partial Exit", from_entry="Ultra Long", limit=takeProfit1, qty_percent=50) // Exit 50% at TP1
strategy.exit("Full Exit", from_entry="Ultra Long", limit=takeProfit2, qty_percent=100, stop=longStopLoss) // Exit the rest at TP2
// Plot Indicators
plot(emaTrend, color=color.blue, title="Trend EMA")
plot(supportLevel, color=color.green, title="Support Level", linewidth=2)