Đoản khúc cuộc đời

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)

6 Likes

Dạ em cảm ơn a ạ!

1 Likes

Đợt sóng vừa rồi e thấy các mã phân kỳ nhiều nhưng vẫn kéo chạy quá trời luôn

1 Likes

Về cấu trúc sóng 4 tím sẽ khác sóng 2 tím, 2 đã đi ABC thì 4 không đi cùng dạng nên @fan_bac vẽ cấu trúc đó chưa chuẩn. Cấu trúc chỉ là một phần, xem xét thêm mức fibo retracement và extension. Không cần phức tạp quá về cấu trúc khi không đánh sóng nhỏ quá (giao dịch T0-T+), những sóng nhỏ quá hay bị lừa.

3 Likes

mấy cái này làm gì anh? Em thấy script chẳng dùng ở đâu hay script a gửi thiếu nhỉ

1 Likes

Anh định viết phần hiển thị cho giá trị overbought oversell nhưng chưa thực hiện, tính tự động khi điền giá trị RSI vào. Cách làm thủ công anh nói rồi, ví dụ RSI ở 50 thì chỉ số/ giá là A, muốn biết RSI lên 87 thì chỉ số/ giá B là bao nhiêu thì nội suy ra: B=87*A/50. Và một cái nữa là tính toán tự động khi RSI cắt lên/xuống EMA thì chỉ số/giá tương ứng là bao nhiêu thì xảy ra giao cắt.

8 Likes

đây a, e làm over bought, over sell luôn rồi đây

//@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))

rsiColor = rsi > 70 ? color.new(color.red, 0)  : (rsi <= 30 ? color.new(color.green, 0) : color.new(color.blue, 0))
rsiPlot = plot(rsi,  color=rsiColor, linewidth=2)
plot(ma, 'EMA', color=color.new(color.purple, 0), style=plot.style_line, linewidth=1)


bullLinePlot = plot(70, color = na, editable = false, display = display.none)
bearLinePlot = plot(30, color = na, editable = false, display = display.none)

fill(rsiPlot, bullLinePlot, 100, 70, top_color = color.new(color.red, 0), bottom_color = color.new(color.red, 100),  title = "Overbought Gradient Fill")
fill(rsiPlot, bearLinePlot, 30,  0,  top_color = color.new(color.green, 100), bottom_color = color.new(color.green, 0),      title = "Oversold Gradient Fill")
6 Likes

Ý anh là như này:

// 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)
pan = input(true, ' Show Information Panel')
off = input.int(50, '  Panel Position Offset', minval=0)
dec = input.int(1, 'Decimals', minval=0, maxval=10)
bg = input(false, 'Invisible Background')
bgcolor(color.white)

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)

labelstyle = label.style_label_center
labelstyle2 = label.style_label_down
labelc = bg ? color.new(color.white, 50) : color.new(color.black, 45)

Round(src, digits) =>
    p = math.pow(10, digits)
    math.round(math.abs(src) * p) / p * math.sign(src)

xp(offset) =>
    time + math.round(ta.change(time) * offset)

lable1(offset, P, T, s, color_PnL) =>
    label PnL_Label = na
    PnL_Label := label.new(xp(offset), P, text=T, color=color_PnL, textcolor=color.white, style=s, yloc=yloc.price, xloc=xloc.bar_time, size=size.normal)
    label.delete(PnL_Label[1])

ud() =>
    if rsi < ma
        'Cross up EMA'
    else
        'Cross down EMA'

if pan
    lable1(off,50, 'RSI ' + ud() + ' Price : ' + str.tostring(Round(revma, dec)) + '\n\n' + str.tostring(Round(ob, dec)) + ' Overbought Price : ' + str.tostring(Round(revob, dec)) + '\n\n' + str.tostring(Round(os, dec)) + ' Oversold Price : ' + str.tostring(Round(revos, dec)), labelstyle,labelc)

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)
3 Likes

Khi em thay đổi RSI ở hai giá trị anh đánh dấu thì có thể tự động biết được khi nó đến RSI đó thì có giá/ chỉ số là bao nhiêu và RSI biến động theo giá/chỉ số theo công thức nên nó sẽ diễn biến theo và tự động điều chỉnh. Cross up hay down EMA cũng tương tự.

9 Likes

Bác chủ đọc nhầm 1124-983, ý bác nói đúng sóng 2 tím là 1124-1013=111 điểm ạ.

2 Likes

Theo e hiểu thì khi rsi cắt lên ema và nằm trên ema và nằm trên 50 thì có xu hướng lên và ngược lại phải không anh.anh cho e xin mấy note chú ý về cách xác định sức mạnh xu hướng của công cụ này với ạ.!

4 Likes

Đúng là như vậy nhưng indicators bị chậm do nó đi sau hành động giá. Nó đã có trong Trend probability mà anh chia sẻ, tính xác suất dựa trên RSI hay chỉ báo khác tùy lựa chọn. Và một số tùy chọn xem xét khi các tín hiệu khác không rõ ràng cho sự phân kỳ, vùng tạo đỉnh, vùng tạo đáy để gom/chốt hạ.

6 Likes

dạ.em cảm ơn ạ.!

2 Likes

Anh Nam cho em hỏi, sóng 4 thưởng chỉnh giảm về 0.382 or 0.5 theo Fibonaci Retracement, thường ít hơn sóng 2, vậy sóng 2 thường về mức nào ạ

2 Likes

Xác định vùng chứ không cố định ở một mức với xác suất. Sóng 2 thường chỉnh về 0.5-0.618 xác suất trên 70%, vùng 0.786-0.84 xác suất nhỏ dưới 20%. Đó là thuần túy sóng E. Để hiệu quả hơn thì sử dụng volume profile cùng fibo và định giá nếu có thể để cân nhắc được vùng gom hiệu quả nhất. Tất nhiên không thể thiếu sự quan sát khi về tới vùng định sẵn phản ứng ra sao. Em chắc không đọc tài liệu anh gửi, nếu thực sự muốn theo đuổi thì phải đọc hiểu thật sự và tự mình kiểm tra lịch sử các mã, chỉ số để trau dồi kinh nghiệm cùng với thực chiến vốn nhỏ. Kiến thức đó chỉ là cơ bản chưa có kiến thức nâng cao. Sóng E có nhiều chart patterns nhưng không cần quá chi tiết khi không giao dịch hàng ngày hay T+. Đừng thử vốn lớn và đừng cay cú khi thất bại mới thành công được. Em trải qua mã VGC rồi, anh nhớ là như thế, vấn đề thực tế không biết em kiếm lợi nhuận từ mã đó được bao nhiêu?

5 Likes

A @Bach_nam ơi e đang cầm mã ANv giá 34,9 và GMD 56,5 thì nên cơ cấu sang mã nào hay giữ nguyên chờ hồi ạ .Em cám ơn a ạ c

5 Likes

ANV nay gần ma200 lắm r đó ^^, ngắm nghía chút. dòng này theo mình thấy sẽ hồi lại. k nên bán ở khúc này
nếu có ý định cutloss thì phải ở khúc ma20.

3 Likes

Nó đang đi sâu hơn vùng anh nhận định một chút, cơ bản nó sẽ có nhịp hồi hòa, có lãi. GMD anh không đánh dấu mức đáy tích lũy mấy tháng trước khu 48-50k. Hiện tại định giá của nó khoảng 57-60k. ANV đủ sóng rồi nên cần cẩn thận hơn, có nghĩa theo dõi sát nội tại để đánh giá nó có thể mở rộng được hay không.



2 Likes

Dạ e cám ơn a

1 Likes

Dạ em cám ơn a

2 Likes