Ini adalah strategi perdagangan kuantitatif yang menggabungkan tren EMA, break-out angka bulat, dan penyaringan sesi perdagangan. Strategi ini terutama bergantung pada arah tren EMA, ditambah dengan pola penarikan harga pada tingkat angka bulat utama sebagai sinyal perdagangan, sementara menggabungkan penyaringan sesi untuk meningkatkan kualitas perdagangan. Strategi ini menggunakan stop-loss dan take-profit berbasis persentase untuk manajemen risiko.
Logika inti mencakup elemen kunci berikut: 1. Menggunakan EMA 20 hari sebagai alat identifikasi tren, hanya pergi jauh di atas EMA dan pendek di bawah 2. Mencari pola engulfing di dekat angka bulat kunci (interval $ 5) 3. Hanya berdagang selama sesi London dan New York untuk menghindari periode volatilitas rendah 4. Sinyal panjang membutuhkan: pola bullish engulfing, harga di atas EMA, sesi perdagangan aktif 5. Sinyal pendek membutuhkan: pola penyerapan bearish, harga di bawah EMA, sesi perdagangan aktif Mengimplementasikan 1% stop-loss dan 1,5% mengambil keuntungan risiko-imbalan rasio untuk manajemen perdagangan
Strategi ini membangun sistem perdagangan yang secara logis ketat dengan menggabungkan beberapa mekanisme termasuk tren EMA, pola harga, dan penyaringan sesi. Meskipun memiliki keterbatasan tertentu, optimasi dan penyempurnaan terus menerus berpotensi meningkatkan stabilitas dan profitabilitas strategi. Strategi ini berfungsi sebagai dasar yang kuat untuk sistem trend berikut jangka menengah hingga panjang, cocok untuk kustomisasi berdasarkan persyaratan perdagangan tertentu.
/*backtest start: 2024-12-17 00:00:00 end: 2025-01-16 00:00:00 period: 1h basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT","balance":49999}] */ //@version=6 strategy("The Gold Box Strategy", overlay=true, default_qty_type=strategy.percent_of_equity, default_qty_value=200) // Inputs roundNumberInterval = input.int(5, title="Round Number Interval ($)", minval=1) useEMA = input.bool(true, title="Use 20 EMA for Confluence") emaLength = input.int(20, title="EMA Length") // Session times for London and NY londonSession = input("0300-1200", title="London Session (NY Time)") nySession = input("0800-1700", title="New York Session (NY Time)") // EMA Calculation emaValue = ta.ema(close, emaLength) // Plot Round Number Levels roundLow = math.floor(low / roundNumberInterval) * roundNumberInterval roundHigh = math.ceil(high / roundNumberInterval) * roundNumberInterval // for level = roundLow to roundHigh by roundNumberInterval // line.new(x1=bar_index - 1, y1=level, x2=bar_index, y2=level, color=color.new(color.gray, 80), extend=extend.both) // Session Filter inLondonSession = not na(time("1", londonSession)) inNYSession = not na(time("1", nySession)) inSession = true // Detect Bullish and Bearish Engulfing patterns bullishEngulfing = close > open[1] and open < close[1] and close > emaValue and inSession bearishEngulfing = close < open[1] and open > close[1] and close < emaValue and inSession // Entry Conditions if bullishEngulfing strategy.entry("Long", strategy.long, comment="Bullish Engulfing with EMA Confluence") if bearishEngulfing strategy.entry("Short", strategy.short, comment="Bearish Engulfing with EMA Confluence") // Stop Loss and Take Profit stopLossPercent = input.float(1.0, title="Stop Loss (%)", minval=0.1) / 100 takeProfitPercent = input.float(1.5, title="Take Profit (%)", minval=0.1) / 100 strategy.exit("Exit Long", "Long", stop=close * (1 - stopLossPercent), limit=close * (1 + takeProfitPercent)) strategy.exit("Exit Short", "Short", stop=close * (1 + stopLossPercent), limit=close * (1 - takeProfitPercent))