Strategi Pivot Point Breakout

Penulis:ChaoZhang, Tarikh: 2023-09-27 16:35:26
Tag:

Ringkasan

Pivot point breakout adalah strategi trend yang membeli saham apabila harga melangkau di atas rintangan baru-baru ini dan menjual apabila harga melangkau di bawah sokongan baru-baru ini untuk menangkap perubahan trend.

Logika Strategi

Strategi ini mengira titik pertengahan harga tertinggi dan harga terendah dalam tempoh sebagai garis rintangan dan sokongan baru-baru ini. Apabila harga memecahkan titik-titik pusingan ini, ia menandakan perubahan trend yang boleh diperdagangkan.

Secara khusus, ia mengira titik tengah harga tertinggi selama N1 hari yang lalu sebagai garis rintangan, dan titik tengah harga terendah selama N2 hari sebagai garis sokongan. Di sisi panjang, jika harga tertinggi hari ini melanggar di atas garis rintangan baru-baru ini, isyarat beli dicetuskan. Di sisi pendek, jika harga terendah hari ini melanggar di bawah garis sokongan baru-baru ini, isyarat jual dicetuskan. Pelabur boleh menyesuaikan N1 dan N2 untuk menyesuaikan kepekaan strategi.

Strategi ini adalah mudah dan mudah, tidak memerlukan ramalan pasaran, hanya mengesan penembusan titik pusingan untuk menangkap trend.

Analisis Kelebihan

  • Mudah dan mudah digunakan, sesuai untuk semua pelabur

Strategi ini sangat mudah dan intuitif, tidak memerlukan kemahiran ramalan, hanya menjejaki gangguan titik pusingan. Ini mengurangkan kesukaran operasi, menjadikannya sesuai untuk pelabur dari semua peringkat.

  • Mencatatkan perubahan trend dengan berkesan dan menyesuaikan kedudukan dengan sewajarnya

Penembusan titik pusingan adalah isyarat yang terkenal untuk perubahan trend. Strategi boleh bertindak balas dengan tepat pada masanya apabila perubahan trend, menyesuaikan kedudukan untuk mengelakkan terperangkap.

  • Parameter yang boleh disesuaikan untuk menyesuaikan fleksibiliti strategi

Pelabur boleh menyesuaikan jumlah hari untuk melihat ke kiri dan ke kanan, yang menyesuaikan kepekaan strategi.

  • Mudah digabungkan dengan strategi lain untuk fleksibiliti

Strategi ini terutamanya menyediakan trend berikut. Ia boleh dengan mudah digabungkan dengan strategi masa lain untuk meningkatkan pulangan keseluruhan.

Analisis Risiko

  • Kesan kelewatan yang berpotensi

Strategi ini memerlukan pengumpulan data untuk mengenal pasti perubahan trend, yang boleh menyebabkan kelewatan tertentu dalam isyarat. Perlu melihat pembalikan harga sementara isyarat masih berterusan dalam trend asal.

  • Risiko pemasangan palsu

Pasaran mungkin mempunyai pembiasan palsu jangka pendek dari titik pusingan. Pelabur memerlukan kemahiran tertentu untuk menangani whipsaws dan mengelakkan terperangkap.

  • Pengeluaran yang lebih besar

Strategi ini sepenuhnya mengikuti trend, oleh itu mempunyai risiko penarikan yang agak besar. Pelabur perlu mempertimbangkan toleransi risiko mereka sendiri. Juga boleh mengurangkan saiz kedudukan untuk mengurangkan penarikan.

  • Perlu mengawal kekerapan perdagangan

Parameter yang terlalu sensitif boleh menyebabkan kekerapan perdagangan yang berlebihan. Perlu menyesuaikan parameter dengan betul untuk mengawal bilangan dagangan. Tempoh penahan minimum juga dapat membantu kekerapan yang lebih rendah.

Arahan pengoptimuman

  • Mengoptimumkan penyesuaian parameter

Boleh menguji semula dan mengoptimumkan N hari untuk tertinggi dan terendah untuk mencari campuran parameter terbaik dalam jangka panjang. Juga boleh menyesuaikan parameter secara dinamik berdasarkan keadaan pasaran, menggunakan tetapan yang lebih sensitif apabila trend kuat.

  • Tambah kekuatan daripada pelarian

Dapat menetapkan keperluan magnitud minimum untuk pecah untuk mengelakkan pecah palsu kecil.

  • Tambah penunjuk lain sebagai penapis

Boleh menambah penunjuk teknikal lain seperti RSI, KD dan lain-lain. Jika pecah sejajar dengan perbezaan penunjuk, isyarat lebih berkesan.

  • Meningkatkan saiz kedudukan

Boleh ukuran kedudukan secara dinamik berdasarkan keadaan pasaran untuk mengawal risiko. Hedges boleh dihentikan untuk mengelakkan kerugian besar. Juga boleh menyesuaikan saiz berdasarkan kekuatan trend yang sedang berlangsung.

Kesimpulan

Strategi titik pusingan merakam trend dengan mudah melalui titik pusingan, sesuai untuk pelbagai pelabur. Kelebihannya adalah kesederhanaan dan menangkap perubahan trend dengan berkesan, tetapi ia juga mempunyai beberapa masalah yang tertinggal, risiko whipsaw dan penarikan yang besar. Penyesuaian parameter, menambah penapis dan meningkatkan saiz kedudukan dapat meningkatkan kestabilan strategi. Secara keseluruhan ia sesuai untuk pelabur yang mencari trend yang mudah diikuti, tetapi risiko perlu diurus dengan betul.


/*backtest
start: 2023-08-27 00:00:00
end: 2023-09-26 00:00:00
period: 2h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © EduardoMattje

//@version=5
strategy("Pivot Point Breakout", "PPB", true, default_qty_type=strategy.percent_of_equity, default_qty_value=100, process_orders_on_close=true)

// Constants

var L_PIVOT_HIGH = "Pivot high"
var L_PIVOT_LOW = "Pivot low"

var LEFT = "Left"
var RIGHT = "Right"

var BOTH = "Both"
var LONG = "Long"
var SHORT = "Short"

var DATES = "Date selection"
var DATES_TOOLTIP = "Change it to limit the trades for the given time interval.\n\nLeave it to disable this behaviour."

// Inputs

var orderDirection = input.string(LONG, "Order direction", options=[BOTH, LONG, SHORT])

var leftHigh = input.int(3, LEFT, minval=0, inline=L_PIVOT_HIGH, group=L_PIVOT_HIGH)
var rightHigh = input.int(3, RIGHT, minval=0, inline=L_PIVOT_HIGH, group=L_PIVOT_HIGH)

var leftLow = input.int(3, LEFT, minval=0, inline=L_PIVOT_LOW, group=L_PIVOT_LOW)
var rightLow = input.int(3, RIGHT, minval=0, inline=L_PIVOT_LOW, group=L_PIVOT_LOW)

var startDate = input(0, "Starting date", group=DATES)
var endDate = input(0, "Final date", group=DATES)

//

var float lastHigh = na
var float lastLow = na

lowPivot = ta.pivotlow(leftLow, rightLow)
highPivot = ta.pivothigh(leftHigh, rightHigh)

f_updateLevels(pivot_) => 
    var float pastLevel = na
    
    if not na(pivot_)
        pastLevel := pivot_
    
    pastLevel
    
lastLow := f_updateLevels(lowPivot)
lastHigh := f_updateLevels(highPivot)

// Validates the time interval

validTrade =  true

// Orders

if high > lastHigh
    strategy.entry("Long", strategy.long, when=orderDirection != SHORT and validTrade)
    strategy.close("Short", when=orderDirection == SHORT)
if low < lastLow
    strategy.entry("Short", strategy.short, when=orderDirection != LONG and validTrade)
    strategy.close("Long", when=orderDirection == LONG)
    
// Plots

plot(lastLow, "Last pivot low", color.red, offset=1)
plot(lastHigh, "Last pivot high", color.teal, offset=1)

plotshape(lowPivot, "Pivot low", location=location.belowbar, color=color.red, offset=-rightLow)
plotshape(highPivot, "Pivot high", color=color.teal, offset=-rightHigh)


Lebih lanjut