Ini adalah strategi dagangan kuantitatif yang menggabungkan trend EMA, pecah nombor pusingan, dan penapisan sesi dagangan. Strategi ini terutamanya bergantung pada arah trend EMA, ditambah dengan corak pecah harga pada tahap nombor pusingan utama sebagai isyarat perdagangan, sambil menggabungkan penapisan sesi untuk meningkatkan kualiti perdagangan. Strategi ini menggunakan stop-loss berasaskan peratusan dan mengambil keuntungan untuk pengurusan risiko.
Logik teras merangkumi elemen utama berikut: 1. Menggunakan EMA 20 hari sebagai alat pengenalan trend, hanya pergi jauh di atas EMA dan pendek di bawah 2. Mencari corak menelan berhampiran nombor bulat utama ($ 5 selang) 3. Hanya berdagang semasa sesi London dan New York untuk mengelakkan tempoh turun naik yang rendah 4. Isyarat panjang memerlukan: corak bullish engulfing, harga di atas EMA, sesi dagangan aktif 5. Isyarat pendek memerlukan: corak memburu, harga di bawah EMA, sesi dagangan aktif 6. Melaksanakan nisbah stop-loss 1% dan 1.5% mengambil keuntungan risiko-balasan untuk pengurusan perdagangan
Strategi ini membina sistem perdagangan yang ketat secara logik dengan menggabungkan pelbagai mekanisme termasuk trend EMA, corak harga, dan penapisan sesi. Walaupun ia mempunyai batasan tertentu, pengoptimuman dan penyempurnaan berterusan berpotensi meningkatkan kestabilan dan keuntungan strategi. Strategi ini berfungsi sebagai asas yang kukuh untuk sistem trend berikut jangka menengah hingga panjang, sesuai untuk penyesuaian berdasarkan keperluan 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))