Mengikuti Tren Strategi Momentum RafaelZioni


Tanggal Pembuatan: 2023-12-13 14:59:34 Akhirnya memodifikasi: 2023-12-13 14:59:34
menyalin: 0 Jumlah klik: 733
1
fokus pada
1621
Pengikut

Mengikuti Tren Strategi Momentum RafaelZioni

Ringkasan

Strategi ini didasarkan pada indikator SuperB Rafael Zioni, dan mengidentifikasi tren melalui indikator momentum, untuk melakukan pelacakan otomatis terhadap tren naik dan turun, dan merupakan strategi jenis pelacakan tren.

Prinsip Strategi

Strategi ini menggunakan indikator SuperB dari Rafael Zioni untuk mengidentifikasi tren harga. Indikator SuperB didasarkan pada rentang fluktuasi harga, volume transaksi dan SpreadVol yang dihitung berdasarkan selisih antara harga pembukaan dan harga penutupan.

Strategi ini melakukan pembiaran tren dengan melacak harga tertinggi dan harga terendah secara real time. Dalam tren naik, harga tertinggi selalu tinggi dan dinilai sebagai terus meningkat; Ketika harga jatuh di bawah harga tertinggi, beralih ke tren menurun. Dalam tren turun, metode penilaian serupa.

Keunggulan

Strategi ini dikombinasikan dengan indikator momentum untuk menentukan arah tren, kemudian dengan pelacakan real-time harga tertinggi dan terendah, dapat dengan cepat mengidentifikasi arah tren baru, melakukan pelacakan otomatis terhadap tren naik dan turun, menghindari risiko kehilangan titik beli dan titik beli.

Indikator SuperB Rafael Zioni mencerminkan intensitas dan kecepatan perubahan harga, dapat dengan akurat menilai tren nyata, dengan efektif memfilter terobosan palsu. Aturan penilaian sederhana dan jelas, mudah dipahami dan diverifikasi.

Hanya melakukan posisi multihead, mengurangi biaya transaksi dan kehilangan slippage yang disebabkan oleh operasi yang sering.

Risiko

Strategi ini cenderung menghasilkan beberapa kali kesalahan perdagangan di area perhitungan sebelum terobosan. Hal ini dapat dilakukan dengan mengoptimalkan parameter untuk mengurangi sensitivitas pada area perhitungan.

Pada saat tren bergejolak, garis stop loss mudah dipicu. Anda dapat melebarkan jangkauan stop loss dengan tepat agar dapat memegang posisi lebih lama.

Jika Anda tidak cukup cepat, Anda dapat membawa kerugian yang lebih besar.

Saran untuk Optimasi

Mengoptimalkan parameter indikator SuperB, mencari kombinasi parameter yang lebih baik, meningkatkan stabilitas indikator.

Mengoptimalkan faktor proporsional untuk pelacakan harga tertinggi dan harga terendah, mengurangi sensitivitas respons terhadap area perhitungan.

Meningkatkan standar waktu memegang posisi untuk menghindari kerugian selama tren bergejolak.

Meringkaskan

Strategi ini menggunakan indikator SuperB RafaelZioni untuk menentukan arah tren harga dan untuk menentukan pembalikan tren secara real-time dengan melacak harga tertinggi dan terendah, untuk melakukan pelacakan otomatis pada tren naik dan turun, menghindari risiko overbought, dan merupakan strategi momentum dari jenis pelacakan tren. Strategi ini dikombinasikan dengan indikator momentum untuk menentukan tren yang sebenarnya, aturan penghakiman yang sederhana dan jelas, dapat ditingkatkan dan dioptimalkan lebih lanjut sesuai dengan saran optimasi, layak untuk diteliti dan diterapkan.

Kode Sumber Strategi
/*backtest
start: 2023-01-01 00:00:00
end: 2023-08-19 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4

strategy(shorttitle='SuperB', title='SuperB By RafaelZioni', overlay=true)
long_only = input(title="Only Long?", defval=true)

hilow = ((high - low)*100)
openclose = ((close - open)*100)
vol = (volume / hilow)
spreadvol = (openclose * vol)
VPT = spreadvol + cum(spreadvol)
window_len = 28

v_len = 14
price_spread = stdev(high-low, window_len)

vp =  spreadvol + cum(spreadvol)
smooth = sma(vp, v_len)
v_spread = stdev(vp - smooth, window_len)
shadow = (vp - smooth) / v_spread * price_spread

out = shadow > 0 ? high + shadow : low + shadow
//

len = input(10)



vpt=ema(out,len)

// INPUTS //
st_mult   = input(1,   title = ' Multiplier', minval = 0, maxval = 100, step = 0.01)
st_period = input(10, title = ' Period',     minval = 1)

// CALCULATIONS //
up= vpt - (st_mult * atr(st_period))
dn = vpt + (st_mult * atr(st_period))
c5=close
//

factor = input(title="Factor", defval=0.05, minval=0.01, maxval=5, step=0.01, type=input.float)

hb = 0.00 ,hb := nz(hb[1])
hl = 0.000, hl := nz(hl[1])

lb = 0.00 ,lb := nz(lb[1])
l1 = 0.000,l1 := nz(l1[1])

c = 0
c := nz(c[1]) + 1

trend = 0,trend := nz(trend[1]),n = dn,x =up


if barstate.isfirst
    c := 0
    lb := n
    hb := x                      
    l1 := c5  
    hl := c5
    hl
if c == 1
    if x >= hb[1]
        hb := x
        hl := c5
        trend := 1  
        trend
    else
        lb := n
        l1 := c5 
        trend := -1 
        trend

if c > 1

    if trend[1] > 0  
        hl := max(hl[1], c5)
        if x >= hb[1] 
            hb := x
            hb
        else

            
            if n < hb[1] - hb[1] * factor 
                lb := n
                l1 := c5

                trend := -1  
                trend
    else

       
        l1 := min(l1[1], c5 )

        if n <= lb[1] 
            lb := n 
            lb
        else

           
            if x > lb[1] + lb[1] * factor
                hb := x 
                hl := c5

                trend := 1  
                trend



v = trend == 1 ? hb : trend == -1 ? lb : na
plot(v, color=trend == 1 ? color.blue : color.yellow, style=plot.style_circles, linewidth=1, title="trend", transp=0, join=true)

//

long = trend == 1 and trend[1] == -1 
short = trend == -1 and trend[1] == 1 
//
last_long = 0.0
last_short = 0.0
last_long := long ? time : nz(last_long[1])
last_short := short ? time : nz(last_short[1])

buy = crossover(last_long, last_short)
sell = crossover(last_short, last_long)

/////////////// Positions ////////////// 
if long
    strategy.entry("Buy", long=true)
    if long_only == false
        strategy.close("Sell")

if short
    if long_only == false
        strategy.entry("Sell", long=false)
    strategy.close("Buy")

/////////////// Plotting /////////////// 
plotshape(buy, title="buy", text="Buy", color=color.green, style=shape.labelup, location=location.belowbar, size=size.small, textcolor=color.white, transp=0)  //plot for buy icon
plotshape(sell, title="sell", text="Sell", color=color.red, style=shape.labeldown, location=location.abovebar, size=size.small, textcolor=color.white, transp=0)


/////////////// Alerts /////////////// 
alertcondition(buy, title='buy', message='Buy')
alertcondition(sell, title='sell', message='Sell')