
Ini adalah strategi perdagangan kuantitatif yang menggabungkan tren EMA, penembusan siklus, dan penyaringan sesi perdagangan. Strategi ini terutama didasarkan pada penilaian arah tren pergerakan rata-rata, dan menggunakan pola terobosan harga pada posisi siklus utama sebagai sinyal perdagangan. Pada saat yang sama, penyaringan periode perdagangan diperkenalkan untuk meningkatkan kualitas perdagangan. Strategi ini menggunakan metode persentase stop loss dan take profit untuk mengendalikan risiko.
Logika inti dari strategi ini mencakup elemen-elemen kunci berikut:
Strategi ini membangun sistem perdagangan yang secara logis ketat dengan menggabungkan berbagai mekanisme seperti tren rata-rata pergerakan, pola harga, dan penyaringan periode waktu. Walaupun ada keterbatasan tertentu, diharapkan stabilitas dan profitabilitas strategi akan lebih ditingkatkan melalui pengoptimalan dan perbaikan berkelanjutan. Strategi ini cocok sebagai kerangka dasar sistem pelacakan tren jangka menengah dan panjang, dan dapat disesuaikan dan ditingkatkan menurut kebutuhan perdagangan aktual.
/*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))