Strategi SuperTrend Pivot di Berbagai Kerangka Waktu

Penulis:ChaoZhang, Tanggal: 2024-01-31 17:29:37
Tag:

img

Gambaran umum

Strategi ini menggabungkan indikator Pivot Points dan Average True Range Bands untuk menerapkan sistem pelacakan tren di beberapa kerangka waktu.

Logika Strategi

Strategi ini terutama didasarkan pada dua indikator:

  1. Titik Pivot: Menghitung rata-rata harga tertinggi, terendah dan penutupan selama periode tertentu untuk menentukan titik pivot atas dan bawah.

  2. Rata-rata True Range Bands: Menghitung rentang rata-rata benar selama periode tertentu, dan memindahkan band tengah ke atas dan ke bawah untuk membentuk saluran.

Logika perdagangan khusus adalah:

Ketika harga menembus saluran Average True Range, ambil posisi panjang atau pendek di sepanjang arah breakout. Ketika harga kembali ke saluran, tutup posisi. Juga, ketika harga menembus titik pivot atas, ambil posisi panjang; ketika harga menembus titik pivot bawah, ambil posisi pendek.

Strategi ini juga memperkenalkan konsep garis tengah pivot. Ketika mengambil keuntungan melanggar garis tengah, dimungkinkan untuk menutup setengah posisi untuk mengunci beberapa keuntungan dan mengendalikan risiko.

Analisis Keuntungan

Strategi ini memiliki keuntungan berikut:

  1. Desain jangka waktu yang berbeda. Siklus panjang dan menengah menentukan tren utama sementara siklus pendek menentukan entri tertentu.

  2. Garis tengah pivot memberikan opsi untuk menutup setengah posisi, mengunci beberapa keuntungan sambil memastikan perdagangan yang menang.

  3. Rata-rata True Range Bands memberikan tingkat stop loss yang jelas.

  4. Strategi ini memiliki beberapa parameter, mudah dioptimalkan untuk kombinasi parameter terbaik.

  5. Hal ini menghindari risiko kebocoran palsu.

Analisis Risiko

Strategi ini juga memiliki beberapa risiko:

  1. Risiko stop loss yang lebih besar selama volatilitas pasar yang tinggi.

  2. Garis tengah dapat sering memicu stop loss selama konsolidasi pasar.

  3. Pemilihan parameter yang tidak benar dapat mengakibatkan terlalu sedikit atau terlalu sering perdagangan.

  4. Pelanggaran titik pivot baru-baru ini bisa menjadi pemutusan palsu.

Arahan Optimasi

Strategi dapat dioptimalkan dari aspek berikut:

  1. Gabungkan lebih banyak filter seperti volume dan Bollinger Bands untuk menghindari sinyal palsu.

  2. Mengoptimalkan periode Pivot Points dan ATR untuk menemukan kombinasi parameter terbaik.

  3. Tetapkan zona buffer di sekitar garis tengah untuk menghindari pemicu yang sering.

  4. Tambahkan filter tren yang tepat untuk memastikan operasi di sepanjang tren utama.

Kesimpulan

Secara umum, ini adalah strategi pelacakan tren yang sangat praktis. Ini memecahkan kesulitan stop loss umum dari sistem tren dan mencapai perdagangan tren yang dikendalikan risiko. Ini adalah strategi yang sangat disarankan. Dengan optimasi dan perbaikan yang tepat, kinerjanya dapat ditingkatkan lebih lanjut.


/*backtest
start: 2023-12-01 00:00:00
end: 2023-12-31 23:59:59
period: 1h
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/
// © LonesomeTheBlue

//@version=4
strategy("Pivot Point SuperTrend [Backtest]", overlay = true)
prd = input(defval = 2, title="Pivot Point Period", minval = 1, maxval = 50)
Factor=input(defval = 3, title = "ATR Factor", minval = 1, step = 0.1)
Pd=input(defval = 10, title = "ATR Period", minval=1)
usecenter = input(defval = false, title="Use Center Line to Close Entry for 50%")
showpivot = input(defval = false, title="Show Pivot Points")
showcl = input(defval = false, title="Show PP Center Line")


float ph = na
float pl = na
ph := pivothigh(prd, prd)
pl := pivotlow(prd, prd)

plotshape(ph and showpivot, text="H",  style=shape.labeldown, color=na, textcolor=color.red, location=location.abovebar, transp=0, offset = -prd)
plotshape(pl and showpivot, text="L",  style=shape.labeldown, color=na, textcolor=color.lime, location=location.belowbar, transp=0, offset = -prd)

float center = na
center := center[1]
float lastpp = ph ? ph : pl ? pl : na
if lastpp
    if na(center)
        center := lastpp
    else
        center := (center * 2 + lastpp) / 3

Up = center - (Factor * atr(Pd))
Dn = center + (Factor * atr(Pd))

float TUp = na
float TDown = na
Trend = 0
TUp := close[1] > TUp[1] ? max(Up, TUp[1]) : Up
TDown := close[1] < TDown[1] ? min(Dn, TDown[1]) : Dn
Trend := close > TDown[1] ? 1: close < TUp[1]? -1: nz(Trend[1], 1)
Trailingsl = Trend == 1 ? TUp : TDown

linecolor = Trend == 1 and nz(Trend[1]) == 1 ? color.lime : Trend == -1 and nz(Trend[1]) == -1 ? color.red : na
plot(Trailingsl, color = linecolor ,  linewidth = 2, title = "PP SuperTrend")

plot(showcl ? center : na, color = showcl ? center < hl2 ? color.blue : color.red : na, transp = 0)

bsignal = Trend == 1 and Trend[1] == -1
ssignal = Trend == -1 and Trend[1] == 1

if bsignal
    strategy.entry("Buy", true, 2, comment = "Buy")
if ssignal
    strategy.entry("Sell", false, 2, comment = "Sell")

if strategy.position_size == 2 and center > hl2 and usecenter
    strategy.close("Buy", qty_percent = 50, comment = "close buy entry for 50%")
if strategy.position_size == -2 and center < hl2 and usecenter
    strategy.close("Sell", qty_percent = 50, comment = "close sell entry for 50%")
    
if change(Trend)
    strategy.close_all()

Lebih banyak