Isolated Scroll Container

1. Mô tả Bollinger Bands Forecast Strategy

Bollinger Bands truyền thống kết hợp thêm 1 "cái phễu" dự phóng (forecast cone) — ngoại suy tuyến tính xu hướng của đường giữa và độ rộng dải, cho thấy dải băng có thể trông như thế nào trong tương lai.

1.1 Concept của chỉ báo

Nền tảng là lý thuyết Bollinger Bands cổ điển: vẽ 1 đường trung bình (basis = SMA) và 2 dải bao quanh cách basis ±N lần độ lệch chuẩn (standard deviation). Về mặt thống kê, giá có xu hướng dao động phần lớn thời gian bên trong 2 dải này; khi giá chạm/vượt ra ngoài dải, đó thường là dấu hiệu "quá mua/quá bán" tạm thời (statistical extreme) — dễ xảy ra phản ứng kéo giá quay trở lại (mean reversion).

Điểm mở rộng riêng của bản BigBeluga — "Regression Forecast": thay vì chỉ hiển thị dải băng ở hiện tại, chỉ báo còn ngoại suy (extrapolate) hướng đi của đường basis và tốc độ co giãn của độ rộng dải dựa trên độ dốc hồi quy tuyến tính (linear regression slope) gần nhất, rồi vẽ tiếp 1 "cái phễu dự phóng" (forecast cone) đi về phía tương lai — giả định rằng xu hướng và biến động hiện tại sẽ tiếp diễn trong forecastBars nến tới. Đây KHÔNG phải là dự đoán có yếu tố đảo chiều/mean-reversion trong bản thân phần dự phóng — nó chỉ là "nếu xu hướng + biến động hiện tại giữ nguyên tốc độ, dải băng sẽ trông như thế này".

1.2 Chức năng của chỉ báo

  • Hiển thị:
    • Bollinger Bands hiện tại (live): đường Basis (SMA) + dải Upper/Lower + vùng tô màu (fill) giữa 2 dải — vẽ liên tục trên MỌI nến như BB thông thường. Basis đổi màu xanh teal nếu đang tăng so với 2 nến trước, đỏ nếu đang giảm.
    • Cái phễu dự phóng (Forecast Cone): 3 đường polyline (Upper/Basis/Lower) kéo dài về phía tương lai forecastBars nến, cộng thêm 1 vùng tô màu hình phễu (đóng kín từ Upper đi tới cuối rồi vòng lại theo Lower) thể hiện dải giá dự kiến sẽ nằm trong đó. Chỉ hiển thị tại nến hiện tại (nến chưa đóng) — không lưu lại lịch sử các phễu cũ trên các nến đã qua.
    • Nhãn giá cuối phễu: 2 nhãn số hiển thị giá trị chính xác của Upper/Lower tại điểm cuối cùng của forecast cone (cách hiện tại forecastBars nến).
    • Mũi tên đảo chiều: nhãn ▼ khi giá high vừa vọt lên trên dải Upper rồi rớt trở lại xuống dưới (dấu hiệu bị từ chối tại kháng cự động), nhãn ▲ khi giá low vừa thủng xuống dưới dải Lower rồi bật ngược lên trên (bị từ chối tại hỗ trợ động). 2 loại mũi tên dùng CHUNG 1 bộ đếm cooldown tối thiểu 7 nến — hễ có 1 mũi tên (bất kể hướng nào) xuất hiện thì trong 7 nến kế tiếp không mũi tên nào khác được vẽ thêm.
  • Alert: Chỉ báo KHÔNG có bất kỳ alertcondition() nào trong code — không thể tạo cảnh báo tự động khi giá chạm dải hoặc khi mũi tên xuất hiện. Phải theo dõi trực tiếp trên chart.

1.3 Cách dùng chỉ báo

  • Dùng dải Bollinger hiện tại theo cách truyền thống: cân nhắc bán/chốt lời khi giá áp sát/vượt Upper, cân nhắc mua/chốt lời khi giá áp sát/vượt Lower — đặc biệt khi kết hợp với mũi tên ▼/▲ (xác nhận giá đã bị từ chối, không chỉ chạm rồi đi tiếp).
  • Dùng phễu dự phóng để định hướng kỳ vọng: nếu phễu nghiêng lên (đường Basis dự phóng màu xanh teal, tức basis hiện tại thấp hơn giá trị dự phóng ở cuối phễu) → kịch bản "nếu xu hướng giữ nguyên" là tăng tiếp; nghiêng xuống (màu đỏ) → kịch bản giảm tiếp.
  • Đọc độ rộng phễu để ước lượng biến động kỳ vọng: phễu loe rộng dần → biến động đang có xu hướng mở rộng (dSl dương); phễu thu hẹp dần → biến động đang có xu hướng co lại (dSl âm), nhưng không bao giờ hẹp hơn 1 sàn tối thiểu (xem ghi chú kỹ thuật bên dưới).
  • Lưu ý quan trọng khi dùng: phần dự phóng là ngoại suy tuyến tính đơn thuần (giả định tốc độ tăng/giảm và tốc độ co giãn hiện tại sẽ giữ nguyên) — không tự động tính đến khả năng đảo chiều. Càng xa về tương lai (i càng lớn, gần forecastBars), sai số giả định càng lớn. Nên xem đây là "kịch bản nếu-thì" tham khảo, không phải dự báo chắc chắn, và nên kết hợp thêm công cụ xác nhận xu hướng khác.
  • Vì phễu chỉ tồn tại ở nến hiện tại (không lưu vết lịch sử), không thể nhìn lại trên chart để kiểm tra phễu dự phóng ở quá khứ đã từng dự đoán đúng/sai như thế nào — chỉ có thể quan sát trực tiếp theo thời gian thực.

1.4 Cách hoạt động của chỉ báo

Đầu vào & vai trò

  • length (số nguyên, mặc định 40): số nến dùng tính đường Basis (SMA) và độ lệch chuẩn (stdev), đồng thời cũng là cửa sổ dùng để tính độ dốc hồi quy tuyến tính (linreg) cho cả basis lẫn độ rộng dải. Tăng lên → Basis/dải mượt hơn nhưng phản ứng chậm hơn với thay đổi gần đây, độ dốc dự phóng cũng ổn định hơn nhưng chậm cập nhật hơn; giảm xuống → nhạy hơn nhưng nhiễu hơn.
  • mult (số thập phân, mặc định 2.0): hệ số nhân độ lệch chuẩn để tính độ rộng dải (giống BB chuẩn). VD stdev=$5, mult=2.0 → dev=$10, dải Upper/Lower cách Basis $10 mỗi bên. Tăng mult → dải rộng hơn (ít tín hiệu chạm dải hơn), đồng thời phễu dự phóng cũng rộng hơn tương ứng vì dev là gốc để ngoại suy dF.
  • src (nguồn giá, mặc định close): giá dùng để tính Basis/độ lệch chuẩn.
  • forecastBars (số nguyên, mặc định 40): số nến phễu dự phóng vươn tới trong tương lai. Tăng lên → phễu dài hơn nhưng phần cuối phễu càng kém tin cậy (ngoại suy tuyến tính xa hơn); giảm xuống → phễu ngắn, sát với hiện tại hơn, đáng tin hơn nhưng ít giá trị "nhìn xa".
  • uCol / lCol / fCol: màu đường Upper / Lower và màu tô (fill) — dùng chung cho CẢ dải hiện tại lẫn phễu dự phóng.
  • bColU / bColD (mặc định teal / đỏ): 2 màu cho đường Basis tuỳ theo xu hướng — dùng cho cả đường Basis hiện tại (so với 2 nến trước) LẪN đường Basis trong phễu dự phóng (so với giá trị dự phóng cuối phễu) — 2 phép so sánh khác nhau nhưng map ra cùng cặp màu.
  • widthB (số nguyên, mặc định 3): độ dày đường Basis (cả bản hiện tại và bản trong phễu dự phóng).

Các khối logic chính

📏 Luồng 1 — Dải Bollinger hiện tại (mọi nến)

  • Basis = SMA(src, length); dev = mult × stdev(src, length); Upper = Basis + dev; Lower = Basis − dev — công thức BB tiêu chuẩn, tính lại mỗi nến.
  • Màu Basis (đường sống, không phải phễu): so basis hiện tại với basis 2 nến trước — cao hơn → teal, thấp hơn → đỏ.
  • Đây là phần luôn hiển thị trên MỌI nến kể cả nến lịch sử, không riêng nến cuối.

📐 Luồng 2 — Ước tính tốc độ thay đổi (mỗi nến, chuẩn bị cho dự phóng)

  • bSl (độ dốc Basis): = giá trị hồi quy tuyến tính (linreg) của Basis tại nến hiện tại − giá trị hồi quy tại nến trước đó → xấp xỉ "Basis đang tăng/giảm bao nhiêu mỗi nến" theo đường xu hướng hồi quy (không phải theo giá thô).
  • dSl (độ dốc độ rộng dải): tính tương tự nhưng cho dev → xấp xỉ "độ rộng dải đang nới ra/thu hẹp lại bao nhiêu mỗi nến".
  • minW (sàn độ rộng tối thiểu): = mức (Upper − Lower) THẤP NHẤT trong 50 nến gần nhất — dùng làm giới hạn dưới để độ rộng dự phóng không bao giờ co lại quá mỏng hoặc âm.

🔮 Luồng 3 — Xây dựng phễu dự phóng (chỉ chạy tại nến hiện tại, nến chưa đóng)

  • Vì đoạn này chạy lại ở mỗi lần giá cập nhật real-time trong khi nến hiện tại chưa đóng, chỉ báo phải tự xoá bộ polyline/label vừa vẽ lần trước trước khi vẽ bộ mới — nếu không sẽ chồng chất vô số đường cũ (giới hạn kỹ thuật của Pine là tối đa 100 polyline cùng lúc).
  • Vòng lặp chạy từ i = 0 đến forecastBars, mỗi bước i tính 1 điểm trên phễu:
    • Basis ngoại suy thuần tuý: bF = Basis + bSl × i (đi tiếp theo đúng độ dốc hồi quy hiện tại).
    • Độ lệch ngoại suy, có sàn chặn: dF = max(dev + dSl × i, minW).
    • Upper/Lower ngoại suy thuần tuý: uF = bF + dF; dF_ = bF − dF.
    • Trộn mượt (blend) từ hiện tại → ngoại suy: w = i / forecastBars (chạy từ 0 → 1). Giá trị thực tế vẽ lên phễu = (giá trị hiện tại) × (1−w) + (giá trị ngoại suy thuần) × w — đảm bảo tại i=0 phễu khớp CHÍNH XÁC với dải đang hiển thị (không bị gãy khúc), càng xa i càng ngả hẳn về đường ngoại suy tuyến tính.
  • Ví dụ cụ thể: Basis=$2650, bSl=+$0.8/nến, dev=$8, dSl=−$0.05/nến, forecastBars=40. Tại i=40 (cuối phễu): bF = 2650+0.8×40 = $2682; dF = max(8−0.05×40, minW) = max(6, minW). Nếu minW=$5 → dF=$6 → Upper dự phóng cuối phễu ≈ $2688, Lower ≈ $2676. Vì i=40=forecastBars nên w=1, điểm cuối phễu = đúng bằng giá trị ngoại suy thuần (không còn pha trộn với hiện tại).
  • Tại bước i = forecastBars (điểm cuối phễu): lưu lại y2 = giá trị Basis dự phóng tại điểm cuối, rồi chạy thêm 1 vòng lặp ngược (k từ forecastBars về 0) để tính lại toàn bộ dãy điểm Lower theo cùng công thức — nối tiếp vào mảng điểm Upper đã có, tạo thành 1 đa giác khép kín (đi tới theo cạnh Upper, quay về theo cạnh Lower) để tô màu vùng phễu.

🎨 Luồng 4 — Vẽ phễu & nhãn giá

  • Màu đường Basis TRONG PHỄU (khác luồng màu Basis sống ở Luồng 1): so Basis hiện tại với y2 (Basis dự phóng ở cuối phễu) — hiện tại thấp hơn y2 (dự kiến sẽ tăng) → teal; ngược lại → đỏ.
  • 3 đường polyline Upper/Basis/Lower dự phóng được vẽ nối các điểm đã tính ở Luồng 3; vùng đa giác khép kín được tô màu fCol tạo hiệu ứng "phễu".
  • 2 nhãn giá được đặt tại điểm cuối cùng của đường Upper/Lower dự phóng, hiển thị con số giá trị chính xác đã làm tròn.

🔺🔻 Luồng 5 — Mũi tên từ chối dải (mọi nến đã đóng)

  • Chỉ chạy khi barstate.isconfirmed (nến đã đóng hẳn, tránh vẽ nhầm dựa trên high/low tạm thời của nến đang chạy).
  • ▼: nếu high vừa "cắt xuống" Upper (nghĩa là nến trước đó high ≥ Upper, nến này high < Upper) VÀ đã cách lần vẽ mũi tên gần nhất tối thiểu 7 nến → vẽ ▼ tại vị trí high của nến trước.
  • ▲: nếu low vừa "cắt lên" Lower (nến trước low ≤ Lower, nến này low > Lower) VÀ đủ điều kiện cooldown 7 nến → vẽ ▲ tại vị trí low của nến trước.
  • Bộ đếm cooldown (start) dùng CHUNG cho cả 2 loại mũi tên — mũi tên ▼ vừa xuất hiện cũng sẽ khoá luôn mũi tên ▲ trong 7 nến kế tiếp, và ngược lại.

Đầu ra & vai trò trong sử dụng

  • Dải Bollinger hiện tại + vùng tô: khung tham chiếu quá mua/quá bán truyền thống cho entry mean-reversion hoặc theo dõi trạng thái biến động hiện tại.
  • Phễu dự phóng + nhãn giá cuối phễu: kịch bản "nếu xu hướng & biến động hiện tại giữ nguyên tốc độ" — dùng để định hướng kỳ vọng ngắn hạn, KHÔNG phải tín hiệu vào lệnh trực tiếp.
  • Mũi tên ▼/▲: tín hiệu chiến thuật xác nhận giá vừa bị từ chối tại dải hiện tại, có lọc nhiễu bằng cooldown 7 nến.
💡 Lưu ý kỹ thuật: Sàn chặn dưới minW được tính từ up − dn (tức là toàn bộ bề rộng dải, xấp xỉ 2×dev), nhưng lại được dùng để chặn trực tiếp giá trị dF — đại lượng đang đóng vai trò "nửa bề rộng" giống dev gốc (vì uF = bF + dF, dF_ = bF − dF). Nói cách khác, sàn chặn dưới trong code lớn gấp khoảng 2 lần so với đơn vị của đại lượng nó đang chặn. Đây là quan sát trực tiếp từ code gốc (không phải diễn giải lại) — cần lưu ý khi kỳ vọng độ hẹp tối thiểu thực tế của phễu, vì nó có thể không co hẹp như trực giác ban đầu dự đoán dù dSl âm mạnh.
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