1. Mô tả HTF Candle Architecture Strategy
Chỉ báo dựng lại tối đa 4 cây nến khung thời gian lớn (HTF) gần nhất thành mini-candle vẽ ở rìa phải chart, đồng thời kẻ đường chiếu ngược các mức Open/High/Low/Close về đúng vị trí lịch sử thật nơi chúng từng xảy ra trên chart khung nhỏ đang xem.
1.1 Concept của chỉ báo
Khi phân tích đa khung thời gian (Multi-Timeframe Analysis), các mức Open/High/Low/Close của nến khung LỚN (VD Daily, Weekly) thường đóng vai trò vùng hỗ trợ/kháng cự quan trọng đối với hành động giá ở khung NHỎ hơn đang giao dịch. Nhưng nếu chuyển hẳn chart sang khung lớn để xem, trader sẽ mất hết chi tiết hình dạng nến ở khung nhỏ đang theo dõi. Chỉ báo này giải quyết vấn đề đó bằng cách tự dựng lại tối đa 4 cây nến khung lớn gần nhất thành các mini-candle vẽ đè lên rìa phải của chính chart khung nhỏ, đồng thời kẻ các đường ngang chiếu ngược từng mức O/H/L/C đó về ĐÚNG vị trí lịch sử thật nơi các mức giá đó từng xảy ra trên chart — biến những con số OHLC trừu tượng của khung lớn thành các đường mức giá cụ thể có thể dùng trực tiếp làm hỗ trợ/kháng cự ngay trên chart đang giao dịch.
1.2 Chức năng của chỉ báo
- 4 mini-candle khung lớn: vẽ tối đa 4 cây nến tổng hợp xếp cạnh nhau ở rìa phải chart — Candle 1 = nến khung lớn ĐANG hình thành (real-time), Candle 2/3/4 = các nến đã đóng lùi dần về quá khứ. Mỗi nến gồm thân (Open-Close, hình hộp) + bóng trên dưới (High-Low, đường thẳng), màu xanh lá (tăng) hoặc cam (giảm), kèm số thứ tự (1/2/3/4) dưới mỗi nến để nhận diện.
- Đường chiếu mức giá về lịch sử thật: với mỗi mức O/H/L/C được bật riêng, vẽ 1 đường ngang nối từ đúng vị trí lịch sử thật (nơi mức giá đó từng xảy ra trên chart khung nhỏ) sang tới mini-candle tương ứng — biến mức giá HTF thành đường kẻ tham chiếu trực tiếp trên chart đang xem.
- Nhãn giá trị: (tuỳ chọn bật "Labels") in số liệu chính xác của từng mức High/Low/Open/Close ngay tại điểm neo lịch sử; luôn có 1 chấm tròn nhỏ đánh dấu vị trí đó dù tắt nhãn chữ.
- Tô nền ranh giới HTF: tô nền mờ tại đúng cây nến đầu tiên của mỗi kỳ khung lớn mới bắt đầu, giúp nhìn nhanh ranh giới giữa các nến HTF ngay trên chart khung nhỏ.
- Nhãn tên khung thời gian: hiển thị chữ "Timeframe: [XH/XD/XM]" phía trên toàn bộ cụm 4 nến.
- Alert: chỉ báo KHÔNG có tính năng cảnh báo — thuần hiển thị trực quan.
1.3 Cách dùng chỉ báo
- Dùng các đường chiếu O/H/L/C ngay trên chart khung nhỏ làm vùng hỗ trợ/kháng cự tham chiếu từ khung lớn hơn (VD giao dịch M15 nhưng lấy đúng mức High/Low của nến Daily làm Target/SL) mà không cần chuyển hẳn sang xem chart Daily.
- Chỉ bật đúng những mức giá cần dùng (VD chỉ bật H và L, tắt O và C) để tránh chart bị rối bởi quá nhiều đường kẻ cùng lúc.
- Mặc định chỉ bật Candle 1 (nến đang hình thành) và Candle 4 (nến 3 kỳ trước) — dùng để so sánh nhanh vị trí giá hiện tại so với 1 mốc tham chiếu xa hơn mà không làm rối chart bởi cả 4 nến cùng lúc; bật thêm Candle 2/3 nếu muốn xem đầy đủ chuỗi diễn biến 4 kỳ gần nhất.
- Đổi input Timeframe sang khung mong muốn (VD Weekly nếu đang trade Daily, H4 nếu đang trade M15) để luôn có sẵn các mức tham chiếu khung lớn hơn phù hợp phong cách giao dịch.
- Tăng "offset" nếu muốn cụm mini-candle dịch xa hơn khỏi rìa phải chart, tránh che khuất nến thật gần nhất.
- Bật "Labels" khi cần đọc chính xác con số O/H/L/C; tắt đi nếu chỉ cần nhìn đường kẻ tham chiếu mà không cần số liệu (đỡ rối mắt).
1.4 Cách hoạt động của chỉ báo
Đầu vào & vai trò
- tf (Timeframe, mặc định "D" - Daily): khung thời gian LỚN dùng để tổng hợp thành các mini-candle. VD đang xem chart M15 nhưng đặt tf="D" → chỉ báo sẽ dựng lại nến Daily bằng cách gộp tất cả nến M15 xảy ra trong cùng 1 ngày.
- offset (số nguyên, mặc định 15): khoảng cách ngang (tính theo số nến) CỘNG THÊM vào vị trí mỗi mini-candle, đẩy toàn bộ cụm 4 nến dịch xa hơn khỏi rìa phải chart thật. Tăng lên → cụm nến dịch xa hơn; giảm về gần 0 → cụm nến sát ngay cạnh nến thật cuối cùng.
- candle1_lvl / candle2_lvl / candle3_lvl / candle4_lvl (checkbox, mặc định lần lượt true/false/false/true): công tắc chính bật/tắt TỪNG mini-candle riêng biệt. Candle 1 = nến khung lớn ĐANG hình thành (real-time); Candle 2 = nến khung lớn vừa đóng gần nhất; Candle 3 = nến trước đó nữa; Candle 4 = nến cũ nhất trong 4 (lùi 3 kỳ). Nếu tắt 1 candle, TOÀN BỘ nến đó (thân, bóng, mọi đường chiếu, nhãn) biến mất hoàn toàn khỏi chart.
- H/L/O/C (checkbox riêng cho từng candle, mặc định H/L/C/O đều true) + kiểu nét tương ứng (Dashed/Solid/Dotted, mặc định H/L=Dashed, O/C=Solid): bật/tắt và chọn kiểu nét cho từng đường chiếu mức giá High/Low/Open/Close của candle đó. VD tắt O1 và C1 trên Candle 1 → chỉ còn 2 đường chiếu High/Low cho nến đang hình thành, bớt rối mắt nếu chỉ quan tâm vùng đỉnh-đáy.
- bullCol1-4 / bearCol1-4 (màu, mặc định ■ RGB(0,207,93) / ■ RGB(248,83,33)): màu thân+bóng+đường chiếu của từng candle theo chiều tăng/giảm; có thể đặt màu khác nhau cho từng candle (VD candle càng cũ càng nhạt màu) để phân biệt trực quan.
- lbls (checkbox "Labels", mặc định true): công tắc TỔNG cho toàn bộ nhãn chữ hiển thị số liệu O/H/L/C (không ảnh hưởng tới đường kẻ chiếu hay chấm tròn đánh dấu — 2 thứ này luôn hiện miễn H/L/O/C tương ứng đang bật). Tắt lbls → chỉ còn đường kẻ + chấm tròn, không còn chữ số giá trị.
Các khối logic chính
- Từ hiển thị nhìn ngược vào trong: toàn bộ 4 mini-candle + đường chiếu + nhãn đề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) — mỗi hình vẽ mới đều tự động xoá bản vẽ ở tick ngay trước đó (kỹ thuật xoá-vẽ-lại liên tục), đảm bảo không tích luỹ rác đồ hoạ mà luôn khớp dữ liệu mới nhất.
- Tầng lưu trữ nến HTF đã đóng: mỗi khi phát hiện bước sang 1 kỳ khung lớn mới, chỉ báo lấy giá trị High/Low/Open/Close CUỐI CÙNG của kỳ VỪA kết thúc (dùng tham chiếu lùi 1 nến để lấy đúng giá trị đã hoàn tất trước khi bị ghi đè) rồi đẩy vào 4 mảng lưu trữ riêng (Open/Close/High/Low) cùng với vị trí bar_index của nến ĐẦU TIÊN thuộc kỳ mới — vị trí này sau này dùng làm "điểm neo lịch sử thật" để kẻ đường chiếu ngược về.
- Tầng theo dõi nến đang hình thành: ngay sau khi lưu trữ kỳ cũ, biến High/Low/Open thời gian thực được reset về đúng giá trị của nến hiện tại để bắt đầu theo dõi kỳ mới; sau đó mỗi nến (bất kể có phải lúc chuyển kỳ hay không), High/Low thời gian thực luôn được cập nhật theo giá trị cực trị mới nếu có — Close thời gian thực luôn bằng giá đóng cửa nến hiện tại.
- Tầng xác định vị trí vẽ 4 mini-candle: 4 lệnh vẽ được gọi theo thứ tự từ nến CŨ nhất (Candle 4, dữ liệu lấy từ mảng lùi 4 phần tử) tới nến MỚI nhất (Candle 1, dữ liệu lấy trực tiếp từ biến real-time, không qua mảng) — vị trí ngang mỗi nến = bar_index hiện tại + 1 khoảng cố định riêng cho từng candle (10/15/20/25) CỘNG THÊM giá trị offset người dùng nhập — khiến Candle 4 nằm gần rìa chart thật nhất (trái), Candle 1 nằm xa nhất (phải).
- Tầng vẽ 1 mini-candle (dùng chung cho cả 4): nếu công tắc candleN_lvl đang tắt, bỏ qua hoàn toàn không vẽ gì cho candle đó. Nếu bật: xác định màu theo Close so Open; vẽ 1 đường thẳng đứng làm bóng nến (High→Low) tại đúng vị trí X đã tính; vẽ 1 hình hộp 4-nến-rộng làm thân nến (Open→Close); gắn 1 nhãn số nhỏ (1/2/3/4) dưới bóng nến để nhận diện.
- Tầng vẽ từng đường chiếu mức giá (dùng chung cho H/L/O/C, lặp lại 4 lần độc lập nếu cả 4 đều bật): nếu công tắc mức giá đó đang bật, vẽ 1 đường ngang nối từ đúng vị trí X của mini-candle SANG TRÁI tới đúng vị trí bar_index lịch sử thật (điểm neo đã lưu ở tầng trên) — theo đúng kiểu nét (Dashed/Solid/Dotted) người dùng chọn; nếu lbls đang bật, thêm 1 nhãn chữ tại điểm neo lịch sử ghi rõ tên mức + số thứ tự candle + giá trị số; LUÔN thêm 1 chấm tròn nhỏ tại điểm neo bất kể lbls bật hay tắt.
- Tầng đánh dấu ranh giới + nhãn khung thời gian: tô nền mờ cho đúng cây nến đầu tiên của mỗi kỳ HTF mới (giúp nhìn thấy ranh giới ngay trên chart chính); tính ATR(200) làm khoảng đệm dọc, đặt 1 nhãn "Timeframe: [tên rút gọn]" phía trên đỉnh cao nhất trong 4 candle, ở ngay rìa phải cụm nến.
Đầu ra & vai trò trong sử dụng
- 4 mini-candle tổng hợp: cho phép quan sát hình dạng 4 nến khung lớn gần nhất (đang hình thành + tối đa 3 nến đã đóng trước đó) mà không cần rời khỏi khung thời gian đang giao dịch.
- Đường chiếu O/H/L/C về lịch sử thật: biến các mức giá trừu tượng của khung lớn thành đường kẻ tham chiếu cụ thể ngay trên chart khung nhỏ — dùng trực tiếp làm vùng hỗ trợ/kháng cự, mức đặt SL/TP theo khung lớn hơn.
- Nhãn số liệu + chấm tròn đánh dấu: tra cứu nhanh giá trị chính xác + vị trí lịch sử của từng mức mà không cần chuyển timeframe hay hover chuột.
- Tô nền ranh giới HTF: nhận diện nhanh ranh giới giữa các kỳ khung lớn ngay trên chart chính, hỗ trợ đối chiếu hành động giá khung nhỏ với đúng kỳ HTF nào.


