Sumber daya yang dimuat... Pemuatan...

Strategi Pivot Reversal dengan Pivot Exit

Penulis:ChaoZhangTanggal: 2024-04-30 15:57:54
Tag:

img

Gambaran umum

Strategi ini menggunakan Pivot Points untuk mengidentifikasi titik pembalikan pasar dan membuat keputusan perdagangan berdasarkan mereka. Ketika Pivot High terbentuk dalam 4 lilin terakhir di sebelah kiri, strategi memasuki posisi panjang; ketika Pivot Low terbentuk dalam 4 lilin terakhir di sebelah kiri, strategi memasuki posisi pendek. Stop loss ditetapkan pada satu ukuran tik (syminfo.mintick) di atas atau di bawah harga masuk. Ada dua kondisi keluar: 1) keluar ketika titik pivot berlawanan berikutnya muncul; 2) keluar ketika kerugian mengambang mencapai 30%.

Prinsip Strategi

  1. Gunakan fungsi ta.pivothigh (() dan ta.pivotlow (() untuk menghitung Pivot High (swh) dan Pivot Low (swl) dalam kisaran 4 lilin di sebelah kiri dan 2 lilin di sebelah kanan.
  2. Ketika Pivot High ada (swh_cond), update harga tertinggi (hprice), dan ketika level tertinggi saat ini lebih tinggi dari level tertinggi sebelumnya, aktifkan kondisi entri panjang (le).
  3. Ketika kondisi entri panjang (le) terpenuhi, masukkan posisi panjang pada satu ukuran tick (syminfo.mintick) di atas Pivot High.
  4. Demikian pula, ketika Pivot Low ada (swl_cond), perbarui harga terendah (lprice), dan ketika rendah saat ini lebih rendah dari rendah sebelumnya, aktifkan kondisi entri pendek (se).
  5. Ketika kondisi masuk pendek (se) terpenuhi, masukkan posisi pendek pada satu ukuran tick (syminfo.mintick) di bawah Pivot Low.
  6. Dalam fungsi exitAtNextPivot(), jika memegang posisi panjang, atur stop loss pada satu ukuran tick di bawah Pivot Low berikutnya; jika memegang posisi pendek, atur stop loss pada satu ukuran tick di atas Pivot High berikutnya.
  7. Dalam fungsi exitIfProfitLessThirtyPercent(, hitung persentase laba rugi untuk posisi panjang dan pendek, dan tutup posisi jika kerugian melebihi 30%.

Keuntungan Strategi

  1. Titik Pivot dapat mencerminkan tingkat dukungan dan resistensi di pasar, dan merupakan indikator analisis teknis yang umum digunakan dengan pengakuan pasar tertentu.
  2. Masuk pada titik Pivot bisa menangkap peluang pembalikan pasar.
  3. Dua kondisi keluar ditetapkan, satu didasarkan pada titik pivot bertentangan berikutnya untuk keluar teknis, dan yang lainnya berdasarkan persentase kerugian untuk keluar kontrol risiko, yang dapat mengendalikan strategi drawdown sampai batas tertentu.

Risiko Strategi

  1. Indikator Pivot Point sendiri memiliki keterlambatan tertentu dan masalah sinyal yang sering, dan mungkin tidak berkinerja baik di pasar yang berfluktuasi.
  2. Parameter perhitungan tetap dari 4 lilin dan 2 lilin mungkin tidak berlaku untuk semua kondisi pasar, karena tidak memiliki fleksibilitas dan fleksibilitas tertentu.
  3. Stop loss ditetapkan dekat dengan harga masuk (ukuran satu tik), yang dapat dibuang selama fluktuasi pasar yang keras.
  4. Pengaturan stop loss 30% mungkin terlalu longgar, dengan amplitudo drawdown yang besar.

Arah Optimasi Strategi

  1. Cobalah untuk menggunakan jenis indikator Pivot Point lainnya, seperti Faktor Pivot Point, Poin Pivot Weighted, dll, untuk meningkatkan sensitivitas dan ketepatan waktu indikator.
  2. Jumlah lilin kiri dan kanan dapat digunakan sebagai parameter input, dan nilai optimal dapat ditemukan melalui optimasi parameter.
  3. Posisi stop loss dapat dioptimalkan menjadi ATR atau persentase stop loss. Yang pertama dapat menyesuaikan dengan perubahan volatilitas pasar, sementara yang terakhir dapat membatasi risiko dalam kisaran yang dapat dikontrol.
  4. Kondisi stop loss 30% dapat diperketat untuk mengurangi penarikan strategi. Selain itu, kondisi stop profit persentase dapat ditambahkan untuk mengelola keuntungan dan kerugian yang mengambang.
  5. Kondisi penyaringan lainnya, seperti penyaringan tren dan penyaringan volatilitas, dapat ditumpukkan atas dasar Pivot Point breakout untuk meningkatkan kualitas sinyal.

Ringkasan

Strategi ini membangun sistem perdagangan bidirectional berdasarkan indikator Pivot Point, menangkap peluang pembalikan pasar dengan pergi panjang pada Pivot Highs dan pendek pada Pivot Lows. Strategi ini memiliki dasar teoritis dan nilai praktis tertentu, tetapi karena keterbatasan indikator Pivot Point itu sendiri, strategi dapat menghadapi beberapa risiko dan tantangan dalam operasi yang sebenarnya. Dengan mengoptimalkan jenis indikator Pivot Point, parameter, kondisi penyaringan, stop loss dan pengambilan keuntungan, dll., diharapkan untuk meningkatkan ketahanan dan profitabilitas strategi.


/*backtest
start: 2023-04-24 00:00:00
end: 2024-04-29 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("Pivot Reversal Strategy with Pivot Exit", overlay=true)

leftBars = input(4)
rightBars = input(2)

var float dailyEquity = na

// Reset equity to $10,000 at the beginning of each day
isNewDay = ta.change(time("D")) != 0
if (isNewDay)
    dailyEquity := 10000

// Calculate pivot highs and lows
swh = ta.pivothigh(leftBars, rightBars)
swl = ta.pivotlow(leftBars, rightBars)

// Define long entry condition
swh_cond = not na(swh)
hprice = 0.0
hprice := swh_cond ? swh : hprice[1]
le = false
le := swh_cond ? true : (le[1] and high > hprice ? false : le[1])

// Enter long position if long entry condition is met
if (le)
    strategy.entry("PivRevLE", strategy.long, comment="EnterLong", stop=hprice + syminfo.mintick)

// Define short entry condition
swl_cond = not na(swl)
lprice = 0.0
lprice := swl_cond ? swl : lprice[1]
se = false
se := swl_cond ? true : (se[1] and low < lprice ? false : se[1])

// Enter short position if short entry condition is met
if (se)
    strategy.entry("PivRevSE", strategy.short, comment="EnterShort", stop=lprice - syminfo.mintick)

// Exit condition: Exit at the next pivot point
exitAtNextPivot() =>
    if strategy.opentrades > 0
        if strategy.position_size > 0
            // Exiting long position at next pivot low
            if not na(swl)
                strategy.exit("ExitLong", "PivRevLE", stop=swl - syminfo.mintick)
        else
            // Exiting short position at next pivot high
            if not na(swh)
                strategy.exit("ExitShort", "PivRevSE", stop=swh + syminfo.mintick)

// Call exitAtNextPivot function
exitAtNextPivot()

// Exit condition: Exit if profit is less than 30%
exitIfProfitLessThanThirtyPercent() =>
    if strategy.opentrades > 0
        if strategy.position_size > 0
            // Calculate profit percentage for long position
            profit_percentage_long = (close - strategy.position_avg_price) / strategy.position_avg_price * 100
            // Exiting long position if profit is less than 30%
            if profit_percentage_long < -30
                strategy.close("PivRevLE")
        else
            // Calculate profit percentage for short position
            profit_percentage_short = (strategy.position_avg_price - close) / strategy.position_avg_price * 100
            // Exiting short position if profit is less than 30%
            if profit_percentage_short < -30
                strategy.close("PivRevSE")

// Call exitIfProfitLessThanThirtyPercent function
exitIfProfitLessThanThirtyPercent()


Lebih banyak