Mỗi nhãn trạng thái được gán bằng một bảng quy tắc xét từ trên xuống: quy tắc đầu tiên thỏa thì thắng, kèm số tiêu chí đạt và các con số làm bằng chứng. Thiếu đầu vào thì nhãn để trống kèm mã lý do. Phiên 16/10/2026: 13 nến đầu không có nhãn volatility.
Định nghĩa đầy đủ
Gán nhãn trạng thái là áp một bảng quy tắc cố định lên số đo của từng nến hoặc từng phiên. Quy tắc xét theo thứ tự, quy tắc đầu tiên thỏa thì thắng. Mỗi nhãn ghi kèm số tiêu chí đạt và các con số đã dùng; thiếu đầu vào thì nhãn để trống kèm mã lý do.
Lưu ý rủi ro: Nội dung mang tính giáo dục về cách dữ liệu được xử lý, không phải tư vấn đầu tư. Nhãn trạng thái mô tả số đo đã có, không gợi ý vào hay ra lệnh. Hợp đồng tương lai dùng đòn bẩy nên lãi và lỗ đều bị khuếch đại.
Những điều cần nhớ
- Quy tắc xét từ trên xuống, quy tắc đầu tiên thỏa thì thắng: breakout đang hiệu lực đứng trên xu hướng
- So với ngưỡng trên giá trị chưa làm tròn; bằng ngưỡng thì đạt
- Phiên 16/10/2026 (41I1GB000): 35/48 nến có nhãn volatility, 25/48 có nhãn basis, 0/48 có nhãn structure
- Mã lý do phổ biến: warmup_after_roll (đầu hợp đồng), index_bar_missing (thiếu nến chỉ số)
- Số tiêu chí đạt là số đếm điều kiện, không phải xác suất
Dữ liệu tính đến phiên 16/10/2026; số đo từ phiên bản ms-v3 và pos-v1, đã đối soát cuối ngày; quy tắc gán nhãn regime-v1.
Bảng quy tắc xét từ trên xuống
Mỗi trục của market regime có một bảng quy tắc ngắn. Các dòng được xét theo thứ tự, và dòng đầu tiên có điều kiện đúng quyết định nhãn. Thứ tự này không phải chi tiết kỹ thuật: nó quyết định nhãn nào thắng khi nhiều điều kiện cùng đúng.
Bảng của trục structure cho thấy rõ nhất:
| Thứ tự | Điều kiện | Nhãn |
|---|---|---|
| 1 | Có breakout hướng lên đang hiệu lực | BREAKOUT_UP |
| 2 | Có breakout hướng xuống đang hiệu lực | BREAKOUT_DOWN |
| 3 | Hướng xu hướng là UP và ít nhất 3 trên 4 phiếu tăng | TREND_UP |
| 4 | Hướng xu hướng là DOWN và ít nhất 3 trên 4 phiếu giảm | TREND_DOWN |
| 5 | Ít nhất 3 trên 4 phiếu đi ngang | RANGE |
| 6 | Còn lại | MIXED |
Ví dụ thật: nến 10:40 phiên 08/10/2026 có hướng xu hướng UP và 3 phiếu tăng — đủ điều kiện TREND_UP. Nhưng ngay nến đó giá đóng cửa vượt biên trên của vùng 20 nến, tạo một breakout lên. Dòng 1 được xét trước nên nhãn là BREAKOUT_UP.
Hai quy ước về ngưỡng: so sánh trên giá trị chưa làm tròn, và bằng ngưỡng thì đạt. Ở trục biến động, tỉ số đúng bằng 1,5 là HIGH_VOL, đúng bằng 0,67 là LOW_VOL.
Số tiêu chí đạt và bằng chứng
Sau khi chọn được nhãn, mỗi trục ghi thêm hai thứ.
Tiêu chí bổ trợ. Với TREND_DOWN, bốn tiêu chí là bốn phiếu giảm: hướng xu hướng DOWN, trạng thái LH_LL, giá dưới VWAP, giá dưới EMA 20. Nến 09:40 phiên 08/10/2026 đạt 3 trên 4; nến 09:55 đạt 4 trên 4. Cả hai đều mang nhãn TREND_DOWN — tiêu chí bổ trợ không đổi nhãn, chỉ ghi lại bao nhiêu điều kiện cùng đúng. Nhãn "không có gì đáng kể" như NORMAL hay NEUTRAL có tổng số tiêu chí là 0.
Số tiêu chí đạt là một con số đếm. Nó chưa được đo xem 4/4 có khác 3/4 về bất kỳ kết quả nào, nên không thể đọc như xác suất hay độ tin cậy.
Bằng chứng. Mỗi nhãn ghi các con số đã dùng: với trục biến động là ATR của nến và tỉ số atr_tod_ratio; với trục basis là mức đi của hợp đồng (fut_move), của chỉ số (idx_move) và ngưỡng. Nhờ vậy ai cũng tính lại được nhãn từ bằng chứng.
Nhãn trống và mã lý do
Khi một đầu vào bắt buộc không có giá trị, nhãn để trống và ghi một mã lý do. Không có chuyện lấy tạm nhãn của nến trước, vì làm vậy là bịa ra một trạng thái mà dữ liệu không cho thấy.
| Mã lý do | Nghĩa | Ví dụ |
|---|---|---|
warmup_after_roll | Hợp đồng mới chưa đủ nến cho số đo | 13 nến đầu hợp đồng chưa có ATR 14 nến |
index_bar_missing | Chỉ số VN30 không có nến ở phút cần ghép | 09:00–09:10, trước khi cổ phiếu khớp lệnh liên tục |
insufficient_history | Chưa đủ 20 phiên làm baseline | 20 phiên đầu của lịch sử dữ liệu |
oi_not_available | Thiếu OI của ít nhất một hợp đồng trong danh mục | Hợp đồng mới vào danh mục nhưng chưa có dòng OI |
expiry_settlement | Ngày đáo hạn, tổng OI giảm do thanh toán | Phiên 15/10/2026 |
Khoảng trống index_bar_missing lúc đầu phiên có nguồn gốc được giải thích ở bài vì sao 15 phút đầu phiên VN30F1M không có basis. Khoảng trống warmup_after_roll xuất hiện sau mỗi ngày đáo hạn.
Phiên 16/10/2026: nến nào có nhãn
Phiên 16/10/2026 là phiên đầu tiên của hợp đồng 41I1GB000 sau kỳ đáo hạn 15/10. Đó là phiên có nhiều ô trống nhất trong tháng, nên dễ thấy cả nhãn lẫn mã lý do.
| Nến 5 phút | volatility | basis | structure |
|---|---|---|---|
| 09:00 | trống (warmup_after_roll) | trống (index_bar_missing) | trống (warmup_after_roll) |
| 09:05 | trống (warmup_after_roll) | trống (index_bar_missing) | trống (warmup_after_roll) |
| 09:10 | trống (warmup_after_roll) | trống (index_bar_missing) | trống (warmup_after_roll) |
| 09:15 | trống (warmup_after_roll) | trống (warmup_after_roll) | trống (warmup_after_roll) |
| 09:20 | trống (warmup_after_roll) | trống (warmup_after_roll) | trống (warmup_after_roll) |
| 09:25 | trống (warmup_after_roll) | trống (warmup_after_roll) | trống (warmup_after_roll) |
| 09:30 | trống (warmup_after_roll) | trống (warmup_after_roll) | trống (warmup_after_roll) |
| 09:35 | trống (warmup_after_roll) | trống (warmup_after_roll) | trống (warmup_after_roll) |
| 09:40 | trống (warmup_after_roll) | trống (warmup_after_roll) | trống (warmup_after_roll) |
| 09:45 | trống (warmup_after_roll) | trống (warmup_after_roll) | trống (warmup_after_roll) |
| 09:50 | trống (warmup_after_roll) | trống (warmup_after_roll) | trống (warmup_after_roll) |
| 09:55 | trống (warmup_after_roll) | trống (warmup_after_roll) | trống (warmup_after_roll) |
| 10:00 | trống (warmup_after_roll) | trống (warmup_after_roll) | trống (warmup_after_roll) |
| 10:05 | NORMAL | trống (warmup_after_roll) | trống (warmup_after_roll) |
| 10:10 | NORMAL | trống (warmup_after_roll) | trống (warmup_after_roll) |
| 10:15 | NORMAL | trống (warmup_after_roll) | trống (warmup_after_roll) |
| 10:20 | NORMAL | trống (warmup_after_roll) | trống (warmup_after_roll) |
| 10:25 | NORMAL | trống (warmup_after_roll) | trống (warmup_after_roll) |
| 10:30 | NORMAL | trống (warmup_after_roll) | trống (warmup_after_roll) |
| 10:35 | NORMAL | trống (warmup_after_roll) | trống (warmup_after_roll) |
| 10:40 | NORMAL | trống (index_bar_missing) | trống (warmup_after_roll) |
| 10:45 | NORMAL | trống (index_bar_missing) | trống (warmup_after_roll) |
| 10:50 | NORMAL | trống (index_bar_missing) | trống (warmup_after_roll) |
| 10:55 | NORMAL | NEUTRAL | trống (warmup_after_roll) |
| 11:00 | NORMAL | NEUTRAL | trống (warmup_after_roll) |
| 11:05 | NORMAL | INDEX_LEADING | trống (warmup_after_roll) |
| 11:10 | NORMAL | NEUTRAL | trống (warmup_after_roll) |
| 11:15 | NORMAL | CONFIRMED_DOWN | trống (warmup_after_roll) |
| 11:20 | NORMAL | INDEX_LEADING | trống (warmup_after_roll) |
| 11:25 | NORMAL | INDEX_LEADING | trống (warmup_after_roll) |
| 13:00 | NORMAL | CONFIRMED_DOWN | trống (warmup_after_roll) |
| 13:05 | NORMAL | CONFIRMED_DOWN | trống (warmup_after_roll) |
| 13:10 | NORMAL | CONFIRMED_DOWN | trống (warmup_after_roll) |
| 13:15 | NORMAL | CONFIRMED_DOWN | trống (warmup_after_roll) |
| 13:20 | NORMAL | CONFIRMED_DOWN | trống (warmup_after_roll) |
| 13:25 | NORMAL | CONFIRMED_DOWN | trống (warmup_after_roll) |
| 13:30 | NORMAL | CONFIRMED_DOWN | trống (warmup_after_roll) |
| 13:35 | NORMAL | CONFIRMED_DOWN | trống (warmup_after_roll) |
| 13:40 | NORMAL | CONFIRMED_DOWN | trống (warmup_after_roll) |
| 13:45 | NORMAL | INDEX_LEADING | trống (warmup_after_roll) |
| 13:50 | NORMAL | CONFIRMED_DOWN | trống (warmup_after_roll) |
| 13:55 | NORMAL | INDEX_LEADING | trống (warmup_after_roll) |
| 14:00 | NORMAL | NEUTRAL | trống (warmup_after_roll) |
| 14:05 | NORMAL | CONFIRMED_DOWN | trống (warmup_after_roll) |
| 14:10 | NORMAL | CONFIRMED_DOWN | trống (warmup_after_roll) |
| 14:15 | NORMAL | NEUTRAL | trống (warmup_after_roll) |
| 14:20 | NORMAL | NEUTRAL | trống (warmup_after_roll) |
| 14:25 | NORMAL | INDEX_LEADING | trống (warmup_after_roll) |
Khung 5 phút. Nhãn do Stockup áp bảng quy tắc regime-v1 lên số đo ms-v3 và pos-v1; ngưỡng là giá trị khởi điểm, chưa hiệu chỉnh; nhãn mô tả trạng thái, không phải gợi ý vào ra lệnh. Ở trục structure, bài chỉ tính được phần breakout và bốn phiếu xu hướng từ dữ liệu công khai.
- volatility: 13 nến 09:00–10:00 trống (
warmup_after_roll) vì ATR 14 nến chỉ có từ nến thứ 14 của hợp đồng. Từ nến 10:05, cả 35 nến còn lại mang nhãn NORMAL. Baseline cùng giờ không cần chờ, vì nó lấy 20 phiên trước, kể cả của hợp đồng cũ. - basis: 25 nến có nhãn, bắt đầu từ 10:55. 17 nến 09:15–10:35 trống vì nến thứ 20 trước chúng chưa tồn tại trong hợp đồng mới (
warmup_after_roll). 6 nến trống vì thiếu chỉ số (index_bar_missing): ba nến đầu phiên, và ba nến 10:40–10:50 có nến thứ 20 trước rơi đúng vào ba nến đầu phiên. - structure: cả 48 nến trống. Hướng xu hướng của Market Structure cần nhiều nến hơn một phiên mới có giá trị.
- Theo ngày: session = RANGE_DAY (thân phiên chỉ 0,19 biên độ); oi để trống với mã
oi_not_available.
Hai nến tính tay
Nến 10:05, trục volatility. ATR 14 nến là 3,50 điểm; trung bình ATR cùng khe 10:05 của 20 phiên trước là khoảng 3,49 điểm. Tỉ số là 1,0023, nằm giữa 0,67 và 1,5: nhãn NORMAL.
Nến 14:25, trục basis. Nến thứ 20 trước đó là 11:15. Trong khoảng này hợp đồng đi +0,5 điểm, chỉ số đi +6,01 điểm. Ngưỡng là ATR của nến 14:25, bằng 2,65 điểm. Chỉ chân chỉ số vượt ngưỡng, nên nhãn là INDEX_LEADING (chỉ chân chỉ số đã đi). Nhãn này mô tả chân nào đã đi trong cửa sổ, không nói chân hợp đồng sẽ đi theo.
Ví dụ minh họa với số giả định: nếu hợp đồng đi −3 điểm, chỉ số đi −2,5 điểm và ATR là 2,5 điểm, cả hai chân đều đạt ngưỡng (bằng ngưỡng thì đạt) và cùng chiều giảm, nên nhãn là CONFIRMED_DOWN.
Những con số trên — ATR, giá hợp đồng, giá chỉ số — là số đo của các tầng phía trên; tầng nhãn chỉ so sánh chúng, như đã trình bày ở bài bốn tầng dữ liệu của một phiên VN30F1M. Ranh giới giữa đo và ước lượng nằm ở bài số đo và ước lượng trong dữ liệu vị thế.
Câu hỏi thường gặp
Nhãn trạng thái được gán như thế nào?
Mỗi trục có một bảng quy tắc ngắn, xét từ dòng đầu tới dòng cuối. Dòng đầu tiên có điều kiện đúng quyết định nhãn. Sau đó trục ghi số tiêu chí bổ trợ đạt và các con số đã dùng làm bằng chứng. Nếu thiếu đầu vào bắt buộc, nhãn để trống và ghi mã lý do.
Khi hai quy tắc cùng đúng thì nhãn nào thắng?
Quy tắc đứng trên thắng. Ở trục structure, breakout đang hiệu lực được xét trước xu hướng, nên nến 10:40 ngày 08/10/2026 mang nhãn BREAKOUT_UP dù cũng đủ điều kiện TREND_UP. Thứ tự này cố định trong phiên bản quy tắc, không thay đổi theo từng phiên hay từng nến.
Vì sao nhãn để trống thay vì lấy nhãn của nến trước?
Vì lấy nhãn nến trước là giả định trạng thái không đổi, điều dữ liệu không xác nhận. Một ô trống kèm mã lý do cho biết chính xác vì sao không có nhãn và khi nào sẽ có lại. Người dùng dữ liệu có thể tự quyết định bỏ qua nến đó, thay vì bị một nhãn đoán làm sai lệch thống kê.
Mã warmup_after_roll nghĩa là gì?
Đó là mã cho biết hợp đồng tháng gần nhất vừa đổi và số đo cần thêm nến của hợp đồng mới mới có giá trị. Phiên 16/10/2026, ATR 14 nến chưa có ở 13 nến đầu, còn nhãn basis cần nến thứ 20 trước đó trong cùng hợp đồng nên trống tới 10:35.
Số tiêu chí đạt có phải độ tin cậy của nhãn không?
Không. Đó là số điều kiện phụ trợ đang đúng, ví dụ 3 trên 4 phiếu xu hướng. Bộ quy tắc chưa đo xem nhãn đạt 4/4 có khác nhãn đạt 3/4 về kết quả nào, nên con số không mang ý nghĩa xác suất. Ngưỡng của regime-v1 cũng là giá trị khởi điểm, chưa hiệu chỉnh.
Giá trị bằng đúng ngưỡng thì nhãn có đạt không?
Có. Quy ước là bằng ngưỡng thì đạt: tỉ số biến động đúng 1,5 cho nhãn HIGH_VOL, mức đi đúng bằng ATR được coi là chân đã đi. Phép so dùng giá trị chưa làm tròn. Dữ liệu công khai làm tròn ATR tới hai chữ số, nên nhãn của nến sát ngưỡng tính lại có thể khác.
Nguồn tham khảo
- HNX – Hợp đồng tương lai chỉ số VN30: đặc tả hợp đồng, thời gian giao dịch và ngày giao dịch cuối cùng – hnx.vn – truy cập 19/10/2026
- HOSE – Quy tắc xây dựng và quản lý chỉ số HOSE-Index (chỉ số VN30) và thời gian giao dịch – hsx.vn – truy cập 19/10/2026
- Dữ liệu thị trường: Stockup Market Structure (
ms-v3) và Positioning (pos-v1), đã đối soát cuối ngày; nhãn do Stockup áp bảng quy tắcregime-v1lên số đo
Bảng quy tắc, ngưỡng và mã lý do là của phiên bản regime-v1, được rà soát định kỳ 6 tháng; số liệu gắn với phiên 16/10/2026 và 08/10/2026.
Lưu ý rủi ro: Bài viết giải thích cách số đo được chuyển thành nhãn và dùng dữ liệu đã xảy ra, không gợi ý hành động giao dịch nào dựa trên nhãn. Chứng khoán phái sinh dùng đòn bẩy — lãi và lỗ đều được khuếch đại.
Một ô trống có lý do còn hơn một ô đầy được đoán — đăng ký bản tin Stockup để đọc tiếp cách từng trục được tính.
