Xu hướng theo RafaelZioni Chiến lược động lượng


Ngày tạo: 2023-12-13 14:59:34 sửa đổi lần cuối: 2023-12-13 14:59:34
sao chép: 0 Số nhấp chuột: 733
1
tập trung vào
1621
Người theo dõi

Xu hướng theo RafaelZioni Chiến lược động lượng

Tổng quan

Chiến lược này dựa trên chỉ số SuperB của Rafael Zioni, nhận dạng xu hướng thông qua chỉ số động lực, theo dõi tự động xu hướng tăng và xu hướng giảm, thuộc loại chiến lược theo dõi xu hướng.

Nguyên tắc chiến lược

Chiến lược này sử dụng chỉ số SuperB của Rafael Zioni để xác định xu hướng giá. Chỉ số SuperB dựa trên phạm vi biến động giá, khối lượng giao dịch và SpreadVol được tính toán dựa trên chênh lệch giữa giá mở và giá đóng.

Chiến lược này đánh giá xu hướng chuyển hướng bằng cách theo dõi giá cao nhất và giá thấp nhất trong thời gian thực. Trong xu hướng tăng, giá cao nhất luôn sáng tạo cao, được đánh giá là tăng liên tục; khi giá giảm xuống một tỷ lệ nhất định của giá cao nhất, chuyển sang xu hướng giảm. Trong xu hướng giảm, phương pháp đánh giá tương tự.

Ưu điểm

Chiến lược này kết hợp các chỉ số động lực để xác định hướng xu hướng, sau đó theo dõi thời gian thực thông qua giá cao nhất và giá thấp nhất, có thể nhanh chóng xác định hướng xu hướng mới, thực hiện theo dõi tự động xu hướng tăng và giảm, tránh nguy cơ bỏ lỡ điểm mua và điểm mua quá mức.

Chỉ số SuperB của Rafael Zioni phản ánh cường độ và tốc độ biến động giá, có thể xác định chính xác xu hướng thực, lọc hiệu quả các đột phá giả. Quy tắc phán đoán đơn giản, rõ ràng, dễ hiểu và xác minh.

Chỉ thực hiện nhiều vị trí, giảm chi phí giao dịch và mất điểm trượt do hoạt động thường xuyên.

Rủi ro

Chiến lược này có thể tạo ra nhiều giao dịch sai lầm đối với khu vực cân bằng trước khi phá vỡ. Bạn có thể giảm độ nhạy đối với khu vực cân bằng bằng cách tối ưu hóa các tham số.

Dòng dừng dễ bị kích hoạt khi xu hướng biến động. Dòng dừng có thể được mở rộng một cách thích hợp để giữ vị trí lâu hơn.

Khi chuyển đổi nhiều không gian, cần phải chuyển vị trí kịp thời. Nếu chuyển đổi không kịp thời, có thể dẫn đến tổn thất lớn hơn.

Lời khuyên tối ưu hóa

Tối ưu hóa các tham số của chỉ số SuperB, tìm kiếm các tham số kết hợp tốt hơn, tăng sự ổn định của chỉ số.

Tối ưu hóa các yếu tố tỷ lệ theo dõi giá cao nhất và giá thấp nhất, giảm độ nhạy cảm phản ứng đối với khu vực kiểm tra.

Tăng tiêu chuẩn thời gian nắm giữ để tránh bị mất trong thời gian biến động xu hướng.

Tóm tắt

Chiến lược này sử dụng chỉ số SuperB của RafaelZioni để xác định hướng xu hướng giá, và xác định xu hướng chuyển hướng bằng cách theo dõi giá cao nhất và giá thấp nhất trong thời gian thực, thực hiện theo dõi tự động xu hướng tăng và giảm, tránh rủi ro mua quá mức, thuộc loại chiến lược theo dõi xu hướng. Chiến lược này kết hợp với chỉ số động lực để xác định xu hướng thực, quy tắc phán đoán đơn giản và rõ ràng, có thể được cải tiến và tối ưu hóa hơn nữa theo khuyến nghị tối ưu hóa, đáng nghiên cứu và áp dụng.

Mã nguồn chiến lược
/*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')