Sumber dimuat naik... memuat...

Strategi pembalikan Pivot dengan Pivot Exit

Penulis:ChaoZhang, Tarikh: 2024-04-30 15:57:54
Tag:

img

Ringkasan

Strategi ini menggunakan Pivot Points untuk mengenal pasti titik pembalikan pasaran dan membuat keputusan perdagangan berdasarkan mereka. Apabila Pivot High terbentuk dalam 4 lilin terakhir di sebelah kiri, strategi memasuki kedudukan panjang; apabila Pivot Low terbentuk dalam 4 lilin terakhir di sebelah kiri, strategi memasuki kedudukan pendek. Stop loss ditetapkan pada satu saiz tik (syminfo.mintick) di atas atau di bawah harga kemasukan. Terdapat dua syarat keluar: 1) keluar apabila titik pusingan bertentangan seterusnya muncul; 2) keluar apabila kerugian terapung mencapai 30%.

Prinsip Strategi

  1. Gunakan fungsi ta.pivothigh (() dan ta.pivotlow (() untuk mengira Pivot High (swh) dan Pivot Low (swl) dalam julat 4 lilin di sebelah kiri dan 2 lilin di sebelah kanan.
  2. Apabila Pivot High wujud (swh_cond), mengemas kini harga tertinggi (hprice), dan apabila paras tertinggi semasa lebih tinggi daripada paras tertinggi sebelumnya, aktifkan syarat kemasukan panjang (le).
  3. Apabila syarat kemasukan panjang (le) dipenuhi, masukkan kedudukan panjang pada satu saiz tik (syminfo.mintick) di atas Pivot High.
  4. Begitu juga, apabila Pivot Low wujud (swl_cond), mengemas kini harga terendah (lprice), dan apabila rendah semasa lebih rendah daripada rendah sebelumnya, aktifkan syarat kemasukan pendek (se).
  5. Apabila syarat kemasukan pendek (se) dipenuhi, masukkan kedudukan pendek pada satu saiz tik (syminfo.mintick) di bawah Pivot Low.
  6. Dalam fungsi exitAtNextPivot(), jika memegang kedudukan panjang, tetapkan stop loss pada satu saiz tanda di bawah Pivot Low seterusnya; jika memegang kedudukan pendek, tetapkan stop loss pada satu saiz tanda di atas Pivot High seterusnya.
  7. Dalam fungsi exitIfProfitLessThirtyPercent ((), kira peratusan keuntungan dan kerugian untuk kedudukan panjang dan pendek dan tutup kedudukan jika kerugian melebihi 30%.

Kelebihan Strategi

  1. Titik Pivot boleh mencerminkan tahap sokongan dan rintangan di pasaran, dan merupakan penunjuk analisis teknikal yang biasa digunakan dengan pengiktirafan pasaran tertentu.
  2. Memasuki titik Pivot boleh menangkap peluang pembalikan pasaran.
  3. Dua syarat keluar ditetapkan, satu berdasarkan titik pusingan bertentangan seterusnya untuk keluar teknikal, dan yang lain berdasarkan peratusan kerugian untuk keluar kawalan risiko, yang boleh mengawal pengambilan strategi ke tahap tertentu.

Risiko Strategi

  1. Penunjuk Titik Pivot itu sendiri mempunyai kelewatan tertentu dan masalah isyarat yang kerap, dan mungkin tidak berfungsi dengan baik di pasaran yang turun naik.
  2. Parameter pengiraan tetap untuk 4 lilin dan 2 lilin mungkin tidak boleh digunakan untuk semua keadaan pasaran, tidak mempunyai kebolehsesuaian dan fleksibiliti tertentu.
  3. Stop loss ditetapkan berhampiran harga kemasukan (saiz satu tik), yang boleh dibuang semasa turun naik pasaran yang ganas.
  4. Tetapan henti kehilangan 30% mungkin terlalu longgar, dengan amplitud penarikan yang besar.

Arahan Pengoptimuman Strategi

  1. Cuba gunakan jenis penunjuk Titik Pivot yang lain, seperti Titik Titik Pivot Faktor, Titik Titik Pivot Bertimbang, dan lain-lain, untuk meningkatkan kepekaan dan ketepatan masa penunjuk.
  2. Bilangan lilin kiri dan kanan boleh digunakan sebagai parameter input, dan nilai optimum boleh didapati melalui pengoptimuman parameter.
  3. Kedudukan stop loss boleh dioptimumkan kepada ATR atau peratusan stop loss. Yang pertama dapat menyesuaikan diri dengan perubahan dalam turun naik pasaran, sementara yang terakhir dapat mengehadkan risiko dalam julat yang boleh dikawal.
  4. Keadaan hentian kerugian 30% boleh diperketatkan untuk mengurangkan pengeluaran strategi. Di samping itu, syarat hentian peratusan keuntungan boleh ditambah untuk menguruskan kedua-dua keuntungan dan kerugian terapung.
  5. Keadaan penapisan lain, seperti penapisan trend dan penapisan turun naik, boleh ditempatkan di atas asas pecah titik Pivot untuk meningkatkan kualiti isyarat.

Ringkasan

Strategi ini membina sistem perdagangan dua arah berdasarkan penunjuk Titik Pivot, menangkap peluang pembalikan pasaran dengan pergi lama di Puncak Titik Pivot dan pendek di Titik Pivot. Strategi ini mempunyai asas teori dan nilai praktikal tertentu, tetapi disebabkan oleh batasan penunjuk Titik Pivot itu sendiri, strategi ini mungkin menghadapi beberapa risiko dan cabaran dalam operasi sebenar. Dengan mengoptimumkan jenis penunjuk Titik Pivot, parameter, syarat penapisan, berhenti kerugian dan mengambil keuntungan, dll., diharapkan untuk meningkatkan lagi ketahanan dan keuntungan 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 lanjut