RafaelZioni Xu hướng Động lực Tiếp theo Chiến lược

Tác giả:ChaoZhang, Ngày: 2023-12-13 14:59:34
Tags:

img

Tổng quan

Chiến lược này dựa trên chỉ số SuperB được tạo ra bởi RafaelZioni. Nó xác định xu hướng thông qua các chỉ số động lực và tự động theo dõi xu hướng tăng và giảm, thuộc về chiến lược theo xu hướng.

Chiến lược logic

Chiến lược này sử dụng chỉ số SuperB được tạo ra bởi RafaelZioni để 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à sự khác biệt giá giữa giá mở và đóng để tính toán chỉ số SpreadVol. Chỉ số SpreadVol phản ánh đặc điểm động lực của giá.

Chiến lược đánh giá sự đảo ngược xu hướng trong thời gian thực bằng cách theo dõi giá cao và thấp. Trong xu hướng tăng, mức cao mới tiếp tục được tạo ra, cho thấy sự gia tăng bền vững. Khi giá phá vỡ dưới mức giá tối đa một tỷ lệ phần trăm nhất định, nó chuyển sang xu hướng giảm. Phương pháp đánh giá tương tự trong xu hướng giảm. Điều này cho phép đánh giá kịp thời các điểm đảo ngược xu hướng.

Ưu điểm

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

Chỉ số SuperB của RafaelZioni phản ánh sức mạnh và tốc độ thay đổi giá và có thể xác định chính xác xu hướng thực sự, lọc hiệu quả các sự đột phá sai.

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

Rủi ro

Chiến lược có xu hướng nhiều giao dịch sai trong khu vực củng cố trước khi phá vỡ. Các tham số có thể được tối ưu hóa để giảm độ nhạy với các khu vực củng cố.

Đường dừng lỗ có xu hướng được kích hoạt trong các cú sốc xu hướng. Phạm vi dừng lỗ có thể được thư giãn thích hợp trong thời gian giữ dài hơn.

Khi chuyển đổi giữa dài và ngắn, các vị trí cần được chuyển đổi kịp thời. Nếu chuyển đổi không kịp thời, nó có thể dẫn đến tổn thất lớn hơn.

Các đề xuất tối ưu hóa

Tối ưu hóa các thông số của chỉ số SuperB để tìm kết hợp các thông số tốt hơn và cải thiện sự ổn định của chỉ số.

Tối ưu hóa tỷ lệ theo dõi của giá cao nhất và thấp nhất để giảm độ nhạy cảm đối với các khu vực hợp nhất.

Tăng các tiêu chí thời gian giữ để tránh bị dừng lại trong thời gian sốc xu hướng.

Tóm lại

Chiến lược này sử dụng chỉ số SuperB được phát triển bởi RafaelZioni để xác định hướng xu hướng giá, và đánh giá sự đảo ngược xu hướng bằng cách theo dõi giá cao và thấp trong thời gian thực, nhận ra việc theo dõi tự động xu hướng tăng và giảm, tránh bỏ lỡ điểm mua và rủi ro mua quá mức. Nó thuộc về một chiến lược đà với các đặc điểm theo xu hướng. Chiến lược này kết hợp các chỉ số đà để xác định xu hướng thực với các quy tắc đơn giản và rõ ràng. Nó có thể được cải thiện và tối ưu hóa hơn theo các gợi ý tối ưu hóa và đáng để nghiên cứu và áp dụng.


/*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')

Thêm nữa