Strategi ini menggabungkan indikator momentum dan rata-rata bergerak untuk mengidentifikasi tren pasar dan titik pembalikan untuk perdagangan ketika tren berubah arah. Ini termasuk dalam strategi perdagangan tren berikut dan kontra-tren. Komponen utama termasuk zona pasokan dan permintaan, EMA, berbagai zona panjang dan pendek HH, LL, LH, HL, ATR trailing stop loss dll.
Membedakan hubungan penawaran dan permintaan berdasarkan rentang tinggi dan rendah Kline. Area merah menunjukkan pasokan melebihi zona pasokan permintaan. Area hijau menunjukkan permintaan melebihi zona permintaan pasokan.
Menggambar EMA periode 200 dan menentukan uptrend dan downtrend dengan membandingkan harga dengan EMA. Harga di atas EMA dianggap sebagai uptrend, sementara harga di bawah EMA dianggap sebagai downtrend.
Tentukan zona pembalikan berdasarkan titik tertinggi dan terendah 2 lilin terakhir:
Menghitung nilai ATR periode 14 yang akan dikalikan dengan faktor 2 untuk memperoleh tingkat stop loss.
Memantau hubungan harga dengan titik tinggi/rendah lilin sebelumnya. Sinyal panjang dipicu ketika harga melanggar di atas titik tinggi sebelumnya. Sinyal pendek dipicu ketika harga melanggar di bawah titik rendah sebelumnya. Menunda konfirmasi sinyal masuk sampai lilin ke-3 untuk menghindari sinyal palsu. Keluar dengan stop loss ketika harga menarik kembali di luar level stop loss ATR.
Solusi Risiko:
Strategi ini menggabungkan analisis penawaran / permintaan, penentuan tren, identifikasi pembalikan dan modul manajemen risiko secara efektif untuk menemukan peluang pembalikan pasar di area kunci. Ini adalah sistem yang kuat untuk mengikuti tren dan pengaturan kontra-tren. pengujian terus menerus, optimalisasi dan penilaian pengalaman manusia sangat penting untuk keuntungan stabil jangka panjang.
/*backtest start: 2023-12-01 00:00:00 end: 2023-12-20 23:59:59 period: 1h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy("Supply and Demand Zones with EMA and Trailing Stop", shorttitle="SD Zones", overlay=true) showBuySignals = input(true, title="Show Buy Signals", group="Signals") showSellSignals = input(true, title="Show Sell Signals", group="Signals") showHLZone = input(true, title="Show HL Zone", group="Zones") showLHZone = input(true, title="Show LH Zone", group="Zones") showHHZone = input(true, title="Show HH Zone", group="Zones") showLLZone = input(true, title="Show LL Zone", group="Zones") emaLength = input(200, title="EMA Length", group="EMA Settings") atrLength = input(14, title="ATR Length", group="Trailing Stop") atrMultiplier = input(2, title="ATR Multiplier", group="Trailing Stop") // Function to identify supply and demand zones getZones(src, len, mult) => base = request.security(syminfo.tickerid, "D", close) upper = request.security(syminfo.tickerid, "D", high) lower = request.security(syminfo.tickerid, "D", low) multiplier = request.security(syminfo.tickerid, "D", mult) zonetype = base + multiplier * len zone = src >= zonetype [zone, upper, lower] // Identify supply and demand zones [supplyZone, _, _] = getZones(close, high[1] - low[1], 1) [demandZone, _, _] = getZones(close, high[1] - low[1], -1) // Plot supply and demand zones bgcolor(supplyZone ? color.new(color.red, 80) : na) bgcolor(demandZone ? color.new(color.green, 80) : na) // EMA with Linear Weighted method ema = ta.ema(close, emaLength) // Color code EMA based on its relation to candles emaColor = close > ema ? color.new(color.green, 0) : close < ema ? color.new(color.red, 0) : color.new(color.yellow, 0) // Plot EMA plot(ema, color=emaColor, title="EMA") // Entry Signal Conditions after the third candle longCondition = ta.crossover(close, high[1]) and (bar_index >= 2) shortCondition = ta.crossunder(close, low[1]) and (bar_index >= 2) // Trailing Stop using ATR atrValue = ta.atr(atrLength) trailStop = close - atrMultiplier * atrValue // Strategy Entry and Exit if (longCondition) strategy.entry("Buy", strategy.long) strategy.exit("TrailStop", from_entry="Buy", loss=trailStop) if (shortCondition) strategy.entry("Sell", strategy.short) strategy.exit("TrailStop", from_entry="Sell", loss=trailStop) // Plot Entry Signals plotshape(series=showBuySignals ? longCondition : na, title="Buy Signal", color=color.new(color.green, 0), style=shape.triangleup, location=location.belowbar) plotshape(series=showSellSignals ? shortCondition : na, title="Sell Signal", color=color.new(color.red, 0), style=shape.triangledown, location=location.abovebar) // Plot Trailing Stop plot(trailStop, color=color.new(color.red, 0), title="Trailing Stop") // Plot HH, LL, LH, and HL zones plotshape(series=showHHZone and ta.highest(high, 2)[1] and ta.highest(high, 2)[2] ? 1 : na, title="HH Zone", color=color.new(color.blue, 80), style=shape.triangleup, location=location.abovebar) plotshape(series=showLLZone and ta.lowest(low, 2)[1] and ta.lowest(low, 2)[2] ? 1 : na, title="LL Zone", color=color.new(color.blue, 80), style=shape.triangledown, location=location.belowbar) plotshape(series=showLHZone and ta.highest(high, 2)[1] and ta.lowest(low, 2)[2] ? 1 : na, title="LH Zone", color=color.new(color.orange, 80), style=shape.triangleup, location=location.abovebar) plotshape(series=showHLZone and ta.lowest(low, 2)[1] and ta.highest(high, 2)[2] ? 1 : na, title="HL Zone", color=color.new(color.orange, 80), style=shape.triangledown, location=location.belowbar)