1. Mô tả Multitimeframe Fair Value Gap – FVG Strategy
Trên khung thời gian được chọn, chỉ báo canh "khoảng trống" ba nến kinh điển — nến hiện tại mở hoàn toàn phía trên (hoặc phía dưới) biên độ của nến cách đó hai nến — và chỉ giữ lại khi thân nến hiện tại đủ lớn so với thân nến trung bình. Mỗi khoảng trống đạt chuẩn được vẽ thành một hộp xám có đường giữa nét đứt và hai thanh nửa hộp cho thấy nến đã đóng cửa thế nào, nằm trên chart cho tới khi giá lấp đầy, và có thể được liệt kê ở một bảng bên lề phải. Phía trên là một đường trend đã làm mượt, bị kéo bởi mỗi khoảng trống mới.
1.1 Concept của chỉ báo
Chỉ báo trả lời bốn câu hỏi đơn giản: "Giá đã chạy nhanh tới mức để lại một cái hố chưa được giao dịch ở đâu? Cú chạy đó có đủ lớn để đáng quan tâm không? Giá đã quay lại lấp cái hố chưa? Và nhìn tổng thể, những cái hố này kéo xu hướng về phía nào?" Cái hố đó gọi là Fair Value Gap (FVG) — còn gọi là imbalance (mất cân bằng): một vùng giá mà trong ba cây nến liên tiếp, phe mua hoặc phe bán áp đảo hoàn toàn tới mức hai cây nến ngoài cùng thậm chí không chạm vào nhau.
- FVG là khoảng trống giữa nến 1 và nến 3. Lấy ba nến liên tiếp. Nếu đáy của nến mới nhất nằm cao hơn đỉnh của nến cách đó hai nến, vùng giá giữa hai mức đó đã bị thị trường "nhảy qua" trong một nhịp đẩy lên mạnh — đó là FVG tăng (Bullish FVG) (mất cân bằng phía mua). Nếu đỉnh của nến mới nhất nằm thấp hơn đáy của nến cách đó hai nến, đó là FVG giảm (Bearish FVG) (mất cân bằng phía bán). Nến ở giữa là cây nến đã "nhảy".
- Niềm tin nền tảng: thị trường có xu hướng quay lại "cân bằng" những cái hố như vậy, nên một khoảng trống chưa lấp là một thỏi nam châm và một vùng phản ứng khả dĩ — hỗ trợ nếu là FVG tăng nằm dưới giá, kháng cự nếu là FVG giảm nằm trên giá.
- Chỉ những khoảng trống mạnh mới được tính. Thân của nến mới nhất phải lớn ít nhất bằng thân nến trung bình đã thấy tới giờ (nhân với một hệ số nhạy). Những khoảng trống nhỏ, nhiễu bị loại. (Trong code, thân nến này được gọi là "wick" nhưng thực ra là khoảng cách mở–đóng.)
- Khung thời gian tuỳ chọn, vẽ trên chart bất kỳ. Khoảng trống có thể được tính trên khung khác với khung bạn đang xem (ví dụ FVG khung 1 giờ vẽ trên chart 15 phút). FVG của khung lớn thì to hơn và thường được coi là quan trọng hơn.
- Đọc cây nến: ai đã đóng cửa nó? Trong mỗi hộp có hai thanh nửa hộp cho thấy nến mới nhất đóng cửa ở đâu trong biên độ cao–thấp của chính nó. Đóng gần đỉnh = phe mua có tiếng nói cuối; gần đáy = phe bán. Không dùng khối lượng thật.
- Một khoảng trống "chết" khi giá lấp nó (mitigation). Mặc định ngay khi giá chạm tới điểm giữa của khoảng trống; tuỳ chọn là chỉ khi giá xuyên hết cả khoảng trống.
- Đường FVG trend. Một đường mượt bám theo giá, hơi nghiêng về một mức được kéo về phía giá hiện tại mỗi khi có một khoảng trống mới; được tô màu theo việc mức đó vừa tăng hay vừa giảm.
Tóm lại: một công cụ tự động tìm vùng mất cân bằng có bộ lọc chất lượng (kích thước thân nến), có quản lý vùng (còn sống / đã lấp), có cách đọc nhanh "ai đóng cây nến" và một thước đo xu hướng. Nó dựa trên mẫu hình, không dựa trên khối lượng, và — khác với nhiều chỉ báo vùng — không có alert nào.
1.2 Chức năng của chỉ báo
-
Hiển thị:
- Hộp FVG: một hộp màu xám (trong suốt 85%) phủ đúng khoảng trống — từ đỉnh của nến cũ tới đáy của nến mới nhất (FVG tăng), hoặc từ đỉnh của nến mới nhất tới đáy của nến cũ (FVG giảm). Hộp bắt đầu từ nến cũ và kết thúc 10 nến chart (mặc định) sau cực trị của nến mới nhất. Nó không kéo dài tới hiện tại, nên một khoảng trống cũ nhưng còn hiệu lực hiện ra như một hộp ngắn nằm xa bên trái. Hộp tăng và hộp giảm trông y hệt nhau: phân biệt bằng vị trí so với giá.
- Đường giữa: một đường nét đứt màu trắng cắt ngang hộp ở mức giá nửa đường của khoảng trống.
- Hai thanh nửa hộp (tách mua / bán): nửa trên của khoảng trống chứa một thanh xanh ngọc có độ dài bằng "% mua" của bề rộng hộp; nửa dưới chứa một thanh đỏ có độ dài bằng "% bán". Hai số cộng lại thành 100%. Cả hai mặc định trong suốt 50%.
- Bảng FVG (tuỳ chọn, mặc định tắt): một cột ở lề phải (khoảng 50–100 nến sau nến cuối) lặp lại mọi khoảng trống còn sống ở đúng mức giá, kèm ngày giờ bên trong. Bản sao có màu đỏ nếu giá đóng cửa hiện tại nằm dưới khoảng trống, ngược lại xanh ngọc. Phía sau là một khung mảnh màu xám trải suốt toàn bộ lịch sử giá.
- Đường FVG trend (mặc định bật): một đường mượt, màu xanh lá khi mức nền đang tăng và đỏ khi đang giảm, kèm vùng tô chuyển sắc nhẹ (trong suốt 70%) hướng về một đường trung bình ngắn.
- Alert: Chỉ báo KHÔNG có lệnh alertcondition() nào. Muốn được thông báo phải tự tạo alert thủ công trên TradingView, hoặc bổ sung code.
1.3 Cách dùng chỉ báo
- Coi mỗi hộp là một "nam châm và vùng phản ứng". Hộp xám dưới giá là FVG tăng — canh giá nhúng về và bật lên (lệnh mua). Hộp trên giá là FVG giảm — canh giá hồi lên và bị từ chối (lệnh bán). Hộp còn trên chart chỉ vì giá chưa lấp nó.
- Giao dịch lúc giá quay lại, không phải lúc hộp được tạo. Hộp xuất hiện ngay khi khoảng trống hoàn tất, lúc giá đang chạy xa. Kế hoạch kinh điển là chờ giá hồi vào vùng và tìm xác nhận ở đó. Bản thân chỉ báo không đưa tín hiệu vào lệnh.
- Dùng đường giữa như mốc "lấp một nửa". Mặc định khoảng trống bị xoá khi giá chạm đường giữa, nên đường giữa là ranh giới mà vượt qua thì vùng coi như đã dùng. Phản ứng bắt đầu tại mép hộp hoặc trước đường giữa là trường hợp đẹp hơn.
- Tăng Sensativity để chỉ giữ các khoảng trống có lực đẩy. Ví dụ: ở 1.0 thân nến mới nhất phải ít nhất bằng thân trung bình; ở 2.0 phải ít nhất gấp đôi — ít khoảng trống hơn nhưng mạnh hơn. Ở 0 mọi khoảng trống đều qua, kể cả nhiễu.
- Đọc phần tách mua / bán như một yếu tố phân định. FVG tăng có thanh xanh ngọc dài nghĩa là cây nến tạo ra nó đóng gần đỉnh — một cú đẩy mạnh, dứt khoát. Thanh xanh ngọc ngắn nghĩa là nó đã yếu đi trước khi đóng.
- Chọn khung thời gian có chủ đích. Để trống Timeframe thì dùng khung của chính chart. Chọn khung cao hơn (VD 60 trên chart 15 phút) để thấy các mất cân bằng lớn hơn trong khi giao dịch ở chart nhỏ. Tránh chọn khung thấp hơn chart.
- Nhớ rằng các khoảng trống liên tiếp chỉ được vẽ một lần. Trong xu hướng mạnh, nhiều nến liên tiếp có thể đều để lại khoảng trống; chỉ khoảng trống đầu tiên của chuỗi được vẽ (xem Flow 2). Thiếu hộp giữa một chuỗi như vậy không phải lỗi.
- Dùng bảng FVG khi chart quá rối. Kéo chart sang phải một chút là thấy; bảng liệt kê mọi khoảng trống còn sống kèm ngày giờ để tìm vùng gần nhất phía trên và phía dưới giá.
- Dùng đường trend như thiên hướng chậm, không phải tín hiệu. Nó chủ yếu bám theo giá, nên xanh lá / đỏ cho bạn biết mức khoảng trống gần nhất bị kéo lên hay xuống. Theo thiết kế nó mượt và chậm hơn giá, và bị méo ở đầu chart (xem ghi chú).
1.4 Cách hoạt động của chỉ báo
Đầu vào & vai trò
- tf ("Timeframe", ô chọn khung thời gian, nhóm "FVG Timeframe", mặc định để trống = khung của chart): khung thời gian dùng để đọc nến và tìm khoảng trống. Ví dụ: trên chart M15, để trống → dùng nến M15; chọn "60" → dùng nến H1, nên "khoảng trống ba nến" nghĩa là ba nến H1. Input này không có tooltip riêng; phần giải thích nằm ở input kế bên.
- BodySens ("Sensativity" — Settings viết đúng như vậy —, số thập phân, mặc định 1.0, step 0.1, min 0, cùng hàng với Timeframe): bộ lọc kích thước thân nến. Thân của nến mới nhất phải lớn ít nhất thân trung bình × con số này. Trước/sau: 0 → không lọc, vẽ mọi khoảng trống; 1.0 → thân ít nhất bằng trung bình; 2.0 → ít nhất gấp đôi trung bình (ít hơn, mạnh hơn). Ví dụ: thân trung bình 2,5 điểm, thân nến mới nhất 4 → qua ở 1.0 (cần 2,5), trượt ở 2.0 (cần 5,0).
- mit ("Mitigated on mid", ô tick, nhóm "FVG Mitigation", mặc định bật): bật = khoảng trống bị xoá ngay khi giá chạm điểm giữa; tắt = chỉ khi giá xuyên hết cả khoảng trống tới mép xa. Ví dụ: FVG tăng 2644–2647, điểm giữa 2645,5. Nến có đáy 2645,4 xoá nó khi "bật"; khi "tắt" nó sống tới khi có đáy 2644 hoặc thấp hơn.
- showActive ("Show FVG table", ô tick, nhóm "FVG Table", mặc định tắt): bật / tắt bảng ở lề phải. Chỉ là hiển thị — logic không bị ảnh hưởng.
- TableLeft ("Table Left", số nguyên 0–30, mặc định 5) và TableRight ("Right", số nguyên 10–50, mặc định 10): vị trí bảng bắt đầu và kết thúc, tính theo bước 10 nến về bên phải nến hiện tại. Mặc định → từ 50 đến 100 nến phía trước. Ví dụ: Left 5 / Right 10 = một cột rộng 50 nến; Left 0 / Right 20 = bắt đầu ngay tại nến cuối, rộng 200 nến. Chỉ có ý nghĩa khi bảng đang bật.
- extendLength ("Extend Boxes", số nguyên, nhóm "FVG Style", mặc định 10, không giới hạn): số nến chart mà hộp được kéo dài qua cực trị của nến mới nhất. Ví dụ: trên M15, 10 nến = 2,5 giờ sau đỉnh (FVG tăng) hoặc đáy (FVG giảm) của nến mới nhất. Thuần thẩm mỹ: khoảng trống vẫn sống cho tới khi giá lấp, dù cũ tới đâu.
- UpCol / DnCol / Col (ba ô màu cùng một hàng, không có tên): UpCol mặc định xanh ngọc (#00ffbb, trong suốt 50%) tô các thanh mua và các bản sao "xanh" trong bảng; DnCol mặc định đỏ (#ff1100, 50%) tô các thanh bán và các bản sao "đỏ" trong bảng; Col mặc định xám (trong suốt 85%) tô chính hộp FVG. Chỉ đổi màu.
- showTrend ("Show FVG Trend", ô tick, nhóm "Trend", mặc định bật): hiện / ẩn đường trend và vùng tô. Tắt = không vẽ gì của trend (phép tính vẫn chạy).
- rp ("Passband Ripple (dB)", số thập phân, mặc định 10.0, min 0.1, step 0.1) và fc ("Cutoff Frequency (0 to 0.5)", số thập phân, mặc định 0.1, min 0.001, max 0.5, step 0.01): hai núm chỉnh của bộ lọc làm mượt. fc là tốc độ: 0.1 xấp xỉ "một chu kỳ trên 10 nến", nên nhỏ hơn = chậm và mượt hơn, lớn hơn = nhanh hơn. rp định hình bộ lọc (phần ghi chú giải thích một điều bất ngờ về chiều tác dụng của nó).
- TUpCol (mặc định xanh lá) và TDnCol (mặc định đỏ), cùng một hàng, nhóm "Trend": màu của trend khi đang đi lên / đi xuống.
Hằng số cố định trong code (KHÔNG phải input)
- Yêu cầu dữ liệu: các con số lấy từ request.security với lookahead_on và không lùi một nến.
- Dò thời gian: bốn lượt quét, mỗi lượt tối đa 5000 nến chart về trước (for i = 0 to 4999) để tìm thời điểm của từng mức giá then chốt.
- Thân nến trung bình: trung bình chạy của mọi thân nến đã thấy trên khung đã chọn (lưu trong một danh sách chỉ lớn dần).
- Thiết lập của trend: đầu vào của bộ lọc pha giá và mức khoảng trống theo tỉ lệ một phần ba (xem Flow 7), EMA 10 nến (ta.ema(Trend, 10)) cho vùng tô, vùng tô trong suốt 70%, và mức khoảng trống khởi đầu 0.0.
- Chi tiết vẽ: đường giữa trắng nét đứt, định dạng ngày yyyy-MM-dd HH:mm theo múi giờ của chart, màu chữ = màu chữ của chart.
- Giới hạn: max_boxes_count = 500, max_bars_back = 5000; giới hạn đường không được đặt nên áp dụng mặc định 50 đường của TradingView (ảnh hưởng tới các đường giữa).
Các khối logic chính
⏱️ Flow 0 — Thứ tự làm việc ở mỗi cây nến
- Chỉ báo làm việc ở mọi cây nến của chart, từ cũ nhất tới mới nhất, và nhớ mọi thứ giữa các nến trong các danh sách (mảng — danh sách đánh số các giá trị) sống suốt đời chart.
- Ở mỗi nến: ① lấy số liệu từ khung đã chọn → ② tìm thời điểm của các mức giá then chốt và tính phần tách mua/bán → ③ phát hiện khoảng trống mới và vẽ → ④ dọn các khoảng trống đã lấp (gồm cả khoảng trống vừa tạo) → ⑤ vẽ lại bảng (nếu bật) → ⑥ cập nhật đường trend.
- Khác với nhiều script tương tự, bước dọn dẹp chạy sau bước tạo. Vì vậy khoảng trống mới được kiểm tra ngay ở nến sinh ra nó, nhưng không thể bị lấp ở đó (đường giữa của nó nằm trong khoảng trống, cách xa đáy/đỉnh của nến mới nhất).
📥 Flow 1 — Lấy nến của khung thời gian đã chọn
- Hai yêu cầu được gửi tới khung thời gian đã chọn (request.security — "hỏi một khung thời gian khác để lấy số liệu"). Yêu cầu A trả về sáu số: c1 = giá đóng, h / l = đỉnh / đáy của nến mới nhất, h2 / l2 = đỉnh / đáy của nến cách đó hai nến, và v = khối lượng. Yêu cầu B trả về wick = thân của nến mới nhất (|đóng − mở|) và avgFVG = trung bình mọi thân nến tới giờ.
- Ví dụ cụ thể (XAUUSD M15, để trống khung thời gian): nến cách hai nến — đỉnh 2644, đáy 2638; nến giữa nhảy từ 2643 lên 2651; nến mới nhất — mở 2651, đỉnh 2656, đáy 2647, đóng 2655. Vậy c1 = 2655, h = 2656, l = 2647, h2 = 2644, l2 = 2638, wick = 4; giả sử avgFVG = 2,5.
- Vì không lùi một nến, "nến mới nhất" là cây nến còn đang hình thành ở nến đang chạy.
🎯 Flow 2 — Có khoảng trống không? Đủ lớn không? Có mới không?
- Khoảng trống tăng: BullFVG = l > h2 (điều kiện thứ hai, c1 > h2, tự động đúng khi điều kiện đầu đúng). Khoảng trống giảm: BearFVG = h < l2. Nến ở giữa không được xét tới.
- Ví dụ: l = 2647 > h2 = 2644 → có một khoảng trống tăng, phủ 2644 tới 2647 (3 điểm), đường giữa 2645,5.
- Tính mới: khoảng trống chỉ được vẽ khi nó đúng lúc này và đã sai ở nến liền trước. Trong xu hướng mạnh, nếu nến kế tiếp cũng nhảy qua nến trước đó, điều kiện vẫn đúng và không có hộp thứ hai nào được vẽ — chỉ khoảng trống đầu tiên của chuỗi như vậy xuất hiện.
- Lọc kích thước: wick ≥ avgFVG × BodySens. Ví dụ: 4 ≥ 2,5 × 1.0 = 2,5 → qua; ở BodySens = 2 cần 5 → bị loại, không vẽ gì.
- Chỉ khi cả ba điều kiện cùng đúng thì hộp mới được tạo, và mức trend được dịch (Flow 7).
📦 Flow 3 — Xác định thời điểm của khoảng trống và vẽ hộp
- Các số ở Flow 1 chỉ có giá chứ không có thời gian. Một hàm phụ quét các nến chart từ mới nhất về trước (tối đa 5000) và trả về thời gian của nến đầu tiên có đỉnh (hoặc đáy) đúng bằng mức giá đang tìm: HBack (cho h), LBack (cho l), H2Back (cho h2), L2Back (cho l2). Nếu không khớp, nó dùng thời gian của nến hiện tại.
- Hộp tăng: từ h2 (đáy hộp) lên l (đỉnh hộp). Mép trái = H2Back; mép phải = HBack + extendLength nến chart. Hộp giảm: từ h (đáy hộp) lên l2 (đỉnh hộp). Mép trái = L2Back; mép phải = LBack + extendLength nến chart.
- Mỗi khoảng trống có ba thứ được vẽ: hộp xám, một đường giữa trắng nét đứt ở (l + h2) ÷ 2 (tăng) hoặc (l2 + h) ÷ 2 (giảm), và hai nửa hộp ở Flow 4. Tất cả được cất vào các danh sách (mới nhất trước), riêng cho khoảng trống tăng và giảm.
- Ví dụ cụ thể: khoảng trống 2644–2647, đường giữa 2645,5. Trên M15, hộp bắt đầu ở nến có đỉnh là 2644 (hai nến trước) và kết thúc 10 nến sau nến có đỉnh là 2656.
⚖️ Flow 4 — Phần tách mua / bán trong hộp
- Nó mô tả nến mới nhất, không phải khoảng trống: buyVol = (close − low) ÷ (high − low) × 100 và sellVol = (high − close) ÷ (high − low) × 100. Con số khối lượng tự triệt tiêu (chỉ còn thêm làm tròn), nên đây không phải khối lượng.
- Nửa trên của khoảng trống (đường giữa tới đỉnh hộp): một thanh xanh ngọc, độ dài = bề rộng hộp × buyVol ÷ 100. Nửa dưới (đáy hộp tới đường giữa): một thanh đỏ, độ dài = bề rộng hộp × sellVol ÷ 100. Cả hai bắt đầu từ mép trái của hộp. Bố cục giống nhau cho khoảng trống tăng và giảm.
- Ví dụ cụ thể: đóng 2655, đáy 2647, đỉnh 2656 → mua = 8 ÷ 9 ≈ 89%, bán = 1 ÷ 9 ≈ 11%. Trên hộp rộng 12 nến: thanh xanh ngọc dài khoảng 10,7 nến ở nửa trên, thanh đỏ dài khoảng 1,3 nến ở nửa dưới → cây nến đóng mạnh, sát đỉnh.
- Nếu cây nến không có biên độ (đỉnh = đáy) hoặc không có khối lượng, phép chia lỗi và kết quả là "không có giá trị"; hộp khi đó có thể không vẽ đúng.
🧹 Flow 5 — Giữ khoảng trống sống: mitigation
- Ở mỗi nến chart, code duyệt qua các khoảng trống đã lưu (danh sách tăng rồi danh sách giảm) và thử đáy / đỉnh của nến chart hiện tại với từng cái.
- Khoảng trống tăng, mit bật: low ≤ đường giữa; tắt: low ≤ đáy của khoảng trống. Khoảng trống giảm, mit bật: high ≥ đường giữa; tắt: high ≥ đỉnh của khoảng trống. Khi đúng, hộp, đường giữa và hai nửa hộp bị xoá và gỡ khỏi các danh sách.
- Ví dụ cụ thể (khoảng trống tăng 2644–2647, đường giữa 2645,5): nến có đáy 2646 → không có gì. Nến có đáy 2645,4 → bị xoá khi mit bật; khi tắt, nó sống tới khi có đáy 2644 hoặc thấp hơn.
🗂️ Flow 6 — Bảng FVG (chỉ khi bật "Show FVG table")
- Ở mỗi nến, các bản sao trước đó bị xoá và dựng lại. Đầu tiên là một khung trong suốt từ đáy thấp nhất tới đỉnh cao nhất của toàn bộ lịch sử chart, trải từ TableLeft tới TableRight nến sau nến hiện tại.
- Sau đó, với mỗi khoảng trống tăng còn sống rồi mỗi khoảng trống giảm còn sống, một bản sao của hộp được vẽ trong cột đó ở đúng các mức giá cũ, với ngày giờ bắt đầu làm chữ. Màu: đỏ nếu giá đóng cửa dưới đáy khoảng trống, ngược lại xanh ngọc.
- Ví dụ: một khoảng trống tăng còn sống 2644–2647 tạo lúc 2026-10-14 09:15 hiện trong cột với dòng chữ đó; với giá đóng 2640 thì màu đỏ, với 2650 thì màu xanh ngọc.
📈 Flow 7 — Đường FVG trend
- Mức khoảng trống. Một con số chạy bắt đầu từ 0.0. Mỗi lần một khoảng trống được tạo (tăng hay giảm đều được — hướng không quan trọng), mức mới = trung bình của (mở + cao + thấp + đóng) ÷ 4 của nến hiện tại và mức trước đó. Giữa các khoảng trống, mức đứng yên. Ví dụ: trước 2600, trung bình nến 2660 → 2630.
- Đầu vào của bộ lọc. Ở mỗi nến, đường được nạp src = (h + l + mức) ÷ 3: đỉnh và đáy của nến mới nhất chiếm hai phần ba, mức khoảng trống chiếm một phần ba. Ví dụ: h 2656, l 2647, mức 2630 → src = 2644,3. Ngay từ đầu, mức = 0 → src ≈ (2656 + 2647 + 0) ÷ 3 = 1767,7, thấp hơn giá rất xa; khoảng trống đầu tiên nâng mức lên 2660 ÷ 2 = 1330 (src ≈ 2211), và mỗi khoảng trống sau lại rút ngắn một nửa khoảng cách còn lại, nên cần khoảng 8–10 khoảng trống thì đường mới nằm sát giá.
- Làm mượt. src đi qua một bộ lọc thông thấp bậc hai (một công thức trộn giá trị mới nhất với hai giá trị đầu ra trước đó). fc đặt tốc độ (mặc định 0.1 ≈ trễ vài nến), rp đặt độ giảm chấn. Kết quả là đường "FVG Trend Filter" được vẽ.
- Màu sắc: xanh lá khi mức khoảng trống vừa tăng, đỏ khi vừa giảm; lúc đứng yên thì giữ màu cũ. Màu khởi đầu: xám. Màu đi theo mức khoảng trống, không phải độ dốc của đường đang vẽ.
- Vùng tô: một dải chuyển sắc giữa đường đã lọc và EMA 10 nến của mức khoảng trống (một đường phụ vô hình), màu của trend ở độ trong suốt 70%. Bị ẩn cùng đường khi showTrend tắt.
Đầu ra & vai trò trong sử dụng
- Hộp FVG + đường giữa: bản đồ các mất cân bằng chưa lấp, kèm mức "lấp một nửa".
- Thanh mua / bán: gợi ý nhanh về chất lượng cách cây nến tạo khoảng trống đã đóng cửa.
- Bảng FVG: danh sách gọn các khoảng trống còn sống kèm ngày giờ.
- Đường FVG trend: một đường mượt chủ yếu bám theo giá, tô xanh lá / đỏ theo lần dịch gần nhất của mức khoảng trống.
- Không có alert. Script không có lệnh alertcondition() nào — không có "FVG được tạo", không có "FVG đã lấp". Mọi thứ dựa trên sự kiện đều phải tự bổ sung.
- Nhìn trước tương lai và repaint ở khung thời gian cao hơn. Dữ liệu được yêu cầu với lookahead_on và không có phép lùi một nến thường thấy. Ở các nến lịch sử của khung cao hơn, cây nến đã hoàn tất của khung đó đã hiện ra ngay ở nến chart đầu tiên của nó, nên trong lịch sử khoảng trống xuất hiện sớm hơn so với khi chạy thật. Ở nến đang chạy, cờ khoảng trống có thể hiện rồi biến mất cho tới khi nến khung cao đóng. Để trống khung thời gian (khung chart) hoặc chọn khung cao hơn là cách dùng an toàn hơn; khung thấp hơn chart thì không đáng tin.
- "Wick" thực ra là thân nến. Bộ lọc kích thước so khoảng cách mở–đóng của nến với thân trung bình. Một cây nến có râu rất dài nhưng thân nhỏ sẽ bị loại. Ngoài ra, trung bình được tính trên toàn bộ lịch sử từ đầu dữ liệu, không phải một cửa sổ gần đây, nên nếu thị trường trở nên biến động mạnh hơn hẳn so với trước, gần như nến nào cũng qua (và ngược lại). Danh sách đằng sau nó cũng lớn dần theo từng nến và, nhiều khả năng, theo từng lần giá nhảy ở nến đang chạy, nên trung bình có thể trôi nhẹ trên chart đang chạy.
- Mẫu hình, không phải khối lượng. Phần tách "mua / bán" chỉ là vị trí giá đóng cửa trong biên độ của nến mới nhất. Nó không nói gì về khối lượng thật, và nó mô tả cây nến hoàn tất khoảng trống chứ không phải bản thân khoảng trống.
- Nến ở giữa không bao giờ được kiểm tra. Chỉ nến mới nhất và nến cách hai nến mới quan trọng. "Fair value gap" ở đây theo nghĩa đơn giản hoá là một cặp nến không chồng lên nhau, chứ không phải mẫu hình ba nến được xác minh có thân nến giữa mạnh.
- Neo thời gian dùng phép so sánh giá chính xác tuyệt đối. Mỗi mép hộp theo trục thời gian là "nến chart gần nhất có đỉnh (hoặc đáy) đúng bằng mức giá đó". Nếu một nến mới hơn in đúng cùng mức giá, mỏ neo dời sang nến đó; nếu không tìm thấy trong 5000 nến, dùng nến hiện tại. Ở khung cao hơn, mỏ neo là nến tạo ra cực trị chứ không phải đầu nến khung cao. Bốn lượt quét này chạy ở mọi nến (tới 20.000 bước mỗi nến), khiến script nặng trên chart dài.
- Đường trend bắt đầu thấp hơn giá và chủ yếu bám theo giá. Vì một phần ba đầu vào của nó là mức khoảng trống (khởi đầu ở 0.0), phần đầu chart cho thấy một đường nằm thấp hơn giá khá xa. Xét theo công thức, rp đóng vai trò hệ số giảm chấn: mặc định 10 dB cho đường cong giảm chấn mạnh, chậm hơn; giá trị cao hơn còn mượt hơn nữa; còn các giá trị gần 0.1 phản ứng nhanh hơn kèm chút vọt lố — ngược với lời tooltip ("cao hơn = dao động nhiều hơn").
- Xoá khi đang duyệt. Bước dọn dẹp xoá phần tử khỏi các danh sách ngay trong lúc duyệt qua chúng. Nếu hai khoảng trống cùng bị lấp ở một nến, một trong hai có thể bị bỏ sót tới nến kế tiếp.
- Khoảng trống không bao giờ hết hạn theo thời gian. Chỉ giá mới xoá được một khoảng trống, nên trên chart dài số khoảng trống còn sống có thể tăng dần. Mỗi khoảng trống dùng 3 hộp (cộng 1 đường), và khi bật bảng thì thêm một hộp cho mỗi khoảng trống. Giới hạn mặc định 50 đường và giới hạn 500 hộp có thể bị chạm trên lịch sử dài: các đường giữa cũ nhất biến mất trước, và quá giới hạn hộp thì TradingView xoá hộp cũ nhất.
- Cái bẫy đặt tên trong code: đối tượng tên bv là nhóm tăng, trong khi trường bv của nó chứa các thanh buy-volume; sv là nhóm giảm và trường sv của nó là các thanh sell-volume. Chỉ ảnh hưởng độ dễ đọc.


