Ở phiên đầu của hợp đồng mới 41I1GB000 (16/10/2026), ATR trống 13 nến 5 phút đầu, trạng thái cấu trúc là UNKNOWN tới nến 10:50, hướng xu hướng trống cả phiên; basis và basis z-score vẫn có từ 09:15. Nhãn Giá–OI trống cả 15/10 lẫn 16/10.
Định nghĩa đầy đủ
Ngày roll là thời điểm chuỗi VN30F1M chuyển từ hợp đồng vừa đáo hạn sang hợp đồng tháng kế tiếp. Các số đo tính theo hợp đồng bắt đầu lại từ đầu, nên những nến đầu của hợp đồng mới thiếu một phần số đo; các số đo so với lịch sử theo bí danh thì vẫn có.
Lưu ý rủi ro: Nội dung mang tính giáo dục về dữ liệu, không phải tư vấn đầu tư. Việc một trường dữ liệu trống hay có giá trị không phải căn cứ để 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ớ
- 15/10/2026 là ngày đáo hạn của 41I1GA000; 16/10 là phiên đầu của 41I1GB000
- Phiên 16/10: atr_14 trống 13 nến, vùng 20 nến trống 19, trạng thái cấu trúc UNKNOWN 22 nến
- EMA 20, hướng xu hướng và nhãn structure trống cả 48 nến của phiên 16/10
- Basis và basis_z có từ nến 09:15 vì baseline đi theo bí danh, không theo hợp đồng
- Nhãn oi: 15/10 trống (expiry_settlement), 16/10 trống (oi_not_available)
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.
Ngày 15/10: ngày cuối của 41I1GA000
Ngày 15/10/2026 là ngày đáo hạn của hợp đồng 41I1GA000 — tức VN30F1M trong giai đoạn này. Ở ngày cuối, hợp đồng đã có hơn 900 nến 5 phút lịch sử, nên mọi số đo theo nến đều có giá trị. Chỉ có hai loại khoảng trống quen thuộc:
- Basis và basis z-score trống ở 3 nến 09:00–09:10, khi chỉ số VN30 chưa có nến.
- Nhãn basis trống ở 6 nến: 3 nến đầu phiên và 3 nến 10:40–10:50, vì nến thứ 20 trước chúng rơi vào khoảng trống đầu phiên.
Phiên đóng ở 1.839,8, đúng mức thấp nhất ngày; nhãn loại phiên là MIXED_DAY. Basis đóng cửa là −3,91 điểm.
Ngày 16/10: phiên đầu của 41I1GB000
Từ 16/10/2026, VN30F1M là hợp đồng 41I1GB000. Response của Market Structure ghi mốc chuyển hợp đồng trong trường roll_boundaries: lúc 09:00 ngày 16/10, từ 41I1GA000 sang 41I1GB000. Giá đóng 1.839,8 của ngày 15/10 và giá mở 1.852,0 của ngày 16/10 thuộc hai hợp đồng khác nhau, không so trực tiếp được — xem bài bước nhảy giá tại ngày roll.
Biểu đồ dưới đặt 48 nến của mỗi ngày cạnh nhau, với 10 trường thuộc ba tầng trên.
| Phiên | Nến | atr_14 (MS) | vùng 20 nến (MS) | EMA 20 (MS) | hướng xu hướng (MS) | trạng thái cấu trúc (MS) | basis (POS) | basis_z (POS) | nhãn volatility | nhãn basis | nhãn structure |
|---|---|---|---|---|---|---|---|---|---|---|---|
| 15/10 | 09:00 | 2,90 | 1.860,40 | 1.856,83 | DOWN | LH_LL | trống (index_bar_missing) | trống (index_bar_missing) | NORMAL | trống (index_bar_missing) | BREAKOUT_DOWN |
| 15/10 | 09:05 | 2,78 | 1.860,40 | 1.855,95 | DOWN | LH_LL | trống (index_bar_missing) | trống (index_bar_missing) | NORMAL | trống (index_bar_missing) | BREAKOUT_DOWN |
| 15/10 | 09:10 | 2,71 | 1.860,40 | 1.855,25 | DOWN | RANGE | trống (index_bar_missing) | trống (index_bar_missing) | NORMAL | trống (index_bar_missing) | BREAKOUT_DOWN |
| 15/10 | 09:15 | 2,72 | 1.860,40 | 1.854,73 | DOWN | RANGE | 0,04 | 0,03 | NORMAL | FUTURES_LEADING | BREAKOUT_DOWN |
| 15/10 | 09:20 | 2,76 | 1.860,40 | 1.854,15 | DOWN | RANGE | 1,62 | 0,41 | NORMAL | CONFIRMED_DOWN | BREAKOUT_DOWN |
| 15/10 | 09:25 | 2,66 | 1.860,20 | 1.853,57 | DOWN | RANGE | 2,27 | 0,30 | NORMAL | CONFIRMED_DOWN | TREND_DOWN |
| 15/10 | 09:30 | 2,55 | 1.860,20 | 1.853,04 | DOWN | RANGE | 3,14 | 0,59 | LOW_VOL | CONFIRMED_DOWN | TREND_DOWN |
| 15/10 | 09:35 | 2,43 | 1.859,50 | 1.852,57 | DOWN | LH_LL | 2,64 | 0,39 | LOW_VOL | CONFIRMED_DOWN | TREND_DOWN |
| 15/10 | 09:40 | 2,32 | 1.859,50 | 1.852,10 | DOWN | LH_LL | 4,44 | 0,98 | LOW_VOL | CONFIRMED_DOWN | TREND_DOWN |
| 15/10 | 09:45 | 2,39 | 1.859,50 | 1.851,93 | DOWN | LH_LL | 3,27 | 0,55 | LOW_VOL | CONFIRMED_DOWN | TREND_DOWN |
| 15/10 | 09:50 | 2,34 | 1.859,50 | 1.851,67 | DOWN | LH_LL | 3,69 | 0,59 | LOW_VOL | CONFIRMED_DOWN | TREND_DOWN |
| 15/10 | 09:55 | 2,30 | 1.859,50 | 1.851,33 | DOWN | LH_HL | 3,89 | 0,64 | LOW_VOL | CONFIRMED_DOWN | TREND_DOWN |
| 15/10 | 10:00 | 2,19 | 1.859,50 | 1.851,00 | DOWN | LH_HL | 3,62 | 0,62 | LOW_VOL | CONFIRMED_DOWN | TREND_DOWN |
| 15/10 | 10:05 | 2,10 | 1.859,50 | 1.850,72 | DOWN | LH_HL | 4,56 | 0,78 | LOW_VOL | CONFIRMED_DOWN | TREND_DOWN |
| 15/10 | 10:10 | 2,01 | 1.859,50 | 1.850,52 | DOWN | LH_HL | 4,05 | 0,71 | LOW_VOL | CONFIRMED_DOWN | RANGE hoặc MIXED |
| 15/10 | 10:15 | 1,92 | 1.859,50 | 1.850,32 | DOWN | LH_HL | 4,43 | 0,73 | LOW_VOL | CONFIRMED_DOWN | TREND_DOWN |
| 15/10 | 10:20 | 1,87 | 1.859,50 | 1.850,06 | DOWN | LH_HL | 4,46 | 0,84 | LOW_VOL | CONFIRMED_DOWN | TREND_DOWN |
| 15/10 | 10:25 | 2,05 | 1.859,50 | 1.849,58 | DOWN | LH_HL | 3,04 | 0,37 | LOW_VOL | CONFIRMED_DOWN | BREAKOUT_DOWN |
| 15/10 | 10:30 | 2,10 | 1.859,50 | 1.849,30 | DOWN | LH_HL | 3,70 | 0,55 | LOW_VOL | CONFIRMED_DOWN | TREND_DOWN |
| 15/10 | 10:35 | 2,04 | 1.851,80 | 1.849,10 | DOWN | LH_HL | 4,05 | 0,68 | LOW_VOL | CONFIRMED_DOWN | TREND_DOWN |
| 15/10 | 10:40 | 1,98 | 1.851,80 | 1.848,90 | DOWN | LH_LL | 3,66 | 0,44 | LOW_VOL | trống (index_bar_missing) | TREND_DOWN |
| 15/10 | 10:45 | 1,95 | 1.851,80 | 1.848,84 | DOWN | LH_LL | 2,90 | −0,02 | LOW_VOL | trống (index_bar_missing) | TREND_DOWN |
| 15/10 | 10:50 | 1,90 | 1.851,80 | 1.848,80 | DOWN | LH_LL | 1,92 | −0,12 | LOW_VOL | trống (index_bar_missing) | TREND_DOWN |
| 15/10 | 10:55 | 1,89 | 1.851,80 | 1.848,77 | DOWN | LH_LL | 2,47 | 0,10 | LOW_VOL | INDEX_LEADING | TREND_DOWN |
| 15/10 | 11:00 | 1,83 | 1.850,70 | 1.848,75 | DOWN | LH_LL | 3,17 | 0,26 | LOW_VOL | NEUTRAL | TREND_DOWN |
| 15/10 | 11:05 | 1,81 | 1.850,70 | 1.848,77 | DOWN | LH_LL | 2,73 | 0,00 | LOW_VOL | NEUTRAL | RANGE hoặc MIXED |
| 15/10 | 11:10 | 1,98 | 1.853,00 | 1.849,09 | FLAT | LH_LL | 4,40 | 0,42 | LOW_VOL | CONFIRMED_UP | BREAKOUT_UP |
| 15/10 | 11:15 | 2,02 | 1.853,80 | 1.849,42 | FLAT | LH_LL | 3,48 | 0,03 | LOW_VOL | CONFIRMED_UP | BREAKOUT_UP |
| 15/10 | 11:20 | 2,05 | 1.855,00 | 1.849,83 | FLAT | LH_LL | 2,75 | −0,11 | NORMAL | CONFIRMED_UP | BREAKOUT_UP |
| 15/10 | 11:25 | 2,07 | 1.855,10 | 1.850,33 | FLAT | LH_LL | 3,86 | 0,02 | NORMAL | CONFIRMED_UP | BREAKOUT_UP |
| 15/10 | 13:00 | 2,10 | 1.856,20 | 1.850,70 | FLAT | LH_LL | 4,07 | −0,01 | NORMAL | CONFIRMED_UP | BREAKOUT_UP |
| 15/10 | 13:05 | 2,09 | 1.856,20 | 1.851,09 | FLAT | LH_LL | 3,78 | 0,03 | NORMAL | CONFIRMED_UP | RANGE hoặc MIXED |
| 15/10 | 13:10 | 2,11 | 1.856,20 | 1.851,47 | FLAT | LH_LL | 2,64 | −0,23 | NORMAL | CONFIRMED_UP | RANGE hoặc MIXED |
| 15/10 | 13:15 | 2,14 | 1.856,70 | 1.851,87 | FLAT | LH_LL | 3,37 | 0,14 | NORMAL | CONFIRMED_UP | RANGE hoặc MIXED |
| 15/10 | 13:20 | 2,19 | 1.856,70 | 1.852,04 | FLAT | LH_LL | 2,40 | −0,23 | NORMAL | CONFIRMED_UP | RANGE hoặc MIXED |
| 15/10 | 13:25 | 2,16 | 1.856,70 | 1.852,22 | FLAT | LH_LL | 3,54 | 0,19 | NORMAL | CONFIRMED_UP | RANGE hoặc MIXED |
| 15/10 | 13:30 | 2,13 | 1.856,70 | 1.852,34 | FLAT | HH_LL | 3,24 | 0,14 | LOW_VOL | CONFIRMED_UP | RANGE hoặc MIXED |
| 15/10 | 13:35 | 2,15 | 1.856,70 | 1.852,32 | FLAT | HH_LL | 2,22 | −0,18 | LOW_VOL | CONFIRMED_UP | RANGE hoặc MIXED |
| 15/10 | 13:40 | 2,28 | 1.856,70 | 1.852,02 | FLAT | HH_LL | 2,04 | −0,26 | NORMAL | CONFIRMED_UP | RANGE hoặc MIXED |
| 15/10 | 13:45 | 2,31 | 1.856,70 | 1.851,64 | DOWN | HH_LL | 3,08 | 0,08 | NORMAL | NEUTRAL | TREND_DOWN |
| 15/10 | 13:50 | 2,32 | 1.856,70 | 1.851,35 | DOWN | HH_LL | 2,55 | 0,00 | NORMAL | INDEX_LEADING | TREND_DOWN |
| 15/10 | 13:55 | 2,24 | 1.856,70 | 1.851,02 | DOWN | HH_LL | 0,65 | −0,44 | LOW_VOL | NEUTRAL | TREND_DOWN |
| 15/10 | 14:00 | 2,29 | 1.856,70 | 1.850,69 | DOWN | HH_LL | 2,50 | 0,03 | LOW_VOL | NEUTRAL | TREND_DOWN |
| 15/10 | 14:05 | 2,22 | 1.856,70 | 1.850,35 | DOWN | HH_LL | 1,86 | 0,05 | LOW_VOL | NEUTRAL | TREND_DOWN |
| 15/10 | 14:10 | 2,20 | 1.856,70 | 1.849,95 | DOWN | HH_LL | 0,98 | −0,33 | LOW_VOL | FUTURES_LEADING | TREND_DOWN |
| 15/10 | 14:15 | 2,36 | 1.856,70 | 1.849,22 | DOWN | HH_LL | 2,60 | 0,16 | LOW_VOL | CONFIRMED_DOWN | BREAKOUT_DOWN |
| 15/10 | 14:20 | 2,34 | 1.856,70 | 1.848,38 | DOWN | HH_LL | 1,43 | −0,14 | LOW_VOL | CONFIRMED_DOWN | BREAKOUT_DOWN |
| 15/10 | 14:25 | 2,23 | 1.856,70 | 1.847,56 | DOWN | HH_LL | −3,91 | −1,30 | LOW_VOL | CONFIRMED_DOWN | TREND_DOWN |
| 16/10 | 09:00 | trống (warmup_after_roll) | trống (warmup_after_roll) | trống (warmup_after_roll) | trống (warmup_after_roll) | UNKNOWN | trống (index_bar_missing) | trống (index_bar_missing) | trống (warmup_after_roll) | trống (index_bar_missing) | trống (warmup_after_roll) |
| 16/10 | 09:05 | trống (warmup_after_roll) | trống (warmup_after_roll) | trống (warmup_after_roll) | trống (warmup_after_roll) | UNKNOWN | trống (index_bar_missing) | trống (index_bar_missing) | trống (warmup_after_roll) | trống (index_bar_missing) | trống (warmup_after_roll) |
| 16/10 | 09:10 | trống (warmup_after_roll) | trống (warmup_after_roll) | trống (warmup_after_roll) | trống (warmup_after_roll) | UNKNOWN | trống (index_bar_missing) | trống (index_bar_missing) | trống (warmup_after_roll) | trống (index_bar_missing) | trống (warmup_after_roll) |
| 16/10 | 09:15 | trống (warmup_after_roll) | trống (warmup_after_roll) | trống (warmup_after_roll) | trống (warmup_after_roll) | UNKNOWN | 3,30 | 0,82 | trống (warmup_after_roll) | trống (warmup_after_roll) | trống (warmup_after_roll) |
| 16/10 | 09:20 | trống (warmup_after_roll) | trống (warmup_after_roll) | trống (warmup_after_roll) | trống (warmup_after_roll) | UNKNOWN | 3,39 | 0,89 | trống (warmup_after_roll) | trống (warmup_after_roll) | trống (warmup_after_roll) |
| 16/10 | 09:25 | trống (warmup_after_roll) | trống (warmup_after_roll) | trống (warmup_after_roll) | trống (warmup_after_roll) | UNKNOWN | 2,80 | 0,41 | trống (warmup_after_roll) | trống (warmup_after_roll) | trống (warmup_after_roll) |
| 16/10 | 09:30 | trống (warmup_after_roll) | trống (warmup_after_roll) | trống (warmup_after_roll) | trống (warmup_after_roll) | UNKNOWN | 4,12 | 0,83 | trống (warmup_after_roll) | trống (warmup_after_roll) | trống (warmup_after_roll) |
| 16/10 | 09:35 | trống (warmup_after_roll) | trống (warmup_after_roll) | trống (warmup_after_roll) | trống (warmup_after_roll) | UNKNOWN | 4,77 | 0,88 | trống (warmup_after_roll) | trống (warmup_after_roll) | trống (warmup_after_roll) |
| 16/10 | 09:40 | trống (warmup_after_roll) | trống (warmup_after_roll) | trống (warmup_after_roll) | trống (warmup_after_roll) | UNKNOWN | 3,23 | 0,68 | trống (warmup_after_roll) | trống (warmup_after_roll) | trống (warmup_after_roll) |
| 16/10 | 09:45 | trống (warmup_after_roll) | trống (warmup_after_roll) | trống (warmup_after_roll) | trống (warmup_after_roll) | UNKNOWN | 3,05 | 0,50 | trống (warmup_after_roll) | trống (warmup_after_roll) | trống (warmup_after_roll) |
| 16/10 | 09:50 | trống (warmup_after_roll) | trống (warmup_after_roll) | trống (warmup_after_roll) | trống (warmup_after_roll) | UNKNOWN | 3,65 | 0,59 | trống (warmup_after_roll) | trống (warmup_after_roll) | trống (warmup_after_roll) |
| 16/10 | 09:55 | trống (warmup_after_roll) | trống (warmup_after_roll) | trống (warmup_after_roll) | trống (warmup_after_roll) | UNKNOWN | 3,21 | 0,48 | trống (warmup_after_roll) | trống (warmup_after_roll) | trống (warmup_after_roll) |
| 16/10 | 10:00 | trống (warmup_after_roll) | trống (warmup_after_roll) | trống (warmup_after_roll) | trống (warmup_after_roll) | UNKNOWN | 2,27 | 0,27 | trống (warmup_after_roll) | trống (warmup_after_roll) | trống (warmup_after_roll) |
| 16/10 | 10:05 | 3,50 | trống (warmup_after_roll) | trống (warmup_after_roll) | trống (warmup_after_roll) | UNKNOWN | 2,29 | 0,23 | NORMAL | trống (warmup_after_roll) | trống (warmup_after_roll) |
| 16/10 | 10:10 | 3,37 | trống (warmup_after_roll) | trống (warmup_after_roll) | trống (warmup_after_roll) | UNKNOWN | 3,47 | 0,56 | NORMAL | trống (warmup_after_roll) | trống (warmup_after_roll) |
| 16/10 | 10:15 | 3,24 | trống (warmup_after_roll) | trống (warmup_after_roll) | trống (warmup_after_roll) | UNKNOWN | 3,58 | 0,50 | NORMAL | trống (warmup_after_roll) | trống (warmup_after_roll) |
| 16/10 | 10:20 | 3,36 | trống (warmup_after_roll) | trống (warmup_after_roll) | trống (warmup_after_roll) | UNKNOWN | 0,77 | −0,22 | NORMAL | trống (warmup_after_roll) | trống (warmup_after_roll) |
| 16/10 | 10:25 | 3,37 | trống (warmup_after_roll) | trống (warmup_after_roll) | trống (warmup_after_roll) | UNKNOWN | 2,10 | 0,10 | NORMAL | trống (warmup_after_roll) | trống (warmup_after_roll) |
| 16/10 | 10:30 | 3,32 | trống (warmup_after_roll) | trống (warmup_after_roll) | trống (warmup_after_roll) | UNKNOWN | 1,26 | −0,18 | NORMAL | trống (warmup_after_roll) | trống (warmup_after_roll) |
| 16/10 | 10:35 | 3,21 | 1.864,60 | trống (warmup_after_roll) | trống (warmup_after_roll) | UNKNOWN | 1,45 | −0,15 | NORMAL | trống (warmup_after_roll) | trống (warmup_after_roll) |
| 16/10 | 10:40 | 3,09 | 1.864,60 | trống (warmup_after_roll) | trống (warmup_after_roll) | UNKNOWN | 2,54 | 0,09 | NORMAL | trống (index_bar_missing) | trống (warmup_after_roll) |
| 16/10 | 10:45 | 2,97 | 1.864,60 | trống (warmup_after_roll) | trống (warmup_after_roll) | UNKNOWN | 4,01 | 0,36 | NORMAL | trống (index_bar_missing) | trống (warmup_after_roll) |
| 16/10 | 10:50 | 2,98 | 1.864,60 | trống (warmup_after_roll) | trống (warmup_after_roll) | RANGE | 4,39 | 0,67 | NORMAL | trống (index_bar_missing) | trống (warmup_after_roll) |
| 16/10 | 10:55 | 2,97 | 1.864,60 | trống (warmup_after_roll) | trống (warmup_after_roll) | RANGE | 3,19 | 0,32 | NORMAL | NEUTRAL | trống (warmup_after_roll) |
| 16/10 | 11:00 | 2,81 | 1.864,60 | trống (warmup_after_roll) | trống (warmup_after_roll) | RANGE | 4,35 | 0,59 | NORMAL | NEUTRAL | trống (warmup_after_roll) |
| 16/10 | 11:05 | 2,76 | 1.864,60 | trống (warmup_after_roll) | trống (warmup_after_roll) | RANGE | 5,65 | 0,97 | NORMAL | INDEX_LEADING | trống (warmup_after_roll) |
| 16/10 | 11:10 | 2,77 | 1.864,60 | trống (warmup_after_roll) | trống (warmup_after_roll) | RANGE | 5,64 | 0,78 | NORMAL | NEUTRAL | trống (warmup_after_roll) |
| 16/10 | 11:15 | 2,71 | 1.864,60 | trống (warmup_after_roll) | trống (warmup_after_roll) | RANGE | 5,20 | 0,55 | NORMAL | CONFIRMED_DOWN | trống (warmup_after_roll) |
| 16/10 | 11:20 | 2,70 | 1.864,60 | trống (warmup_after_roll) | trống (warmup_after_roll) | RANGE | 6,55 | 0,96 | NORMAL | INDEX_LEADING | trống (warmup_after_roll) |
| 16/10 | 11:25 | 2,68 | 1.864,60 | trống (warmup_after_roll) | trống (warmup_after_roll) | RANGE | 5,32 | 0,44 | NORMAL | INDEX_LEADING | trống (warmup_after_roll) |
| 16/10 | 13:00 | 2,71 | 1.864,50 | trống (warmup_after_roll) | trống (warmup_after_roll) | RANGE | 4,97 | 0,28 | NORMAL | CONFIRMED_DOWN | trống (warmup_after_roll) |
| 16/10 | 13:05 | 2,62 | 1.861,90 | trống (warmup_after_roll) | trống (warmup_after_roll) | HH_LL | 4,98 | 0,42 | NORMAL | CONFIRMED_DOWN | trống (warmup_after_roll) |
| 16/10 | 13:10 | 2,52 | 1.861,90 | trống (warmup_after_roll) | trống (warmup_after_roll) | HH_LL | 7,16 | 1,20 | NORMAL | CONFIRMED_DOWN | trống (warmup_after_roll) |
| 16/10 | 13:15 | 2,60 | 1.861,90 | trống (warmup_after_roll) | trống (warmup_after_roll) | LH_LL | 5,33 | 0,78 | NORMAL | CONFIRMED_DOWN | trống (warmup_after_roll) |
| 16/10 | 13:20 | 2,59 | 1.861,90 | trống (warmup_after_roll) | trống (warmup_after_roll) | LH_LL | 4,37 | 0,43 | NORMAL | CONFIRMED_DOWN | trống (warmup_after_roll) |
| 16/10 | 13:25 | 2,50 | 1.861,70 | trống (warmup_after_roll) | trống (warmup_after_roll) | LH_LL | 5,24 | 0,68 | NORMAL | CONFIRMED_DOWN | trống (warmup_after_roll) |
| 16/10 | 13:30 | 2,62 | 1.861,00 | trống (warmup_after_roll) | trống (warmup_after_roll) | LH_LL | 5,85 | 0,99 | NORMAL | CONFIRMED_DOWN | trống (warmup_after_roll) |
| 16/10 | 13:35 | 2,54 | 1.858,70 | trống (warmup_after_roll) | trống (warmup_after_roll) | LH_LL | 6,25 | 1,11 | NORMAL | CONFIRMED_DOWN | trống (warmup_after_roll) |
| 16/10 | 13:40 | 2,46 | 1.858,50 | trống (warmup_after_roll) | trống (warmup_after_roll) | LH_LL | 4,79 | 0,64 | NORMAL | CONFIRMED_DOWN | trống (warmup_after_roll) |
| 16/10 | 13:45 | 2,40 | 1.858,50 | trống (warmup_after_roll) | trống (warmup_after_roll) | LH_LL | 6,41 | 1,23 | NORMAL | INDEX_LEADING | trống (warmup_after_roll) |
| 16/10 | 13:50 | 2,31 | 1.858,50 | trống (warmup_after_roll) | trống (warmup_after_roll) | LH_LL | 5,76 | 1,15 | NORMAL | CONFIRMED_DOWN | trống (warmup_after_roll) |
| 16/10 | 13:55 | 2,41 | 1.858,50 | trống (warmup_after_roll) | trống (warmup_after_roll) | LH_LL | 4,55 | 0,81 | NORMAL | INDEX_LEADING | trống (warmup_after_roll) |
| 16/10 | 14:00 | 2,48 | 1.858,50 | trống (warmup_after_roll) | trống (warmup_after_roll) | LH_LL | 4,66 | 0,66 | NORMAL | NEUTRAL | trống (warmup_after_roll) |
| 16/10 | 14:05 | 2,57 | 1.857,80 | trống (warmup_after_roll) | trống (warmup_after_roll) | LH_LL | 3,60 | 0,51 | NORMAL | CONFIRMED_DOWN | trống (warmup_after_roll) |
| 16/10 | 14:10 | 2,58 | 1.857,80 | trống (warmup_after_roll) | trống (warmup_after_roll) | LH_LL | 3,70 | 0,45 | NORMAL | CONFIRMED_DOWN | trống (warmup_after_roll) |
| 16/10 | 14:15 | 2,60 | 1.857,80 | trống (warmup_after_roll) | trống (warmup_after_roll) | HH_LL | 4,21 | 0,60 | NORMAL | NEUTRAL | trống (warmup_after_roll) |
| 16/10 | 14:20 | 2,65 | 1.857,80 | trống (warmup_after_roll) | trống (warmup_after_roll) | HH_LL | 3,80 | 0,74 | NORMAL | NEUTRAL | trống (warmup_after_roll) |
| 16/10 | 14:25 | 2,65 | 1.857,80 | trống (warmup_after_roll) | trống (warmup_after_roll) | HH_LL | −0,31 | −0,46 | NORMAL | INDEX_LEADING | trống (warmup_after_roll) |
Khung 5 phút. MS = Market Structure, POS = Positioning. "Trống" kèm mã lý do; trạng thái cấu trúc UNKNOWN là giá trị hợp lệ nhưng chưa mang thông tin. 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.
Đi qua từng tầng
Tầng dữ liệu thô. Nến của 41I1GB000 có đủ 48 nến 5 phút. Không có gì trống: hợp đồng đã giao dịch từ trước, chỉ là chưa ở vai trò tháng gần nhất.
Tầng Market Structure. Mọi số đo dựa trên giá bắt đầu lại:
- ATR 14 nến có từ nến thứ 14 (10:05).
- Vùng giá 20 nến có từ nến thứ 20 (10:35).
- Trạng thái cấu trúc là UNKNOWN cho tới khi đủ đỉnh đáy được xác nhận: chuyển sang RANGE ở nến 10:50.
- EMA 20 và hướng xu hướng trống cả phiên; chúng cần 60 và 150 nến của hợp đồng. Chi tiết từng mốc nằm ở bài warmup.
Tầng Positioning. Basis có từ nến 09:15 như mọi ngày. Basis z-score cũng có từ 09:15, vì baseline 20 phiên của nó đi theo chuỗi VN30F1M — tức dùng cả các phiên của 41I1GA000.
Tầng nhãn. Ba trục theo nến chịu ảnh hưởng khác nhau:
volatilitycó từ 10:05, ngay khi có ATR, vì baseline cùng giờ đi theo bí danh.basiscó từ 10:55: cần nến thứ 20 trước đó trong cùng hợp đồng, và cả hai nến phải có chỉ số. 17 nến 09:15–10:35 trống với mãwarmup_after_roll, 6 nến trống với mãindex_bar_missing.structuretrống cả phiên vì cần hướng xu hướng.
Hai nhãn theo ngày cũng trống, nhưng vì lý do khác:
- 15/10,
expiry_settlement. OI sau phiên đáo hạn không còn dòng của hợp đồng vừa thanh toán. Tổng OI tụt từ 34.646 xuống 25.269 hợp đồng chỉ vì thanh toán, nên so sánh hai ngày không mô tả vị thế. - 16/10,
oi_not_available. Danh mục ngày 16/10 có bốn kỳ hạn, trong đó41I1H6000mới vào danh mục và chưa có dòng OI. Thiếu OI của một hợp đồng thì không tính tổng. Thêm nữa, thay đổi giá so với phiên trước cũng không có vì phiên trước thuộc hợp đồng khác.
Loại phiên vẫn có nhãn ở cả hai ngày — RANGE_DAY ngày 16/10 — vì nó chỉ cần giá mở, cao, thấp, đóng của chính phiên đó.
Vì sao basis và basis_z không bị trống
Basis không phụ thuộc lịch sử: nó là giá hợp đồng trừ chỉ số ở cùng phút, tính được ngay từ nến đầu tiên có cả hai chân. Basis z-score phụ thuộc lịch sử, nhưng lịch sử đó là của chuỗi VN30F1M chứ không phải của một hợp đồng, như đã giải thích ở bài baseline theo khe giờ. Đưa các phiên của hợp đồng cũ vào baseline không gây sai, vì thứ được so là chênh lệch giữa hai chân, không phải mức giá.
Ngược lại, nhãn basis dùng mức đi của giá hợp đồng trong 20 nến. Mức đi đó chỉ có nghĩa khi hai đầu cửa sổ cùng một hợp đồng, nên nhãn phải chờ.
Hệ quả khi đọc và kiểm định dữ liệu
- Đầu mỗi hợp đồng là một vùng mỏng dữ liệu. Mỗi tháng có một vùng như vậy. Quy tắc nào dùng hướng xu hướng sẽ không có giá trị trong khoảng ba phiên đầu của mọi hợp đồng.
- Ngày đáo hạn có số đo đủ, nhưng nhãn Giá–OI thì không. Tổng OI giảm mạnh ở ngày này là do thanh toán, không phải do người giao dịch đóng vị thế.
- Không nối chuỗi để lấp chỗ trống. Mang EMA hay ATR từ hợp đồng cũ sang hợp đồng mới sẽ đưa bước nhảy giá vào số đo.
- Báo cáo cỡ mẫu sau khi loại các nến trống. Cách mỗi ô trống được ghi mã lý do được trình bày ở bài từ số đo tới nhãn trạng thái; thứ tự phụ thuộc giữa các tầng ở bài bốn tầng dữ liệu của một phiên VN30F1M.
Ví dụ minh họa: một nghiên cứu dùng điều kiện "hướng xu hướng là UP" trên 20 hợp đồng, mỗi hợp đồng 20 phiên. Nếu ba phiên đầu mỗi hợp đồng không có hướng xu hướng, khoảng 60 trên 400 phiên — 15% mẫu — tự động bị loại, và toàn bộ đều là các phiên xa ngày đáo hạn nhất.
Câu hỏi thường gặp
Ngày roll của VN30F1M là gì?
Là phiên giao dịch đầu tiên sau ngày đáo hạn, khi chuỗi VN30F1M chuyển sang hợp đồng tháng kế tiếp. Với kỳ tháng 10/2026, ngày đáo hạn là 15/10 và từ 16/10 VN30F1M là hợp đồng 41I1GB000. Mã hợp đồng thật luôn được ghi trên từng dòng dữ liệu.
Sau ngày roll, dữ liệu VN30F1M thiếu những gì?
Các số đo dựa trên giá của hợp đồng mới: ATR trống 13 nến 5 phút đầu, vùng 20 nến trống 19 nến, trạng thái cấu trúc UNKNOWN tới 10:50, EMA 20 và hướng xu hướng trống cả phiên đầu. Kéo theo đó là nhãn basis trống tới 10:50 và nhãn structure trống cả phiên.
Vì sao basis vẫn có ngay ở hợp đồng mới?
Vì basis chỉ cần giá hợp đồng và chỉ số ở cùng một phút, không cần lịch sử. Basis z-score cần 20 phiên lịch sử, nhưng lịch sử đó lấy theo chuỗi VN30F1M, gồm cả các phiên của hợp đồng trước. Cả hai vì vậy có từ nến 09:15, như mọi phiên khác.
Vì sao nhãn Giá–OI trống ở ngày đáo hạn?
Vì sau phiên đáo hạn, hợp đồng vừa thanh toán không còn OI, tổng OI các kỳ hạn giảm mạnh chỉ do thanh toán. Ngày 15/10/2026 tổng OI giảm từ 34.646 xuống 25.269 hợp đồng. So sánh như vậy không mô tả vị thế, nên nhãn để trống với mã expiry_settlement.
Mất bao lâu để mọi số đo có lại sau roll?
Số đo ngắn như ATR có lại trong khoảng một giờ của phiên đầu. EMA 20 cần sang phiên thứ hai. Hướng xu hướng và EMA 50 cần 150 nến 5 phút, tức tới phiên thứ tư của hợp đồng. Các nhãn dùng chúng, như nhãn structure, có lại cùng lúc.
Có nên bỏ các phiên đầu hợp đồng khi kiểm định không?
Không nên bỏ một cách mặc định, mà cần biết chúng bị mất ở đâu. Một quy tắc dùng hướng xu hướng tự động mất ba phiên đầu mỗi hợp đồng; một quy tắc chỉ dùng basis thì không. Báo cáo kiểm định nên ghi rõ số phiên bị loại vì warmup và chúng nằm ở đâu trong chu kỳ hợp đồng.
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
- VSDC – Bù trừ, thanh toán và thanh toán cuối cùng hợp đồng tương lai chỉ số – vsdc.vn – truy cập 19/10/2026
- Dữ liệu OI: Stockup, view
open_interest_daily(OI sau phiên theo hợp đồng); giá: Market Structurems-v3; nhãn theo bảng quy tắcregime-v1
Số nến warmup, quy tắc của trục oi và danh mục kỳ hạn là tham số của ms-v3, pos-v1, regime-v1 và của sở giao dịch, được rà soát định kỳ 6 tháng; số liệu gắn với kỳ roll 15→16/10/2026.
Lưu ý rủi ro: Bài viết mô tả những gì thay đổi trong dữ liệu quanh ngày roll và dùng dữ liệu đã xảy ra, không gợi ý hành động giao dịch nào. Chứng khoán phái sinh dùng đòn bẩy — lãi và lỗ đều được khuếch đại.
Ngày roll không chỉ đổi mã hợp đồng mà còn đổi những gì dữ liệu biết — đăng ký bản tin Stockup để nhận bài tiếp theo.
