
Super Support Resistance Trend Tracking adalah strategi trend tracking inovatif yang menggabungkan resistance point support dan super trend, dua indikator populer, dengan menambahkan filter tren tambahan untuk meningkatkan akurasi. Strategi ini terinspirasi dari Lonesome TheBlue’s resistance point support super trend tracking script, yang bertujuan untuk memberikan pedagang alat pelacakan tren yang andal, sambil meminimalkan sinyal palsu.
Strategi ini didasarkan pada penggabungan dari resistance point support dan super trend indicator, serta penambahan dari sebuah filter trend yang kuat. Pertama, ia menghitung highs dan lows dari resistance point support dalam periode yang ditentukan, yang merupakan titik acuan penting untuk analisis trend. Dengan menghitung rata-rata tertimbang, resistance point support ini membentuk garis tengah, yang lebih menyempurnakan keseluruhan indikator.
Selanjutnya, ATRs yang dihasilkan naik turun berdasarkan midline dan user-defined ATRs. Band-band ini akan menyesuaikan diri dengan pergerakan pasar, memberikan fleksibilitas pada strategi. Inti dari strategi supertrend yang mendukung titik-titik resistensi adalah mengidentifikasi dengan akurat tren dominan, yang bergeser dengan lancar antara sinyal multihead dan overhead saat harga berinteraksi dengan band supertrend.
Filter ini didasarkan pada Moving Average, yang secara dinamis menilai kekuatan dan arah tren. Dengan menggabungkan filter tren ini dengan sinyal supertrend dengan titik-titik resistensi dukungan yang asli, strategi ini bertujuan untuk membuat keputusan perdagangan yang lebih cerdas dan dapat diandalkan.
Peningkatan akurasi: penambahan filter tren untuk meningkatkan akurasi strategi dengan mengkonfirmasi arah tren keseluruhan sebelum menghasilkan sinyal.
Perpanjangan tren: Integrasi dari resistance point and supertrend and trend filter yang bertujuan untuk memperpanjang perdagangan selama tren pasar yang kuat, sehingga berpotensi memaksimalkan peluang keuntungan.
Mengurangi sinyal palsu: Perhitungan rata-rata tertimbang dari strategi ditambah dengan filter tren membantu meminimalkan sinyal palsu dan mengurangi lompatan di bawah kondisi pasar yang tidak pasti atau bertolak belakang.
Support Resistance Insights: Strategi ini terus memberikan support dan resistance tambahan berdasarkan titik support/resistance, memberikan informasi kontekstual yang berharga bagi trader.
Kepercayaan Parameter: Strategi ini sangat sensitif terhadap parameter siklus ATR dan ATR multiples, dan pengaturan parameter yang tidak tepat dapat menyebabkan kelebihan perdagangan atau kehilangan peluang.
Trend reversal: di dekat titik trend reversal, strategi dapat menghasilkan sinyal yang salah, menyebabkan kerugian yang tidak perlu. Harus dikombinasikan dengan stop loss untuk mengelola risiko.
Over-optimisasi: Parameter dapat dioptimalkan untuk mendapatkan kombinasi yang optimal, tetapi tidak memiliki prospektivitas. Perbedaan dalam praktik dan varietas harus dipertimbangkan untuk mempengaruhi pilihan parameter.
Risiko Posisi kosong: Strategi akan memasuki posisi kosong ketika harga keluar dari tren naik turun. Ini mungkin kehilangan peluang setelah tren terbentuk lagi.
Kombinasi dengan indikator lain: Anda dapat mempertimbangkan untuk menambahkan indikator volume transaksi atau volatilitas untuk meningkatkan kehandalan strategi.
Parameter dinamis: Metode untuk mengoptimalkan secara otomatis atau menyesuaikan parameter sesuai dengan kondisi pasar dapat dipelajari untuk membuat strategi lebih adaptif.
Strategi Stop Loss: Mempelajari bagaimana merancang mekanisme stop loss yang efektif untuk mengendalikan kerugian tunggal dengan mempertahankan logika strategi.
Adaptasi varietas: strategi penilaian Parameter dalam berbagai bagian dan instrumen, mengoptimalkan parameter sesuai dengan wilayah tertentu.
Strategi pelacakan tren supersupport resistance adalah strategi kuantitatif yang sangat menjanjikan. Strategi ini menunjukkan keunggulan unik dalam beberapa dimensi, seperti kesederhanaan, kemampuan untuk melacak tren. Strategi ini juga memiliki ruang untuk perbaikan, dioptimalkan dalam banyak hal, seperti parameter, stop loss, dan adaptasi varietas, yang dapat membuatnya menjadi alat kuantitatif yang lebih universal dan dapat diandalkan.
/*backtest
start: 2023-02-19 00:00:00
end: 2024-02-25 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
// © Julien_Eche
// Strategy based on "Pivot Point Supertrend" Indicator by LonesomeTheBlue
//@version=4
strategy("PPS", overlay=true, initial_capital=500000, currency=currency.USD, default_qty_type=strategy.cash, default_qty_value=50000)
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)
showpivot = input(defval = false, title="Show Pivot Points")
showlabel = input(defval = true, title="Show Buy/Sell Labels")
showcl = input(defval = false, title="Show PP Center Line")
showsr = input(defval = false, title="Show Support/Resistance")
// get Pivot High/Low
float ph = pivothigh(prd, prd)
float pl = pivotlow(prd, prd)
// drawl Pivot Points if "showpivot" is enabled
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)
// calculate the Center line using pivot points
var float center = na
float lastpp = ph ? ph : pl ? pl : na
if lastpp
if na(center)
center := lastpp
else
//weighted calculation
center := (center * 2 + lastpp) / 3
// upper/lower bands calculation
Up = center - (Factor * atr(Pd))
Dn = center + (Factor * atr(Pd))
// get the trend
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
// plot the trend
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)
// check and plot the signals
bsignal = Trend == 1 and Trend[1] == -1
ssignal = Trend == -1 and Trend[1] == 1
plotshape(bsignal and showlabel ? Trailingsl : na, title="Buy", text="Buy", location = location.absolute, style = shape.labelup, size = size.tiny, color = color.lime, textcolor = color.black, transp = 0)
plotshape(ssignal and showlabel ? Trailingsl : na, title="Sell", text="Sell", location = location.absolute, style = shape.labeldown, size = size.tiny, color = color.red, textcolor = color.white, transp = 0)
//get S/R levels using Pivot Points
float resistance = na
float support = na
support := pl ? pl : support[1]
resistance := ph ? ph : resistance[1]
// if enabled then show S/R levels
plot(showsr and support ? support : na, color = showsr and support ? color.lime : na, style = plot.style_circles, offset = -prd)
plot(showsr and resistance ? resistance : na, color = showsr and resistance ? color.red : na, style = plot.style_circles, offset = -prd)
// Trend Filter from SuperTrend Long Strategy
Periods = input(title="ATR Period", type=input.integer, defval=10)
src = input(hl2, title="Source")
Multiplier = input(title="ATR Multiplier", type=input.float, step=0.1, defval=3.0)
changeATR = input(title="Change ATR Calculation Method ?", type=input.bool, defval=true)
// Combine the SuperTrend calculations
atr2 = sma(tr, Periods)
atr = changeATR ? atr(Periods) : atr2
up = src - (Multiplier * atr)
up1 = nz(up[1], up)
up := close[1] > up1 ? max(up, up1) : up
dn = src + (Multiplier * atr)
dn1 = nz(dn[1], dn)
dn := close[1] < dn1 ? min(dn, dn1) : dn
trend = 1
trend := nz(trend[1], trend)
trend := trend == -1 and close > dn1 ? 1 : trend == 1 and close < up1 ? -1 : trend
// Moving Average as Trend Filter
periodes_ma = input(title="Moving Average Period", type=input.integer, defval=20)
src_ma = input(title="Moving Average Source", type=input.source, defval=close)
ma = sma(src_ma, periodes_ma)
// Strategy Entry Conditions
FromMonth = input(defval = 9, title = "From Month", minval = 1, maxval = 12)
FromDay = input(defval = 1, title = "From Day", minval = 1, maxval = 31)
FromYear = input(defval = 2018, title = "From Year", minval = 999)
ToMonth = input(defval = 1, title = "To Month", minval = 1, maxval = 12)
ToDay = input(defval = 1, title = "To Day", minval = 1, maxval = 31)
ToYear = input(defval = 9999, title = "To Year", minval = 999)
start = timestamp(FromYear, FromMonth, FromDay, 00, 00)
finish = timestamp(ToYear, ToMonth, ToDay, 23, 59)
window() => time >= start and time <= finish ? true : false
// Combined entry conditions
longCondition = (trend == 1 and trend[1] == -1 and close > ma) or (bsignal and window())
shortCondition = (trend == -1 and trend[1] == 1 and close < ma) or (ssignal and window())
if (longCondition)
strategy.entry("BUY", strategy.long)
if (shortCondition)
strategy.close("BUY")
strategy.entry("SELL", strategy.short)
buy1 = barssince((trend == 1 and trend[1] == -1 and close > ma) or (bsignal and window()))
sell1 = barssince((trend == -1 and trend[1] == 1 and close < ma) or (ssignal and window()))
color1 = buy1[1] < sell1[1] ? color.green : buy1[1] > sell1[1] ? color.red : na
barcolor(color1)