Strategi Mengikuti Trend Sokongan dan Rintangan Super


Tarikh penciptaan: 2024-02-26 10:57:20 Akhirnya diubah suai: 2024-02-26 10:57:20
Salin: 0 Bilangan klik: 1369
1
fokus pada
1617
Pengikut

Strategi Mengikuti Trend Sokongan dan Rintangan Super

Gambaran keseluruhan

Strategi Pemantauan Trend Super Resistance Support adalah strategi pemantauan trend yang inovatif yang menggabungkan kedua-dua petunjuk popular yang menyokong titik rintangan dan super trend, sambil menambah penapis trend tambahan untuk meningkatkan ketepatan. Strategi ini diilhamkan oleh skrip pemantauan trend super resistance support Lonesome TheBlue, yang bertujuan untuk menyediakan pedagang dengan alat pemantauan trend yang boleh dipercayai, sambil meminimumkan isyarat palsu.

Prinsip Strategi

Strategi ini adalah berdasarkan pada penggabungan antara penyokong dan penanda trend super, dan penambahan penapis trend yang kuat. Ia mula mengira penyokong tinggi dan rendah dalam tempoh yang ditetapkan, titik rujukan penting yang penting untuk analisis trend. Dengan mengira purata berat, penyokong dan penyokong ini membentuk garis tengah, menyempurnakan keseluruhan penunjuk.

Selanjutnya, ATR yang dihasilkan di atas dan di bawah garis tengah dan yang ditentukan oleh pengguna dihasilkan. Segmen ini akan menyesuaikan diri dengan turun naik pasaran, memberikan fleksibiliti kepada strategi.

Penapis trend tambahan yang diperkenalkan kepada strategi ini meningkatkan lagi kemampuannya. Penapis ini adalah berdasarkan purata bergerak, yang secara dinamik menilai kekuatan dan arah trend. Dengan menggabungkan penapis trend ini dengan isyarat supertrend titik rintangan sokongan asal, strategi ini bertujuan untuk membuat keputusan perdagangan yang lebih bijak dan boleh dipercayai.

Analisis kelebihan

  1. Peningkatan ketepatan: penambahan penapis trend meningkatkan ketepatan strategi dengan mengesahkan arah trend keseluruhan sebelum menghasilkan isyarat.

  2. Keterusan Trend: Integrasi penapis trend dan penyokong titik rintangan dan super trend yang bertujuan untuk memanjangkan perdagangan semasa trend pasaran yang kuat, dengan itu berpotensi memaksimumkan peluang keuntungan.

  3. Mengurangkan isyarat palsu: Pengiraan purata berat strategi ditambah dengan penapis trend membantu meminimumkan isyarat palsu dan mengurangkan lompatan di bawah keadaan pasaran yang tidak pasti atau menyusun.

  4. Wawasan sokongan dan rintangan: Strategi ini terus memberikan sokongan dan rintangan tambahan berdasarkan titik sokongan dan rintangan, memberikan maklumat kontekstual yang berharga kepada peniaga.

Analisis risiko

  1. Bergantung kepada parameter: Strategi ini sensitif terhadap parameter kitaran ATR dan ATR ganda, dan parameter yang tidak betul boleh menyebabkan perdagangan berlebihan atau kehilangan peluang.

  2. Peralihan trend: Di sekitar titik pembalikan trend, strategi mungkin menghasilkan isyarat yang salah dan menyebabkan kerugian yang tidak perlu. Risiko harus dikendalikan dengan menghentikan kerugian.

  3. Pengoptimuman berlebihan: Parameter boleh mendapat kombinasi terbaik melalui pengoptimuman, tetapi tidak mempunyai prospek. Kesan perbezaan keadaan dan varieti terhadap pilihan parameter harus dipertimbangkan.

  4. Risiko kosong: Strategi akan memasuki keadaan kosong apabila harga keluar dari tren naik ke bawah. Ia mungkin kehilangan peluang untuk membentuk semula trend.

Arah pengoptimuman

  1. Gabungan dengan petunjuk lain: Anda boleh mempertimbangkan untuk menambah petunjuk jumlah transaksi atau kadar turun naik untuk meningkatkan kestabilan strategi.

  2. Parameter dinamik: Kaedah yang boleh dipelajari untuk mengoptimumkan secara automatik atau menyesuaikan parameter mengikut keadaan pasaran, menjadikan strategi lebih adaptif.

  3. Strategi Hentikan Kerugian: Kajian bagaimana merancang mekanisme hentikan kerugian, mengawal kerugian tunggal dengan berkesan dengan mengekalkan logik strategi.

  4. Kesesuaian varieti: strategi penilaian Parameter dalam bahagian dan instrumen yang berbeza, mengoptimumkan parameter mengikut ciri tertentu.

ringkaskan

Strategi pengesanan trend supersupport resistance adalah strategi kuantitatif yang sangat menjanjikan. Ia menunjukkan kelebihan yang unik dalam pelbagai dimensi seperti kesederhanaan, keupayaan untuk mengesan trend.

Kod sumber strategi
/*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)