1. Mô tả Chiến Lược HTF VOLUME SPIKE
Chỉ báo "soi" chi tiết dòng tiền bên trong 1 nến khung thời gian lớn (HTF) bằng dữ liệu khung thời gian nhỏ hơn nhiều (LTF), rồi chiếu toàn bộ phân tích (mini-candle + bong bóng volume spike + vùng Imbalance + Volume Profile) ra thành 1 sơ đồ trực quan ngay cạnh chart, không cần đổi khung thời gian.
1.1 Concept của chỉ báo
Khi trader zoom lên khung thời gian lớn (VD Daily) để nhìn bức tranh tổng thể, họ mất hết chi tiết về CÁCH giá di chuyển bên trong đúng 1 cây nến lớn đó — cụ thể là khối lượng bất thường (volume spike) tập trung ở vùng giá nào, và có bao nhiêu lần dòng tiền lớn dồn dập vào ĐÚNG 1 vùng giá theo CÙNG 1 chiều (hiện tượng gọi là Imbalance trong phân tích dòng lệnh). Chỉ báo này giải quyết đúng vấn đề đó: âm thầm kéo dữ liệu ở khung thời gian THẤP HƠN nhiều (LTF) để soi từng nhịp bên trong nến khung lớn (HTF) đang hình thành, phát hiện những cây nến LTF có khối lượng vượt hẳn trung bình, rồi chiếu (project) toàn bộ phân tích đó ra thành 1 sơ đồ trực quan hiển thị ngay bên phải chart hiện tại — không cần rời khung thời gian đang giao dịch mà vẫn thấy được "bên trong" nến lớn trông ra sao.
1.2 Chức năng của chỉ báo
- Khối chiếu (Projection Block): 1 sơ đồ vẽ ở rìa phải chart gồm: mini-candle (thân + bóng) đại diện cho nến HTF đang hình thành, 1 khung nét chấm chứa các "bong bóng" tròn — mỗi bong bóng là 1 lần volume spike ở khung LTF, kích thước theo volume tương đối, màu xanh ngọc (tăng) hoặc đỏ (giảm) với độ đậm theo volume; các ô "Imbalance" tô màu khi có ≥3 spike cùng chiều dồn vào cùng 1 vùng giá; và 1 dải Volume Profile (thanh ngang) cho biết vùng giá có khối lượng giao dịch lớn nhất.
- Khối chiếu "Ghost" (nến trước): tuỳ chọn hiển thị thêm 1 khối chiếu mờ hơn cho nến HTF NGAY TRƯỚC đó, đặt cạnh khối hiện tại để so sánh.
- Hiển thị trực tiếp trên chart lịch sử: tuỳ chọn vẽ đè bong bóng spike VÀ ô Imbalance ngay trên nến lịch sử thật của khung chart đang xem (không chỉ trong khối chiếu).
- Đường nối Anchor: 4 đường kẻ ngang nét đứt nối từ đúng vị trí Open/High/Low/Close thật trên chart tới điểm bắt đầu khối chiếu, giúp đối chiếu khối chiếu trừu tượng khớp với đúng nến HTF nào.
- Nhãn giá trị O/H/L/C: in đúng con số Open/High/Low/Close của nến HTF đang hình thành ngay cạnh khối chiếu.
- Alert: chỉ báo KHÔNG có tính năng cảnh báo (không dùng alertcondition() hay alert()) — thuần hiển thị trực quan.
1.3 Cách dùng chỉ báo
- Nhìn khối chiếu bên phải chart để biết "bên trong" nến khung lớn (VD Daily) hiện đang hình thành trông ra sao mà KHÔNG cần chuyển hẳn sang chart Daily và mất chi tiết nến nhỏ đang giao dịch.
- Chú ý các ô Imbalance (tô đậm màu) trong khối chiếu hoặc ngay trên chart — đây là vùng giá có từ 3 lần trở lên volume bất thường dồn cùng 1 chiều, thường là dấu hiệu dòng tiền lớn/tổ chức đang gom lệnh mạnh 1 chiều tại đúng vùng giá đó — có thể dùng làm vùng hỗ trợ/kháng cự tiềm năng hoặc điểm tham chiếu vào lệnh theo hướng dòng tiền.
- Quan sát dải Volume Profile (thanh ngang, sáng nhất tại 1 ô) để tìm vùng giá có khối lượng giao dịch lớn nhất (Point of Control) trong nến HTF hiện tại — vùng này thường có xu hướng "hút" giá quay lại (magnet zone).
- Bật "Show Ghost" để so sánh cấu trúc volume của nến HTF VỪA đóng với nến đang hình thành, đánh giá dòng tiền có đang tiếp diễn cùng hướng hay đã đảo chiều.
- Bật "Show Bubbles/Imbalances on Chart Candles" nếu muốn thấy trực tiếp trên chart chính mà không cần liếc sang khối chiếu — phù hợp khi cần phân tích nhanh, không muốn rời mắt khỏi giá.
- Chọn thủ công HTF Anchor Timeframe (thay vì Auto) nếu muốn luôn soi 1 khung cụ thể (VD luôn dùng Daily làm khung neo dù đang xem chart 15 phút).
- Tăng Volume Spike Multiplier nếu chart quá nhiều bong bóng spike gây rối mắt (chỉ giữ lại spike thực sự bất thường); chọn Spike Granularity nhỏ hơn nếu muốn soi dòng lệnh chi tiết hơn nữa.
1.4 Cách hoạt động của chỉ báo
Đầu vào & vai trò
- htfInput (HTF Anchor Timeframe, mặc định "Auto", các lựa chọn Auto/15/30/60/240/D/W/M): khung thời gian LỚN dùng làm "khung neo" để tổng hợp nến. Nếu để Auto, chỉ báo tự chọn theo khung chart hiện tại — VD đang xem chart M5 (multiplier=5, chưa đủ <5) → tự chọn neo H1; đang xem chart M15 → tự chọn neo H4; đang xem chart Daily → tự chọn neo Weekly. Chọn thủ công 1 khung cụ thể sẽ ép chỉ báo luôn neo đúng khung đó bất kể đang xem chart nào.
- ltfInput (Spike Granularity, mặc định "Auto", Auto/1/3/5/15/60/240): khung thời gian NHỎ dùng để soi từng nhịp bên trong nến HTF nhằm phát hiện volume spike. Auto tự chọn theo khung chart: VD đang xem chart ≥H1 → dùng M5 để soi; đang xem chart nhỏ hơn H1 → dùng M1. Chọn khung LTF càng nhỏ, càng soi chi tiết dòng lệnh hơn, nhưng dễ chạm trần 450 mẫu/kỳ HTF sớm hơn khi nến HTF kéo dài.
- spikeMultInput (Volume Spike Multiplier, mặc định 1.2, tối thiểu 1.0, bước 0.1): hệ số nhân với volume trung bình (SMA) để coi 1 cây nến LTF là "spike". VD volume SMA=1000, spikeMultInput=1.2 → cây nến LTF cần volume ≥1200 mới được ghi nhận là spike; tăng lên 2.0 → chỉ những cú volume đột biến rất mạnh (gấp đôi trung bình) mới được đếm, giảm hẳn số lượng bong bóng hiển thị.
- maLenInput (Volume MA Length, mặc định 20, tối thiểu 5): số nến LTF dùng tính đường trung bình volume làm chuẩn so sánh spike. Tăng lên → đường trung bình mượt hơn, ít bị ảnh hưởng bởi 1-2 cây nến volume cao đột biến gần đây; giảm xuống → đường trung bình phản ứng nhanh hơn, ngưỡng spike thay đổi linh hoạt hơn theo biến động gần nhất.
- showGhostInput (mặc định true): bật/tắt vẽ khối chiếu của nến HTF NGAY TRƯỚC nến đang hình thành.
- showImbInput (mặc định true): bật/tắt vẽ các ô Imbalance bên trong khối chiếu.
- showHtfConnLinesInput (mặc định true): bật/tắt 4 đường kẻ ngang nét đứt nối vị trí O/H/L/C thật trên chart tới khối chiếu.
- showChartSpikesInput (mặc định true): bật/tắt vẽ bong bóng spike trực tiếp đè lên nến lịch sử thật trên chart.
- showChartImbInput (mặc định true): bật/tắt vẽ ô Imbalance trực tiếp đè lên vùng giá thật của nến HTF trên chart.
- projOffsetInput (Projection X-Offset, mặc định 5, tối thiểu 1): số nến trống tính từ nến cuối cùng trên chart tới điểm bắt đầu khối chiếu. Tăng lên → khối chiếu dịch ra xa chart chính hơn.
- scatterWidthInput (Scatter Plot Width, mặc định 25, tối thiểu 10): độ rộng (theo số nến) của vùng scatter chứa bong bóng spike. Tăng lên → bong bóng dàn trải rộng hơn, dễ nhìn từng điểm riêng lẻ khi có nhiều spike.
- vpRowsInput (VP Row Density, mặc định 40, tối thiểu 10): số ô (bin) chia theo chiều giá, dùng cho cả Volume Profile lẫn phát hiện Imbalance. Tăng lên → mỗi ô mỏng hơn (độ phân giải giá cao hơn) nhưng cần nhiều spike hơn mới đủ 3 lần trong 1 ô để tính là Imbalance; giảm xuống → mỗi ô dày hơn, dễ đủ điều kiện Imbalance hơn nhưng độ chính xác vị trí giá giảm.
- vpWidthInput (VP Max Width, mặc định 12, tối thiểu 5): độ dài tối đa (theo số nến) của thanh Volume Profile dài nhất (ứng với ô có volume lớn nhất - Point of Control); các thanh khác co giãn theo tỷ lệ so với thanh này.
- bullColorInput / bearColorInput (màu, mặc định ■ #089981 / ■ #f23645): màu gốc dùng cho MỌI thành phần tăng/giảm trong toàn bộ chỉ báo (mini-candle, bong bóng, imbalance, volume profile).
- projBgColorInput (màu, mặc định xám đậm 60% trong suốt): màu nền của khung chữ nhật chứa vùng scatter bong bóng.
Các khối logic chính
- Từ hiển thị nhìn ngược vào trong: toàn bộ khối chiếu + bong bóng + imbalance + volume profile đều được VẼ LẠI TỪ ĐẦU mỗi khi có tick giá mới trên nến cuối cùng của chart (chỉ chạy trong nhánh barstate.islast) — chỉ báo không "tích luỹ" hình vẽ theo lịch sử mà xoá sạch toàn bộ và vẽ lại mỗi lần cập nhật, đảm bảo khối chiếu luôn khớp đúng dữ liệu mới nhất.
- Tầng theo dõi nến HTF đang hình thành: mỗi khi phát hiện đã bước sang 1 kỳ HTF mới (giờ/ngày/tuần mới tuỳ khung neo), toàn bộ dữ liệu của kỳ HTF VỪA kết thúc (OHLC + danh sách spike + lịch sử close/volume) được lưu snapshot làm dữ liệu "Ghost"; sau đó reset lại để theo dõi kỳ HTF mới từ đầu. Trong khi kỳ HTF hiện tại còn đang chạy, High/Low được cập nhật liên tục theo giá trị cực trị mới, Close luôn bằng giá đóng cửa gần nhất của nến chart.
- Tầng lấy dữ liệu khung thấp hơn (LTF): dùng hàm request.security_lower_tf để "kéo" TOÀN BỘ các cây nến ở khung LTF (nhỏ hơn cả khung chart hiện tại) nằm bên trong 1 cây nến của khung chart — với 1 nến chart, có thể lấy về hàng chục cây nến LTF con bên trong nó. Với mỗi cây nến LTF con (tối đa 450 mẫu/kỳ HTF): lưu giá đóng cửa + volume vào lịch sử (dùng cho Volume Profile), đồng thời kiểm tra volume của nó có vượt spikeMultInput lần trung bình động hay không — nếu có, ghi nhận là 1 "spike": lưu giá đóng cửa, volume, và chiều (tăng nếu đóng cửa ≥ mở cửa, giảm nếu ngược lại).
- Tầng vẽ mini-candle + đường nối trong khối: với mỗi khối (hiện tại và/hoặc Ghost), vẽ 1 hình chữ nhật đại diện thân nến (Open→Close) kèm 2 đoạn thẳng đại diện bóng trên/dưới (High/Low) — phiên bản thu nhỏ trực quan của đúng 1 nến HTF, kèm nhãn tên khung thời gian phía trên.
- Tầng vẽ vùng scatter + bong bóng: mở rộng 1 khung chữ nhật nền mờ ngay bên phải mini-candle, nối bằng 2 đường chấm từ đỉnh/đáy mini-candle sang đỉnh/đáy khung scatter; rải các bong bóng tròn đại diện từng lần spike đã ghi nhận — vị trí ngang theo THỨ TỰ xuất hiện (không theo đúng tỷ lệ thời gian thực), vị trí dọc theo ĐÚNG mức giá lúc spike xảy ra, kích thước theo volume tương đối (so với spike nhỏ/lớn nhất trong cùng kỳ), độ đậm màu cũng theo volume tương đối.
- Tầng phát hiện Imbalance: chia khoảng giá High-Low của kỳ HTF thành vpRowsInput ô bằng nhau; với mỗi ô, đếm số spike (đã ghi nhận ở tầng trên) rơi vào đúng khoảng giá đó, tách riêng theo chiều tăng/giảm; nếu số spike CÙNG CHIỀU trong 1 ô đạt từ 3 trở lên, tô màu cả ô đó (xanh nếu đa số spike tăng, đỏ nếu đa số spike giảm) — cả trong khối chiếu (nếu bật showImbInput) lẫn trực tiếp trên chart thật (nếu bật showChartImbInput).
- Tầng tính Volume Profile: dùng TOÀN BỘ lịch sử close+volume đã lưu (không chỉ riêng spike) trong kỳ HTF, gom vào đúng vpRowsInput ô giá như trên, cộng dồn volume của mọi nến LTF rơi vào từng ô; ô có tổng volume lớn nhất được vẽ thanh dài nhất (bằng đúng vpWidthInput) và sáng màu nhất (Point of Control); các ô còn lại vẽ thanh ngắn hơn theo đúng tỷ lệ volume, màu mờ dần theo volume thấp hơn.
- Tầng vẽ đường nối Anchor + nhãn giá trị: nếu bật, vẽ 4 đường kẻ ngang nét đứt nối chính xác vị trí O/H/L/C thật trên chart lịch sử (nơi các mức đó thực sự xảy ra) sang tới điểm bắt đầu khối chiếu, giúp trader đối chiếu khối chiếu trừu tượng với đúng nến HTF thật; đồng thời in 4 nhãn chữ số hiển thị chính xác giá trị Open/High/Close/Low hiện tại của nến HTF đang hình thành.
Đầu ra & vai trò trong sử dụng
- Khối chiếu mini-candle + scatter + imbalance + volume profile: cho phép "soi" chi tiết cấu trúc dòng tiền bên trong 1 nến khung lớn mà không cần rời khỏi khung thời gian đang giao dịch — tiết kiệm thao tác chuyển đổi timeframe liên tục.
- Ô Imbalance (trong khối chiếu và/hoặc trên chart thật): vùng giá nghi ngờ có dòng tiền lớn/tổ chức gom lệnh mạnh 1 chiều — dùng làm vùng quan tâm cho hỗ trợ/kháng cự hoặc điểm tham chiếu vào lệnh thuận dòng tiền.
- Thanh Volume Profile: xác định vùng giá có khối lượng giao dịch tập trung nhiều nhất (Point of Control) trong nến HTF hiện tại — điểm tham chiếu cho khả năng giá quay lại (magnet).
- Đường nối Anchor + nhãn O/H/L/C: đối chiếu trực quan + tra cứu nhanh giá trị chính xác của nến HTF đang hình thành mà không cần chuyển timeframe hay hover chuột vào nến thật.


