Strategi Perdagangan Pembalikan Momentum Pasokan Dan Permintaan

Penulis:ChaoZhang, Tanggal: 2024-01-22 17:34:05
Tag:

img

Gambaran umum

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.

Logika Strategi

1. Identifikasi Pasokan dan Permintaan

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.

2. Penilaian Tren EMA

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.

3. Tanda Zona Panjang dan Singkat

Tentukan zona pembalikan berdasarkan titik tertinggi dan terendah 2 lilin terakhir:

  • HH Zone (Higher High Zone) - 2 puncak lilin berturut-turut membuat tertinggi tertinggi
  • LL Zone (Lower Low Zone) - 2 candles low berturut-turut membuat lower low
  • Zona LH (Lower High Zone) - Kembali dari tingkat tertinggi ke tingkat tertinggi yang lebih rendah
  • HL Zone (Higher Low Zone) - Merubah dari low bawah baru-baru ini menjadi low tinggi

4. ATR Trailing Stop Loss

Menghitung nilai ATR periode 14 yang akan dikalikan dengan faktor 2 untuk memperoleh tingkat stop loss.

5. Entry dan Stop Loss Exit

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.

Analisis Keuntungan

  1. Menggunakan beberapa indikator untuk mengidentifikasi tren dan area pembalikan kunci untuk meningkatkan tingkat profitabilitas.
  2. ATR stop loss dapat secara efektif membatasi risiko kerugian per perdagangan.
  3. Penundaan konfirmasi sinyal masuk meminimalkan perdagangan palsu.

Analisis Risiko

  1. Bergantung hanya pada indikator teknis tanpa mempertimbangkan informasi fundamental dapat menyebabkan kegagalan perdagangan karena data kunci yang hilang.
  2. ATR stop loss dapat mengalami over-run selama volatilitas besar yang mengakibatkan kerugian.
  3. Sinyal pembalikan EMA yang sering terjadi selama pasar berkisar dapat menyebabkan over-trading.

Solusi Risiko:

  1. Menyelesaikan dengan data ekonomi dan penilaian kebijakan.
  2. Mengizinkan buffer yang lebih luas untuk koefisien perkalian ATR.
  3. Sesuaikan parameter periode ATR untuk menghindari sensitivitas selama rentang.

Peluang Peningkatan

  1. Menambah indikator teknis seperti MACD, RSI dll untuk meningkatkan waktu.
  2. Backtest kombinasi parameter periode dan multiplier yang berbeda untuk optimasi.
  3. Pertimbangkan untuk menambahkan filter untuk menghindari sinyal.
  4. Menggunakan pembelajaran mesin dll untuk secara dinamis mengoptimalkan parameter.

Kesimpulan

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)


Lebih banyak