Sumber dimuat naik... memuat...

MORNING CANDLE BREAKOUT AND REVERSION STRATEGI

Penulis:ChaoZhang, Tarikh: 2024-07-31 14:16:42
Tag:OHLCMAATRRSI

img

Ringkasan

Strategi ini adalah sistem perdagangan intraday berdasarkan corak lilin pagi, terutama menggunakan titik tinggi dan rendah lilin 11:00 untuk menentukan trend pasaran. Idea terasnya adalah untuk pergi lama apabila harga memecahkan di atas tinggi lilin pagi dan pendek apabila ia memecahkan di bawah rendah, dengan syarat stop-loss yang sesuai. Pendekatan ini menggabungkan konsep trend-mengikuti dan pembalikan harga, bertujuan untuk menangkap pergerakan jangka pendek berikutan pecahnya tahap harga intraday yang penting.

Prinsip Strategi

Prinsip operasi strategi adalah seperti berikut:

  1. Mengenal pasti tahap utama: Strategi pertama mengenal pasti titik tertinggi dan terendah lilin pukul 11:00, menggunakan ini sebagai tahap rujukan utama.

  2. Isyarat kemasukan:

    • Isyarat panjang: Dihidupkan apabila harga penutupan memecahkan di atas paras tertinggi pagi untuk dua lilin berturut-turut.
    • Isyarat Pendek: Dihidupkan apabila harga penutupan pecah di bawah tahap rendah pagi untuk dua lilin berturut-turut.
  3. Tetapan Stop-Loss:

    • Long Stop-Loss: ditetapkan pada tahap terendah lilin pagi.
    • Stop-Loss Pendek: ditetapkan pada puncak lilin pagi.
  4. Mekanisme Keluar:

    • Stop-Loss Hit: Menutup kedudukan secara automatik apabila harga mencapai tahap stop-loss masing-masing.
    • Keluar Berasaskan Masa: Semua kedudukan ditutup secara automatik pada jam 15:15 untuk mengawal risiko semalaman.
  5. Sekatan Waktu Dagangan: Strategi ini tidak membuka dagangan baru selepas jam 15:15 untuk mengelakkan turun naik yang tidak normal berhampiran penutupan pasaran.

Kelebihan Strategi

  1. Peraturan Dagangan yang jelas: Strategi ini berdasarkan logik harga yang jelas dan pembalikan, menjadikannya mudah difahami dan dilaksanakan.

  2. Kawalan Risiko: Kawalan risiko yang berkesan untuk setiap perdagangan melalui titik stop-loss tetap.

  3. Penyesuaian keadaan pasaran: Strategi boleh menyesuaikan diri dengan keadaan turun naik pasaran yang berbeza berdasarkan julat harga yang terbentuk pada waktu pagi.

  4. Pelaksanaan automatik: Strategi ini boleh sepenuhnya automatik melalui pengaturcaraan, mengurangkan campur tangan manusia dan pengaruh emosi.

  5. Dagangan Intraday: Dengan menutup kedudukan sebelum akhir hari dagangan, risiko kedudukan semalam dielakkan.

  6. Fleksibiliti: Strategi boleh dioptimumkan untuk pasaran dan instrumen perdagangan yang berbeza dengan menyesuaikan parameter.

Risiko Strategi

  1. Risiko pecah palsu: Pasaran mungkin mengalami pecah palsu, yang membawa kepada keluar stop-loss yang kerap.

  2. Julat Volatiliti Terhad: Semasa tempoh turun naik yang rendah, strategi mungkin berjuang untuk mencetuskan isyarat perdagangan atau menjana keuntungan yang berkesan.

  3. Jangka Masa Tunggal: Bergantung hanya pada lilin 11:00 AM mungkin mengabaikan maklumat pasaran penting dari tempoh masa lain.

  4. Kekurangan Trend Following: Strategi tidak menetapkan syarat mengambil keuntungan, berpotensi gagal memanfaatkan sepenuhnya pergerakan trend yang kuat.

  5. Stop-Loss Tetap: Di pasaran yang sangat tidak menentu, stop-loss tetap mungkin terlalu dekat, yang membawa kepada keluar awal dari kedudukan yang menguntungkan.

  6. Kos Perdagangan: Masuk dan keluar yang kerap boleh mengakibatkan kos perdagangan yang tinggi, yang mempengaruhi pulangan keseluruhan.

Arahan Pengoptimuman Strategi

  1. Menggabungkan Analisis Pelbagai Jangka Masa: Gabungkan penilaian trend dari tempoh masa yang lebih lama untuk meningkatkan ketepatan perdagangan.

  2. Stop-Loss Dinamik: Gunakan kaedah seperti penunjuk ATR untuk menetapkan stop-loss dinamik, menyesuaikan diri dengan keadaan turun naik pasaran yang berbeza.

  3. Menambah Mekanisme mengambil keuntungan: Tetapkan syarat mengambil keuntungan berdasarkan nisbah risiko-balasan untuk meningkatkan nisbah keuntungan-kerugian strategi.

  4. Analisis Volume: Menggabungkan analisis jumlah untuk meningkatkan kebolehpercayaan isyarat pecah.

  5. Penapisan Negara Pasaran: Memperkenalkan penunjuk turun naik seperti ATR untuk mengurangkan kekerapan dagangan semasa tempoh turun naik yang rendah.

  6. Mengoptimumkan Waktu Masuk: Pertimbangkan untuk menggunakan penunjuk seperti RSI untuk perdagangan kontra-trend di kawasan yang terlalu banyak dibeli atau terlalu banyak dijual.

  7. Tambah Elemen Mengikuti Trend: Pertimbangkan untuk menggunakan hentian yang mengikuti untuk mengikuti trend semasa pecah yang kuat.

  8. Ujian balik dan pengoptimuman parameter: Lakukan ujian balik pada kombinasi parameter yang berbeza untuk mencari tetapan optimum.

Kesimpulan

Strategi Breakout dan Pembalikan Lilin Pagi adalah sistem dagangan intraday berdasarkan penembusan tahap utama. Ia menggunakan titik tinggi dan rendah lilin pukul 11:00 sebagai rujukan penting untuk menangkap trend jangka pendek melalui penembusan harga. Kekuatan strategi terletak pada peraturan yang jelas, risiko yang boleh dikawal, dan kesesuaian untuk pelaksanaan automatik. Walau bagaimanapun, ia juga menghadapi risiko berpotensi seperti penembusan palsu dan stop-loss tetap. Dengan memperkenalkan analisis pelbagai jangka masa, stop-loss dinamik, pengesahan jumlah, dan langkah pengoptimuman lain, kestabilan dan keuntungan strategi dapat ditingkatkan lagi. Secara keseluruhan, ini adalah rangka kerja strategi dengan asas yang baik yang, dengan pengoptimuman dan pengurusan risiko yang sesuai, berpotensi menjadi alat perdagangan yang berkesan.


/*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


Berkaitan

Lebih lanjut