Strategi Breakout dan Pembalikan Candle Pagi

OHLC MA ATR RSI
Tanggal Pembuatan: 2024-07-31 14:16:42 Akhirnya memodifikasi: 2024-07-31 14:16:42
menyalin: 5 Jumlah klik: 326
1
fokus pada
1166
Pengikut

Strategi Breakout dan Pembalikan Candle Pagi

Ringkasan

Strategi ini adalah strategi perdagangan intraday yang didasarkan pada bentuk grafik pagi hari, terutama menggunakan titik tinggi dan rendah di garis kurva 11:00 pagi untuk menilai pergerakan pasar. Gagasan inti dari strategi ini adalah melakukan lebih banyak ketika harga menerobos titik tinggi pagi hari, melakukan kosong ketika harga menerobos titik rendah, sambil mengatur kondisi stop loss yang sesuai.

Prinsip Strategi

Strategi ini bekerja sebagai berikut:

  1. Menentukan harga kunci: Strategi pertama mengidentifikasi titik tertinggi dan terendah pada jam 11:00 pagi dan menggunakan kedua harga tersebut sebagai level acuan kunci.

  2. Sinyal masuk:

    • Melakukan sinyal lebih: Ketika harga close out dua kali berturut-turut K-line menembus titik tertinggi pagi hari, memicu sinyal lebih.
    • Sinyal penarikan: Sinyal penarikan akan dipicu ketika harga menutup dua garis K berturut-turut di bawah titik terendah pagi.
  3. Pengaturan Stop Loss:

    • Stop loss multi-head: set pada titik terendah di pagi hari.
    • Kerusakan kepala kosong: set pada titik tertinggi di pagi hari.
  4. Mekanisme keluar:

    • Stop loss: Stop loss otomatis terjadi ketika harga mencapai level stop loss yang sesuai.
    • Waktu untuk keluar: Semua pemegang posisi akan melakukan otomatisasi pada pukul 15:15 untuk mengendalikan risiko overnight.
  5. Pembatasan waktu perdagangan: Strategi tidak membuka perdagangan baru setelah 15:15 untuk menghindari fluktuasi yang tidak biasa sebelum penutupan.

Keunggulan Strategis

  1. Aturan perdagangan yang jelas: Strategi didasarkan pada logika terobosan dan pembalikan harga yang jelas, mudah dipahami dan diterapkan.

  2. Kontrol risiko: Mengontrol risiko setiap transaksi dengan cara mengatur titik stop loss yang tetap.

  3. Adaptasi terhadap kondisi pasar: Strategi dapat beradaptasi dengan berbagai kondisi pasar yang bergejolak berdasarkan kisaran harga yang terbentuk di pagi hari.

  4. Eksekusi otomatis: Strategi dapat diprogram untuk melakukan transaksi yang sepenuhnya otomatis, mengurangi intervensi manusia dan pengaruh emosional.

  5. Dagang dalam sehari: Menghindari risiko memegang posisi di malam hari dengan menutup posisi sebelum hari ditutup.

  6. Fleksibilitas: Strategi dapat dioptimalkan parameter sesuai dengan pasar yang berbeda dan varietas perdagangan.

Risiko Strategis

  1. Risiko False Breakthrough: Pasar dapat mengalami false breakthrough, yang menyebabkan seringnya stop loss.

  2. Pembatasan volatilitas: Pada periode rendah volatilitas, strategi mungkin sulit untuk memicu sinyal perdagangan atau menghasilkan keuntungan yang efektif.

  3. Single Time Frame: Bergantung pada 11am saja mungkin mengabaikan informasi pasar penting dari periode waktu lainnya.

  4. Kurangnya pelacakan tren: Strategi tidak memiliki kondisi penghentian yang ditetapkan, dan mungkin tidak dapat sepenuhnya memahami tren besar.

  5. Stop loss tetap: Dalam pasar yang bergejolak tinggi, stop loss tetap dapat terlalu dekat, yang menyebabkan keluar prematur dari posisi menguntungkan.

  6. Biaya transaksi: sering masuk dan keluar dapat menyebabkan biaya transaksi yang lebih tinggi, yang mempengaruhi pendapatan keseluruhan.

Arah optimasi strategi

  1. Memperkenalkan analisis multi-frame time: Pengertian tren yang lebih akurat dalam kombinasi dengan periode waktu yang lebih panjang.

  2. Stop loss dinamis: Menggunakan metode seperti indikator ATR untuk mengatur stop loss dinamis untuk menyesuaikan dengan berbagai kondisi pasar yang bergejolak.

  3. Menambahkan mekanisme stop-loss: mengatur kondisi stop-loss berdasarkan risiko-keuntungan rasio, meningkatkan rasio untung-rugi dari strategi.

  4. Analisis Volume: Menambahkan analisis volume transaksi untuk meningkatkan keandalan sinyal terobosan.

  5. Penyaringan kondisi pasar: memperkenalkan indikator volatilitas seperti ATR, mengurangi frekuensi perdagangan pada periode fluktuasi rendah.

  6. Optimalkan waktu masuk: Pertimbangkan untuk menggunakan indikator seperti RSI untuk melakukan perdagangan terbalik di zona overbought dan oversold.

  7. Tambahkan elemen pelacakan tren: Pertimbangkan untuk menggunakan stop loss bergerak untuk melacak tren saat terjadi terobosan kuat.

  8. Retesting dan optimasi parameter: melakukan retesting terhadap kombinasi parameter yang berbeda untuk menemukan pengaturan parameter yang optimal.

Meringkaskan

Strategi breakout dan reversal di pagi hari adalah sistem perdagangan intraday yang didasarkan pada breakout harga kunci. Ini menggunakan titik tinggi dan rendah di jam 11:00 pagi sebagai referensi penting untuk menangkap tren jangka pendek melalui breakout harga. Keuntungan dari strategi adalah bahwa aturannya jelas, risikonya dapat dikendalikan, dan cocok untuk pelaksanaan otomatis. Namun, strategi ini juga menghadapi risiko potensial seperti penetapan dan penghentian kerugian palsu.

Kode Sumber Strategi
/*backtest
start: 2024-06-30 00:00:00
end: 2024-07-30 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("Custom Strategy Nifty 50", overlay=true)

// Define the time variables
var bool morningCandleFound = false
var float morningHigh = na
var float morningLow = na
var bool inTrade = false
var int tradeDirection = 0 // 0: No trade, 1: Buy Call, -1: Buy Put
var bool noNewTrades = false // To prevent new trades after 15:15

// Identify the high and low of the 11:00 morning candle
if (hour == 11 and minute == 0)
    morningHigh := high
    morningLow := low
    morningCandleFound := true

// Plot the high and low of the 11:00 morning candle
plot(morningHigh, title="11:00 morning High", color=color.green, linewidth=2)
plot(morningLow, title="11:00 morning Low", color=color.red, linewidth=2)

// Conditions for Buy Call and Buy Put signals
var bool buyCallCondition = false
var bool buyPutCondition = false

if (morningCandleFound and (hour > 11 or (hour == 11 and minute > 0)) and not noNewTrades)
    // Check for Buy Call condition
    if (close[1] > morningHigh and close > morningHigh)
        if (not inTrade or tradeDirection != 1)
            strategy.entry("Buy Call", strategy.long, stop=morningLow)
            buyCallCondition := true
            inTrade := true
            tradeDirection := 1
            label.new(bar_index, high, "Buy Call", color=color.green)
            alert("Buy Call: Price crossed morning high", alert.freq_once_per_bar_close)
    else if (close[1] <= morningHigh)
        buyCallCondition := false

    // Check for Buy Put condition
    if (close[1] < morningLow and close < morningLow)
        if (not inTrade or tradeDirection != -1)
            strategy.entry("Buy Put", strategy.short, stop=morningHigh)
            buyPutCondition := true
            inTrade := true
            tradeDirection := -1
            label.new(bar_index, low, "Buy Put", color=color.red)
            alert("Buy Put: Price crossed morning low", alert.freq_once_per_bar_close)
    else if (close[1] >= morningLow)
        buyPutCondition := false

    // Exit conditions
    if (inTrade)
        if (tradeDirection == 1 and low <= morningLow)
            strategy.close("Buy Call")
            label.new(bar_index, low, "Exit Call", color=color.red)
            alert("Exit Call: Price fell below stop", alert.freq_once_per_bar_close)
            buyCallCondition := false
            inTrade := false
            tradeDirection := 0
        if (tradeDirection == -1 and high >= morningHigh)
            strategy.close("Buy Put")
            label.new(bar_index, high, "Exit Put", color=color.green)
            alert("Exit Put: Price rose above stop", alert.freq_once_per_bar_close)
            buyPutCondition := false
            inTrade := false
            tradeDirection := 0

// Close all positions at 15:15 and prevent new trades for the rest of the day
if (hour == 15 and minute == 15)
    strategy.close_all()
    inTrade := false
    tradeDirection := 0
    noNewTrades := true
    alert("Close All Positions at 15:15", alert.freq_once_per_bar_close)

// Reset noNewTrades at the start of a new day
if (hour == 11 and minute == 0)
    noNewTrades := false