Strategi perdagangan berdasarkan pembalikan dan keluar titik pangsi


Tarikh penciptaan: 2024-04-30 15:57:54 Akhirnya diubah suai: 2024-04-30 15:57:54
Salin: 0 Bilangan klik: 753
1
fokus pada
1617
Pengikut

Strategi perdagangan berdasarkan pembalikan dan keluar titik pangsi

Gambaran keseluruhan

Strategi ini berdasarkan pada titik pivot untuk mengenal pasti titik balik pasaran dan berdagang berdasarkan pada itu. Strategi membuka kedudukan apabila pasaran muncul di dalam garis 4 K kiri dengan titik pivot tinggi. Strategi membuka kedudukan kosong apabila pasaran muncul di dalam garis 4 K kiri dengan titik pivot rendah.

Prinsip Strategi

  1. Menggunakan fungsi ta.pivothigh ((() dan ta.pivotlow ((() untuk mengira titik-titik pusingan yang tinggi (((swh) dan rendah (((swl) dalam julat 4 baris K di sebelah kiri dan 2 baris K di sebelah kanan.
  2. Apabila titik puncak titik pusat wujud, kemas kini harga tertinggi, dan apabila memenuhi harga tertinggi semasa yang lebih tinggi daripada harga tertinggi sebelumnya, buka syarat untuk melakukan banyak masuk.
  3. Apabila syarat bermain berganda ((le) ditubuhkan, buka kedudukan satu unit perubahan terkecil di atas titik tinggi titik pusat (syminfo.mintick) dan buat plus.
  4. Serupa dengan melakukan lebih, apabila titik pusat titik rendah wujud ((swl_cond), mengemas kini harga minimum ((lprice), dan apabila memenuhi harga minimum semasa yang lebih rendah daripada harga minimum sebelumnya, membuka syarat masuk ke dalam kedudukan kosong ((se) ).
  5. Apabila syarat masuk ke dalam perdagangan kosong (se) ditetapkan, buka kedudukan satu unit perubahan terkecil di bawah titik rendah (syminfo.mintick) di titik pusat dan kosongkan.
  6. Dalam fungsi exitAtNextPivot (), jika memegang kedudukan bermulut, ia akan berhenti satu unit perubahan minimum di bawah titik rendah titik pusat seterusnya; jika memegang kedudukan kosong, ia akan berhenti satu unit perubahan minimum di atas titik tinggi titik pusat seterusnya.
  7. Dalam fungsi exitIfProfitLessThanThirtyPercent () untuk mengira peratusan keuntungan dan kerugian untuk kedudukan overhead dan kosong, jika kerugian melebihi 30%, maka kedudukan kosong.

Kelebihan Strategik

  1. Titik pusat dapat mencerminkan kedudukan sokongan dan tekanan pasaran dengan lebih baik, merupakan indikator analisis teknikal yang biasa digunakan dan mempunyai beberapa pengiktirafan pasaran.
  2. Bermain di titik-titik utama untuk menangkap peluang untuk membalikkan pasaran.
  3. Dua syarat keluar ditetapkan, satu adalah keluar teknikal berdasarkan titik pusat yang berlawanan dengan arah yang berlawanan, dan yang lain adalah keluar kawalan angin berdasarkan peratusan kerugian, yang dapat mengawal strategi penarikan balik hingga tahap tertentu.

Risiko Strategik

  1. Penunjuk titik-titik pusat itu sendiri mempunyai masalah ketinggalan dan kekerapan isyarat, yang mungkin tidak berfungsi dengan baik dalam pasaran yang bergolak.
  2. Parameter pengiraan 4 K dan 2 K yang tetap mungkin tidak berlaku untuk semua keadaan pasaran, kurangnya kebolehan beradaptasi dan fleksibiliti.
  3. Kedudukan hentian lebih dekat dengan harga masuk ((satu unit perubahan terkecil), dan mungkin ditinggalkan ketika pasaran bergolak.
  4. Pengaturan yang boleh menghentikan kerugian 30% mungkin terlalu longgar dan kemungkinan besar untuk menarik balik.

Arah pengoptimuman strategi

  1. Anda boleh cuba menggunakan jenis lain dari penunjuk titik pusat, seperti titik pusat faktor, titik pusat berat, dan lain-lain, untuk meningkatkan kepekaan dan masa nyata.
  2. Nombor kanan dan kiri K boleh digunakan sebagai parameter input, dengan mengoptimumkan parameter untuk mencari nilai terbaik.
  3. Kedudukan hentian boleh dioptimumkan sebagai ATR atau peratusan hentian, yang pertama dapat menyesuaikan diri dengan perubahan kadar turun naik pasaran, yang kedua dapat mengehadkan risiko dalam lingkungan yang terkawal.
  4. Keperluan kedudukan rata 30% boleh diperketat, sehingga mengurangkan strategi penarikan balik. Di samping itu, syarat kedudukan rata peratusan keuntungan boleh ditingkatkan untuk menguruskan kenaikan dan penurunan pada masa yang sama.
  5. Anda boleh meletakkan syarat penapisan lain, seperti penapisan trend, penapisan kadar lonjakan, dan lain-lain, untuk meningkatkan kualiti isyarat.

ringkaskan

Strategi ini membina sistem perdagangan dua hala berdasarkan petunjuk titik pivot, untuk menangkap peluang pembalikan pasaran dengan melakukan lebih banyak pada titik pivot tinggi dan kosong pada titik pivot rendah. Strategi ini mempunyai asas teori dan nilai praktikal, tetapi kerana keterbatasan indikator titik pivot itu sendiri, strategi ini mungkin menghadapi beberapa risiko dan cabaran dalam operasi sebenar. Dengan mengoptimumkan jenis indikator titik pivot, parameter, keadaan penapisan, dan stop loss, strategi ini dijangka meningkatkan lagi kestabilan dan keuntungan.

Kod 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()