Strategi perdagangan berdasarkan pembalikan titik pivot dan keluar


Tanggal Pembuatan: 2024-04-30 15:57:54 Akhirnya memodifikasi: 2024-04-30 15:57:54
menyalin: 0 Jumlah klik: 753
1
fokus pada
1617
Pengikut

Strategi perdagangan berdasarkan pembalikan titik pivot dan keluar

Ringkasan

Strategi ini didasarkan pada titik pivot untuk mengidentifikasi titik balik pasar dan melakukan perdagangan berdasarkan hal tersebut. Strategi ini membuka posisi lebih banyak ketika pasar berada di titik pivot tinggi di garis 4K sebelah kiri (Pivot High); Strategi ini membuka posisi kosong ketika pasar berada di titik pivot rendah di garis 4K sebelah kiri (Pivot Low). Stop loss strategi ini ditetapkan pada satuan pergerakan harga terendah di atas dan di bawah harga yang dibuka.

Prinsip Strategi

  1. Menggunakan fungsi ta.pivothigh () dan ta.pivotlow () untuk menghitung titik sumbu dalam kisaran 4 garis K di sebelah kiri dan 2 garis K di sebelah kanan, titik sumbu tinggi (swh) dan titik rendah (swl).
  2. Ketika titik puncak titik sumbu ada, pembaruan harga tertinggi (hprice), dan saat memenuhi harga tertinggi saat ini lebih tinggi dari harga tertinggi sebelumnya, membuka kondisi multiplayer (le) .
  3. Ketika kondisi bermain lebih banyak (le) tercipta, buka posisi satu satuan perubahan terkecil (syminfo.mintick) di atas titik tinggi titik sumbu dan lakukan lebih banyak (le).
  4. Mirip dengan melakukan over, saat titik terendah pivot exists (swl_second), update minimum harga (lprice), dan saat memenuhi minimum harga saat ini lebih rendah dari minimum harga sebelumnya, buka short entry condition (se).
  5. Ketika kondisi masuk ke dalam posisi kosong ditetapkan, posisi dibuka di posisi satu satuan perubahan terkecil di bawah titik terendah pada titik sumbu pusat.
  6. Dalam fungsi exitAtNextPivot (), jika memegang posisi multihead, maka akan berhenti satu satuan perubahan terkecil di bawah titik rendah titik pusat berikutnya; jika memegang posisi kosong, maka akan berhenti satu satuan perubahan terkecil di atas titik tinggi titik pusat berikutnya.
  7. Dalam fungsi exitIfProfitLessThanThirtyPercent () untuk menghitung persentase keuntungan dan kerugian dari posisi overhead dan kosong, jika kerugian lebih dari 30%, maka posisi kosong.

Keunggulan Strategis

  1. Titik pivot lebih baik mencerminkan posisi dukungan dan tekanan pasar, merupakan indikator analisis teknis yang umum digunakan, dengan tingkat pengakuan pasar tertentu.
  2. Bermain di titik pivot, Anda bisa menangkap peluang untuk membalikkan pasar.
  3. Ada dua kondisi keluar yang ditetapkan, satu adalah technical exit berdasarkan pivot point ke arah yang berlawanan dengan pivot point berikutnya, dan yang lainnya adalah wind controlled exit berdasarkan persentase kerugian, yang dapat mengontrol strategi withdrawal sampai batas tertentu.

Risiko Strategis

  1. Indikator titik pivot sendiri juga memiliki beberapa masalah keterlambatan dan frekuensi sinyal, yang mungkin tidak berkinerja baik di pasar yang bergoyang.
  2. Parameter penghitungan 4 K-line dan 2 K-line yang tetap mungkin tidak berlaku untuk semua kondisi pasar, kurangnya fleksibilitas dan fleksibilitas tertentu.
  3. Posisi stop loss lebih dekat dengan harga masuk ((satu unit perubahan terkecil)), dan mungkin akan ditinggalkan ketika pasar bergejolak.
  4. Pengaturan yang hanya bisa menghentikan kerugian sebesar 30% mungkin terlalu longgar, dan kemungkinan penarikan terlalu besar.

Arah optimasi strategi

  1. Anda dapat mencoba menggunakan jenis lain dari indikator pivot point, seperti pivot point faktor, pivot point berat, dan lain-lain, untuk meningkatkan sensitivitas dan waktu nyata indikator.
  2. Garis kanan dan kiri K dapat digunakan sebagai parameter input, dengan optimasi parameter untuk mencari nilai optimal.
  3. Posisi stop loss dapat dioptimalkan untuk ATR atau stop loss persentase, yang pertama dapat beradaptasi dengan perubahan volatilitas pasar, yang kedua dapat membatasi risiko dalam batas yang dapat dikendalikan.
  4. Persentase kerugian 30 persen dari kondisi posisi terpadat dapat diperketat, sehingga mengurangi strategi mundur. Selain itu, juga dapat meningkatkan persentase keuntungan dari kondisi terpadat, sehingga float dan float loss dapat dikelola secara bersamaan.
  5. Bisa dilapisi dengan kondisi pemfilteran lain, seperti pemfilteran tren, pemfilteran tingkat fluktuasi, dan lain-lain, untuk meningkatkan kualitas sinyal.

Meringkaskan

Strategi ini didasarkan pada indikator pivot point untuk membangun sistem perdagangan dua arah, dengan melakukan lebih banyak di titik pivot tinggi, dan mengambil posisi kosong di titik pivot rendah untuk menangkap peluang reversal pasar. Strategi ini memiliki beberapa dasar teoritis dan nilai praktis, tetapi karena keterbatasan indikator pivot point itu sendiri, strategi ini mungkin menghadapi beberapa risiko dan tantangan dalam operasi nyata.

Kode Sumber 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()