Theo xác suất khung tuần là chỉ về đó, sóng E nói thường không vi phạm, trường hợp thực tế vẫn có thể xảy ra và nó là biến thể, xác suất bằng 0 thì không chính xác, anh đang nói xác suất thủng fibo retracement 0.5 nhỏ hơn 15%. Anh nói SPX lịch sử quá khứ khi có sự phân kỳ GNL thì thường chỉnh tầm 10-13% gì đó chứ không phải vnindex. Sóng 2 tím chỉnh 140 điểm(1124-983), sóng 4 tím chỉnh thường sẽ ngắn hơn sóng 2.
Cái em hỏi về phân kỳ thì RSI dựa trên chỉ số/giá nên xảy ra phân kỳ âm/dương chỉ là một tín hiệu và mình xác định bằng cách nhìn trực quan, khi chỉ số (giá mã) tăng hơn đỉnh cũ mà RSI nhỏ hơn đỉnh cũ gọi là phân kỳ âm và ngược lại. Kinh nghiệm sử dụng thì anh có trao đổi rồi, nên nhìn về quá khứ để xem mức cao nhất và thấp nhất, còn khi phân kỳ xảy ra thì nó chỉ là một tín hiệu, phải kết hợp các yếu tố khác để quyết định. Khó nhất là chỗ này, không xác định được khi phân kỳ âm/dương xảy ra thì khi nào tạo đỉnh, tạo đáy. Vì vậy phải nhìn về quá khứ, phân tích sóng/định giá,… Script thì như bên dưới, anh sử dụng cùng với EMA để xác định điểm giao cắt với RSI cho việc đánh giá xu hướng.
// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © Bach_Nam_2022
//@version=5
indicator(title='RSI and EMA', shorttitle='RSI EMA', overlay=false)
src = input(close, 'Source')
len = input.int(14, 'RSI Length', minval=2)
lenema = input.int(12, 'EMA Length', minval=2)
ob = input.float(75, 'Overbought Input', minval=0, step=1)
os = input.float(25, 'Oversold Input', minval=0, step=1)
reverse(Level) =>
x1 = (len - 1) * (ta.rma(math.max(nz(src[1], src) - src, 0), len) * Level / (100 - Level) - ta.rma(math.max(src - nz(src[1], src), 0), len))
x1 >= 0 ? src + x1 : src + x1 * (100 - Level) / Level
rsi = ta.rsi(src, len)
ma = ta.ema(rsi, lenema)
revma = reverse(ma)
revob = reverse(ob)
revos = reverse(os)
rr(input) =>
alpha = 1 / len
up1 = ta.rma(math.max(ta.change(src), 0), len)
down1 = ta.rma(-math.min(ta.change(src), 0), len)
up = alpha * math.max(input - src[1], 0) + (1 - alpha) * nz(up1[1])
down = alpha * -math.min(input - src[1], 0) + (1 - alpha) * nz(down1[1])
rsia = down == 0 ? 100 : up == 0 ? 0 : 100 - 100 / (1 + up / down)
bullzoneband = hline(70, 'Bull Lower Zone', color=color.black, linewidth=2, linestyle=hline.style_dashed)
upband = hline(80, 'Bull Uppe Zoner', color=color.black, linewidth=2)
fill(upband, bullzoneband, color=color.new(color.green,45))
bearzoneband = hline(30, 'Bear Upper Zone', color=color.red, linewidth=2, linestyle=hline.style_dashed)
downband = hline(20, 'Bear Lower Zone', color=color.red, linewidth=2)
fill(bearzoneband, downband, color=color.new(color.blue,45))
plot(rsi, color=color.new(color.orange, 0), linewidth=2)
plot(ma, 'EMA', color=color.new(color.purple, 0), style=plot.style_line, linewidth=1)