Isolated Scroll Container

1. Mô Tả Chiến Lược Leg Profiler

Phát hiện các leg swing ZigZag theo ATR, xây dựng lại volume profile khung thời gian thấp hơn cho mỗi leg đã hoàn tất kèm text biểu đồ thanh ASCII bên trong mỗi box giá, đánh dấu Point of Control, mở rộng các POC chưa kiểm định về phía trước cho đến khi giá quay lại kiểm tra, và gắn cờ các đợt tăng vọt volume bất thường bằng marker bong bóng có kích cỡ

1.1 Khái Niệm Chỉ Báo

Chỉ báo này kết hợp một bộ phát hiện swing ZigZag cổ điển theo ATR với một volume profile thực sự được xây dựng từ dữ liệu khung thời gian thấp hơn (1 phút). Mỗi khi ZigZag xác nhận một pivot mới - hoàn tất một leg tăng hoặc leg giảm - chỉ báo lấy mọi nến 1 phút đã xảy ra trong leg đó, cắt khoảng giá chính xác của leg thành các box có kích cỡ đều nhau, và phân bổ theo tỷ lệ volume của mỗi nến 1 phút (chia thành phần mua và bán ước lượng) trên mọi box mà khoảng giá của chính nó chồng lấn. Mỗi box sau đó được vẽ thành một hình chữ nhật có màu chứa một biểu đồ thanh ký tự ASCII gọn gàng thể hiện tỷ trọng của nó trong volume của leg, Point of Control (POC - box có volume cao nhất) của leg được đánh dấu bằng một đường nét đứt, và một nhãn tóm tắt báo cáo tổng volume của leg, delta ròng, và giá POC. Các đường POC có thể tuỳ chọn tiếp tục mở rộng về phía trước cho đến khi giá thực sự quay lại kiểm tra chúng, tuân theo một giới hạn tích hợp sẵn về số POC chưa kiểm định mỗi hướng được giữ hoạt động cùng lúc.

  • Volume nội nến thực sự, không phải ước lượng cùng khung thời gian: thay vì ước lượng phân bố volume chỉ từ chính các nến của biểu đồ, profile được xây dựng từ các nến con 1 phút thực tế lấy qua request.security_lower_tf(), cho một bức tranh chi tiết hơn đáng kể về nơi volume đã giao dịch bên trong mỗi leg.
  • Bộ đệm lịch sử tự cắt tỉa: lịch sử nến 1 phút đã tích luỹ được cắt gọn xuống chỉ còn phần chưa xử lý mỗi khi một leg hoàn tất, thay vì tăng trưởng không giới hạn trong suốt vòng đời của biểu đồ.
  • Thanh volume dạng ký tự khối ASCII: volume tương đối của mỗi box profile được hiển thị thành một chuỗi text gồm các ký tự khối đầy (█) và rỗng (░) trực tiếp bên trong box, tạo hiệu ứng biểu đồ thanh gọn gàng, không phụ thuộc độ phân giải mà không cần đối tượng plot riêng cho mỗi box.
  • Giới hạn tích hợp sẵn cho số POC chưa kiểm định đang hoạt động cùng lúc: chỉ hai đường POC chưa kiểm định gần nhất mỗi hướng (tăng/giảm) được phép tiếp tục mở rộng về phía trước cùng lúc - các đường cũ hơn vượt quá giới hạn sẽ tự động bị đóng băng và xoá khỏi theo dõi hoạt động, không có input riêng để hiển thị giới hạn này.

1.2 Tính Năng Chỉ Báo

  • Phát Hiện Swing ZigZag Theo ATR: pivot được xác nhận một khi giá đảo chiều nhiều hơn một lượng theo tỷ lệ ATR so với high/low đang chạy, xác định các leg cấu trúc sẽ được profile.
  • Volume Profile Theo Từng Leg: mỗi leg đã hoàn tất nhận được tập box giá riêng của nó, mỗi box hiển thị một thanh khối ASCII của volume tương đối và (tuỳ chọn) số volume thô, tô màu theo gradient có hướng hoặc theo mức chi phối mua/bán.
  • Đường Point of Control (POC): một đường nét đứt đánh dấu box có volume cao nhất duy nhất trong profile của mỗi leg, có thể tuỳ chọn tiếp tục mở rộng vào tương lai cho đến khi giá thực sự giao dịch xuyên qua đúng mức đó.
  • Nhãn Tóm Tắt Leg: một nhãn gọn gàng tại điểm giữa mỗi leg báo cáo tổng volume của leg, delta mua/bán ròng (tô màu xanh/đỏ), và giá POC.
  • Chế Độ Màu Box Có Thể Cấu Hình: chuyển đổi giữa "Volume Gradient" có hướng (màu chuyển dần từ màu bắt đầu của leg, qua màu box POC, đến màu kết thúc) hoặc chế độ "Delta (Buy vs Sell)" tô mỗi box xanh hoặc đỏ hoàn toàn dựa trên việc volume mua hay bán chiếm ưu thế trong đó.
  • Bong Bóng Bất Thường Volume: marker hình tròn trên các nến có volume tăng vọt vượt qua một bội số của trung bình 20 nến của chính nó, kích cỡ theo mức độ tăng vọt, với số volume thô hiển thị trực tiếp trên các đợt tăng vọt cực đoan nhất và luôn có sẵn qua tooltip khi rê chuột.
  • Giới Hạn Trần Số Box Profile Tối Đa: một giới hạn cứng về việc profile của một leg duy nhất có thể được chia thành bao nhiêu box, tự động làm thô chiều cao box cho các leg bất thường lớn thay vì để vượt quá giới hạn.

1.3 Cách Sử Dụng Chỉ Báo

  • Đọc POC của mỗi leg như mức giá mà những người tham gia leg đó đồng thuận nhiều nhất - đó là box duy nhất đã hấp thụ nhiều volume độ phân giải 1 phút thực sự hơn bất kỳ box nào khác trong bước di chuyển cấu trúc đó.
  • Xem các đường POC vẫn đang mở rộng (chưa kiểm định) như công việc còn dang dở - một đường POC vẫn đang lớn dần về phía trước nghĩa là giá chưa quay lại giao dịch xuyên qua mức đó kể từ khi leg đã tạo ra nó hoàn tất.
  • Dùng gradient màu box để phát hiện volume của một leg dồn về đầu hay cuối - ở chế độ Volume Gradient, các box gần điểm gốc của leg so với điểm hoàn tất của nó được phân biệt trực quan, giúp dễ dàng nhận ra volume tích luỹ sớm hay muộn trong bước di chuyển.
  • Chuyển sang chế độ Delta khi bạn quan tâm đến tính hung hăng, không chỉ volume - một leg có các box được tô đồng nhất một hướng (toàn xanh hoặc toàn đỏ) phản ánh sự hung hăng nhất quán từ phía mua hoặc bán xuyên suốt bước di chuyển, trong khi màu lẫn lộn gợi ý một cuộc giằng co hai chiều trong cùng một leg.
  • Xem bong bóng volume như một sự xác nhận, không phải tín hiệu độc lập - một bong bóng lớn xuất hiện đúng lúc một leg tiếp cận POC của nó hoặc phá vỡ cấu trúc làm tăng thêm trọng lượng cho sự kiện đó, vì nó đánh dấu sự tham gia vượt xa mức trung bình gần đây.

1.4 Cách Chỉ Báo Hoạt Động

Các Input & Vai Trò

  • atrPeriod ("ATR Period" - Chu Kỳ ATR, mặc định: 5): độ dài ATR nuôi ngưỡng đảo chiều của ZigZag - điều này chỉ ảnh hưởng đến việc pivot swing được phát hiện nhạy đến mức nào, không ảnh hưởng đến việc các profile kết quả được cắt thành box ra sao (xem ghi chú triển khai bên dưới).
  • swingMult ("Swing Multiplier (ATR)" - Hệ Số Nhân Swing (ATR), mặc định: 2.5): hệ số nhân áp dụng lên ATR đó để có lượng đảo chiều cần thiết để xác nhận một pivot mới - giá trị cao hơn đòi hỏi đảo chiều lớn hơn và do đó tạo ra ít leg hơn nhưng lớn hơn.
  • maxBoxes ("Max Profile Boxes" - Số Box Profile Tối Đa, mặc định: 50, khoảng 10-150): một trần giới hạn về việc profile của một leg duy nhất có thể được chia thành bao nhiêu box, bất kể leg đó cao bao nhiêu.
  • alignMode ("Profile Alignment" - Căn Chỉnh Profile, mặc định: "Left", tuỳ chọn: Left/Right/Center): căn chỉnh text ngang của thanh volume ASCII và số volume bên trong mỗi box.
  • showBoxVol ("Show Volume Value Inside Boxes" - Hiện Giá Trị Volume Bên Trong Box, mặc định: true): thêm số volume thực tế của box sau thanh ASCII của nó - bản thân thanh ASCII luôn được hiển thị bất kể công tắc này.
  • extendPoc ("Extend Untested POCs" - Mở Rộng POC Chưa Kiểm Định, mặc định: true): khi bật, đường POC của một leg tiếp tục mở rộng về phía trước từng nến một cho đến khi giá giao dịch xuyên qua đúng giá đó, tuân theo giới hạn tích hợp sẵn 2/hướng đang hoạt động được mô tả bên dưới.
  • showBubbles ("Show Volume Bubbles" - Hiện Bong Bóng Volume, mặc định: true): bật/tắt hoàn toàn các marker bất thường volume.
  • bubbleMult ("Spike Threshold (x SMA)" - Ngưỡng Tăng Vọt (x SMA), mặc định: 2.0): volume của một nến phải vượt quá trung bình volume 20 nến của chính nó bao nhiêu lần để kích hoạt một marker bong bóng; một bội số cố định 1.5× của chính giá trị này được dùng nội bộ làm ngưỡng bổ sung để in số volume thô lên bong bóng.
  • colorMode ("Box Color Mode" - Chế Độ Màu Box, mặc định: "Volume Gradient", tuỳ chọn: Volume Gradient / Delta (Buy vs Sell)): chuyển đổi logic tô màu của mọi box profile giữa gradient có hướng theo vị trí và gradient theo mức chi phối mua/bán.
  • upStartC / upMidC / upEndC ("Up Leg (Low/Mid/High Vol)" - Leg Tăng (Vol Thấp/Trung Bình/Cao), mặc định: xanh dương đậm / xanh dương / lam ngọc) và dnStartC / dnMidC / dnEndC ("Down Leg (Low/Mid/High Vol)" - Leg Giảm (Vol Thấp/Trung Bình/Cao), mặc định: tím đậm / hồng cánh sen / đỏ): ba màu gradient dùng ở chế độ Volume Gradient cho leg tăng và leg giảm tương ứng, cũng dùng cho đường POC nét đứt của leg và màu chữ nhãn tóm tắt.

Các Luồng Logic Chính

🎯 Flow 1: Những Gì Bạn Nhìn Thấy

  • Một đường nét chấm vẽ theo mỗi leg ZigZag thô, một tập box màu chạy trọn chiều rộng leg đó kèm text thanh khối ASCII volume bên trong mỗi box, một đường POC nét đứt (có thể vẫn đang mở rộng về phía trước), một nhãn tóm tắt gọn gàng tại điểm giữa leg, và các marker bong bóng màu tuỳ chọn trên các nến volume bất thường cao.

📥 Flow 2: Tích Luỹ Nến Khung Thời Gian Thấp Hơn

  • Mỗi nến biểu đồ, request.security_lower_tf() lấy mọi nến 1 phút đã xảy ra trong nến đó. Mỗi nến 1 phút trả về có volume của nó chia thành phần mua và bán ước lượng dùng cùng kỹ thuật ước lượng vị trí đóng cửa trong khoảng giá được dùng xuyên suốt các chỉ báo trong phiên này, sau đó được đẩy vào một mảng lịch sử đang chạy được gắn thẻ chỉ số nến biểu đồ hiện tại. Nếu không có dữ liệu khung thời gian thấp hơn (ví dụ, biểu đồ đã ở độ phân giải 1 phút hoặc thấp hơn), chính OHLCV của nến biểu đồ hiện tại được dùng làm một mục tổng hợp duy nhất thay thế. Một giới hạn cứng sẽ dịch chuyển bỏ mục cũ nhất nếu lịch sử vượt quá 90.000 nến, như một lưới an toàn độc lập với việc cắt tỉa khi leg hoàn tất được mô tả ở Flow 4.

📐 Flow 3: Phát Hiện Pivot ZigZag

  • Một ZigZag hai trạng thái tiêu chuẩn theo dõi một high đang chạy trong khi xu hướng tăng (hoặc một low đang chạy trong khi xu hướng giảm); ngay khoảnh khắc giá rút lui từ điểm cực trị đó nhiều hơn ATR(atrPeriod) × swingMult, pivot hiện tại được xác nhận, ZigZag đảo hướng, và nó bắt đầu theo dõi điểm cực trị ngược lại từ đó.

🧱 Flow 4: Xây Dựng & Vẽ Profile Của Một Leg

  • Ngay khoảnh khắc một pivot được xác nhận, một đường nét chấm được vẽ giữa giá bắt đầu và kết thúc của leg, và lịch sử 1 phút đã tích luỹ được lọc xuống chỉ còn các nến có chỉ số nến biểu đồ rơi vào khoảng của leg này. Nếu có bất kỳ nến nào như vậy, khoảng high-low thực sự của leg (từ dữ liệu 1 phút, không chỉ giá pivot) được đo, và một chiều cao box được chọn - hoặc là mức nền ATR(14)/10 cố định, hoặc một chiều cao thô hơn nếu mức nền đó sẽ tạo ra nhiều box hơn maxBoxes cho phép.
  • Khoảng giá của leg sau đó được chia thành các box có kích cỡ đều nhau khớp gần nhất với chiều cao đó, và volume của mỗi nến 1 phút (cùng phần chia mua/bán của nó) được phân bổ theo tỷ lệ trên mọi box mà khoảng high-low của chính nó chồng lấn - cùng kỹ thuật chồng lấn theo tỷ lệ được dùng cho volume profile ở những nơi khác trong dự án này. Box có volume tích luỹ cao nhất duy nhất trở thành POC của leg.
  • Mỗi box sau đó được vẽ trải rộng toàn bộ chiều rộng leg, chứa một thanh khối ASCII (độ dài co giãn theo leg rộng bao nhiêu nến) thể hiện tỷ trọng của nó trong volume box đỉnh của leg, tô màu theo chế độ màu đã chọn. Một đường nét đứt đánh dấu giá POC trên khắp leg, và một nhãn tóm tắt báo cáo tổng volume leg, delta ròng, và giá POC. Cuối cùng, mảng lịch sử 1 phút được xây lại để chỉ giữ các nến xảy ra tại hoặc sau điểm kết thúc của leg này, loại bỏ mọi thứ leg này vừa tiêu thụ.

📏 Flow 5: Mở Rộng POC Chưa Kiểm Định & Giới Hạn 2/Hướng

  • Mỗi nến, mọi đường POC chưa kiểm định đang theo dõi có cạnh phải của nó được mở rộng tới nến hiện tại. Nếu giá giao dịch xuyên qua đúng giá POC đó tại nến này (high/low bao trọn nó), POC được đánh dấu đã kiểm định và bị xoá khỏi theo dõi hoạt động, để lại đường của nó đóng băng tại vị trí mở rộng cuối cùng.
  • Riêng biệt, chỉ báo đếm có bao nhiêu POC chưa kiểm định mỗi hướng (tăng vs. giảm) còn hoạt động, quét từ mới tạo gần đây nhất đến cũ nhất. Ngay khoảnh khắc một POC chưa kiểm định tăng (hoặc giảm) thứ ba được gặp trong lượt quét đó, nó - và bất kỳ POC cũ hơn vượt quá nào khác - có cạnh phải của đường bị kéo về endBar của chính leg nó (không phải nến hiện tại) và bị xoá khỏi theo dõi hoạt động, hiệu quả đóng băng nó tại một độ dài ngắn hơn so với độ dài nó đã lớn tới lúc đó. Điều này giữ tối đa hai POC chưa kiểm định mỗi hướng đang mở rộng hoạt động tại bất kỳ thời điểm nào.

💥 Flow 6: Bong Bóng Bất Thường Volume

  • Volume của mỗi nến được so sánh với đường trung bình động đơn giản 20 nến của chính nó; một khi tỷ lệ vượt qua bubbleMult, một marker hình tròn được vẽ tại điểm giữa của nến, tô màu xanh hoặc đỏ theo việc nến đó đóng cửa tăng hay giảm, và có kích cỡ liên tục theo mức độ cực đoan của đợt tăng vọt. Chỉ những đợt tăng vọt đạt hoặc vượt 1.5× ngưỡng đã cấu hình mới được in số volume thực tế lên chính marker; các đợt tăng vọt đủ điều kiện nhỏ hơn vẫn hiển thị tooltip khi rê chuột với volume và bội số chính xác.
Ghi chú triển khai - "ATR Period" chỉ tinh chỉnh độ nhạy swing, không phải độ phân giải profile: độ dài ATR được đưa ra làm input (atrPeriod, mặc định 5) chỉ nuôi revAmount, ngưỡng đảo chiều của ZigZag. Chiều cao box dùng để cắt profile của mỗi leg đến từ một phép tính ta.atr(14)/10 riêng biệt, bị hardcode, hoàn toàn không có input tương ứng. Thay đổi "ATR Period" thay đổi số lượng/kích cỡ các leg cấu trúc, nhưng không có bất kỳ ảnh hưởng nào đến việc mỗi leg kết quả được cắt thành box mịn đến mức nào.
Ghi chú triển khai - chỉ 2 POC chưa kiểm định mỗi hướng có thể hoạt động cùng lúc, không có cài đặt hiển thị: như mô tả ở Flow 5, một khi POC chưa kiểm định cùng hướng thứ ba xuất hiện, các POC cũ hơn vượt quá bị âm thầm đóng băng và loại khỏi theo dõi - đường của chúng ngừng mở rộng và bị kéo về endBar của chính leg chúng. Giới hạn này hoàn toàn nội bộ trong kịch bản; không có input nào kiểm soát nó, và nó áp dụng bất kể "Extend Untested POCs" được cấu hình ra sao.

Đầu Ra & Vai Trò Sử Dụng

  • Box profile leg: một phân bố volume độ phân giải 1 phút thực sự cho mỗi leg swing cấu trúc, không phải một xấp xỉ cùng khung thời gian.
  • Đường POC: mức giá duy nhất trong mỗi leg đã hấp thụ nhiều volume nhất, tuỳ chọn giữ sống cho đến khi giá thực sự quay lại kiểm tra nó.
  • Nhãn tóm tắt: một bản đọc nhanh theo từng leg về tổng volume, hướng và độ lớn delta ròng, và giá POC.
  • Bong bóng volume: một cờ riêng biệt, độc lập với leg, cho các nến cá nhân có sự tham gia bất thường nặng.
  • Cảnh báo: không có - kịch bản này không định nghĩa alertcondition() lẫn lệnh gọi alert() động ở bất kỳ đâu.
Zoom/Pan Layered Image
Background Overlay
− +

Chỉ báo trên vừa hoá thành BOT TRADE — chỉ 1 click AI

📊Chỉ báo gốc
→
🤖AI convert 1-click
→
⚙️Bot tự trade 24/7