Thứ Năm, 05/11/202605/11/2026

Hướng Dẫn Sử Dụng Bot CNPS50- TREND ANALYSIS cho VN30F1M

Hướng dẫn Bot CNPS 50 V2: ATR Trend Tracker, Trend Score 6 thành phần, Strong Flip, Pullback Re-Entry, Stop Loss cấu trúc, TP1.8R và Break Even.

CNPS 50 Trend Analysis V2
CNPS 50 Trend Analysis V2
Mục lục
Mục lục

Trong giao dịch chứng khoán phái sinh, một trong những vấn đề thường gặp của chiến lược theo xu hướng là lựa chọn thời điểm tham gia sau khi thị trường xuất hiện tín hiệu đảo chiều.

Nếu mở lệnh ngay khi chỉ báo chuyển từ xu hướng giảm sang tăng, nhà đầu tư có thể tham gia sớm vào một nhịp biến động mới. Tuy nhiên, tín hiệu đảo chiều cũng có thể thất bại nếu thị trường thiếu động lượng hoặc giá đang nằm quá xa vùng cân bằng.

Ngược lại, nếu luôn chờ giá điều chỉnh rồi mới tham gia, chiến lược có thể bỏ lỡ những nhịp tăng hoặc giảm mạnh mà thị trường không xuất hiện Pullback rõ ràng.

Một phương pháp tiếp cận là kết hợp giao dịch tại thời điểm đảo chiều chất lượng cao với cơ chế chờ Pullback Re-Entry khi tín hiệu ban đầu chưa đủ điều kiện.

Đây là nguyên lý thiết kế của CNPS 50 TREND ANALYSIS V2 QUALITY RE-ENTRY.

CNPS 50 là chiến lược giao dịch chứng khoán phái sinh được phát triển bằng Pine Script v6 trên TradingView, kết hợp ba thành phần kỹ thuật:

  • ATR Trend Tracker: Xác định trạng thái xu hướng và các sự kiện Tracker Flip.
  • Regression + Hull Equilibrium: Xây dựng đường cân bằng động nhằm đánh giá vị trí giá, độ dốc và khoảng cách mở rộng của xu hướng.
  • Trend Score: Tổng hợp sáu điều kiện kỹ thuật gồm Tracker Direction, Price vs Equilibrium, Equilibrium Slope, RSI vs 50, RSI vs RSI Average và +DI vs −DI.

Khác với những chiến lược chỉ sử dụng một tín hiệu đảo chiều để vào lệnh, CNPS 50 chia Entry thành hai phương pháp độc lập.

Phương pháp 1 – Strong Flip

Khi ATR Trend Tracker vừa chuyển trạng thái, bot kiểm tra chất lượng tín hiệu thông qua Trend Score, ADX, vị trí giá so với Equilibrium, độ dốc Equilibrium và Candle Body Ratio.

Nếu toàn bộ điều kiện đạt, chiến lược có thể mở vị thế theo hướng Tracker mới.

Phương pháp 2 – Pullback Re-Entry

Nếu thị trường đã xuất hiện Tracker Flip nhưng chưa có Entry, bot tiếp tục theo dõi Setup trong tối đa 6 nến.

Trong thời gian này, chiến lược tìm kiếm giá điều chỉnh về vùng Equilibrium với dung sai 0.35 ATR.

Sau khi Pullback được ghi nhận, bot chờ tín hiệu phục hồi gồm Trend Score, ADX, RSI Momentum và nến xác nhận đúng hướng.

Điểm đáng chú ý của CNPS 50 V2 là không bắt buộc mọi giao dịch phải xuất hiện ngay trên cây nến Tracker Flip.

Bot có thể chấp nhận tín hiệu mạnh tại thời điểm chuyển xu hướng hoặc đợi một cơ hội Re-Entry nếu thị trường hình thành nhịp điều chỉnh phù hợp.

Về quản trị rủi ro, chiến lược sử dụng Stop Loss theo cấu trúc, kết hợp cực trị Setup với vị trí ATR Trend Tracker và ATR Buffer.

Khoảng Risk dự kiến phải nằm trong giới hạn 2–8 điểm.

Sau khi lệnh khớp, bot tính Take Profit 1.8R dựa trên giá khớp thực tế, hỗ trợ Break Even từ 1R và có tùy chọn sử dụng Tracker làm Profit Trailing Stop.

Một cải tiến quan trọng khác là chức năng Repair Risk After Next-Bar Gap, nhằm điều chỉnh khoảng Stop nếu giá khớp ở cây nến tiếp theo khiến Risk thực tế nằm ngoài giới hạn.

Vậy CNPS 50 tính Trend Score như thế nào, điều kiện Strong Flip khác Pullback Re-Entry ra sao và cơ chế quản trị Stop Loss sau Gap hoạt động như thế nào?

1. CNPS 50 Trend Analysis V2 Quality Re-Entry là gì?

CNPS 50 V2 là chiến lược giao dịch theo xu hướng, sử dụng tín hiệu chuyển trạng thái của ATR Trend Tracker làm cơ sở hình thành cơ hội và các bộ lọc chất lượng để quyết định thời điểm Entry.

Chiến lược có bốn thành phần chính.

1.1. ATR Trend Tracker

ATR Trend Tracker được xây dựng từ True Range làm mượt bằng Weighted Moving Average (WMA).

Theo cấu hình mặc định:

Tracker ATR Length = 14.

Tracker Multiplier = 2.2.

Bot sử dụng hai mức tham chiếu:

  • Upper Band = High + 2.2 × Tracker ATR.
  • Lower Band = Low − 2.2 × Tracker ATR.

Trong trạng thái Bullish, đường Tracker được cập nhật theo hướng tăng hoặc giữ nguyên cho đến khi Close phá xuống dưới Tracker.

Trong trạng thái Bearish, Tracker được cập nhật theo hướng giảm hoặc giữ nguyên cho đến khi Close phá lên trên.

Khi xảy ra sự kiện phá Tracker theo hướng đối lập, bot thay đổi trạng thái xu hướng.

1.2. Regression + Hull Equilibrium

CNPS 50 sử dụng một đường Equilibrium động được xây dựng từ Linear Regression kết hợp Hull Moving Average.

Công thức:

Equilibrium = HMA(LinReg(Close, 55), 9).

Đường Equilibrium được sử dụng trong cả Strong Flip và Pullback Re-Entry.

Nó giúp đánh giá ba yếu tố:

  • Giá nằm phía nào của Equilibrium.
  • Equilibrium đang có độ dốc tăng hay giảm.
  • Khoảng cách giữa Close và Equilibrium có quá lớn so với ATR hay không.

1.3. Trend Score – Hệ thống chấm điểm xu hướng

CNPS 50 có sáu nhóm xác nhận:

  1. Tracker Direction.
  2. Price vs Equilibrium.
  3. Equilibrium Slope.
  4. RSI vs 50.
  5. RSI vs RSI Average.
  6. +DI vs −DI.

Mỗi thành phần được bật sẽ đóng góp:

+1 nếu đáp ứng điều kiện tăng.

−1 nếu không đáp ứng điều kiện tăng.

Trend Score sau đó được chuẩn hóa thành phần trăm có dấu.

Với cả sáu thành phần đang bật, Score có thể dao động từ −100% đến +100%.

Theo mặc định:

Strong Flip yêu cầu Score ≥ +67% với Long hoặc ≤ −67% với Short.

Pullback Re-Entry yêu cầu Score ≥ +50% với Long hoặc ≤ −50% với Short.

Điểm quan trọng là Score này không phải tỷ lệ phần trăm số chỉ báo tăng trực tiếp.

Với sáu thành phần mặc định, Strong Flip thực tế cần cả sáu điều kiện đồng thuận, trong khi Re-Entry cần ít nhất năm điều kiện đồng thuận theo hướng giao dịch.

1.4. Risk & Position Management

CNPS 50 sử dụng Stop Loss theo cấu trúc, thay vì Stop cố định 5 điểm.

Với Long:

Structural Stop = Min(Setup Low, Tracker) − 0.15 ATR.

Với Short:

Structural Stop = Max(Setup High, Tracker) + 0.15 ATR.

Bot kiểm tra khoảng Risk dự kiến trước khi gửi lệnh.

Theo cấu hình mặc định:

Minimum Risk = 2 điểm.

Maximum Risk = 8 điểm.

Take Profit = 1.8R.

Break Even = 1R.

Ngoài ra, bot còn có cơ chế đặt Stop bảo vệ khi gửi Entry, sửa Risk sau Gap, thoát khi Tracker đảo chiều và Force Close cuối phiên.

1.5. Các thông số mặc định

NhómThông sốGiá trị mặc định
TrackerATR Length14
TrackerMultiplier2.2
EquilibriumRegression Length55
EquilibriumHull Smoothing9
ScoreSố thành phần6
ScoreRSI Length14
ScoreRSI Average Length14
ScoreDMI/ADX Length14
EntryModeBoth
EntrySetup Lifetime6 nến
Strong FlipMinimum Score67%
Strong FlipMinimum ADX18
Strong FlipMinimum Body Ratio0.25
Strong FlipMaximum Extension1.5 ATR
Re-EntryEquilibrium Touch Tolerance0.35 ATR
Re-EntryMinimum Score50%
Re-EntryMinimum ADX15
Re-EntryMinimum Body Ratio0.20
Re-EntryRSI Momentum RecoveryBật
TradeDirectionBoth
TradePosition Size3 hợp đồng
TradeMaximum Trades Per Day4
TradeCooldown3 nến
RiskATR Length14
RiskStructural Stop Buffer0.15 ATR
RiskMinimum Risk2 điểm
RiskMaximum Risk8 điểm
RiskRepair Gap RiskBật
RiskTake Profit1.8R
Break EvenSử dụngBật
Break EvenTrigger1R
Break EvenOffset0.5 điểm
Profit TrailTracker TrailingTắt
Profit TrailStart Trail1.25R
ExitOpposite Tracker FlipBật
SessionMorning Entry09:05–11:25
SessionAfternoon Entry13:05–14:25
SessionForce Close14:45

Source Code CNPS 50: CNPS50

2. Những khái niệm kỹ thuật được sử dụng trong CNPS 50

2.1. True Range và Tracker ATR

True Range là đại lượng đo biên độ biến động giá, có xét đến khoảng cách giữa giá hiện tại và Close của nến trước.

CNPS 50 sử dụng:

ta.wma(ta.tr(true), 14)

Điểm quan trọng là Tracker ATR của CNPS 50 không được tính bằng **ta.atr(14)** thông thường.

Thay vào đó, bot làm mượt True Range bằng WMA14.

WMA sử dụng trọng số lớn hơn cho dữ liệu gần hiện tại.

Vì vậy, Tracker ATR có thể phản ứng khác với ATR14 được tính bằng phương pháp làm mượt mặc định của TradingView.

2.2. Upper Band và Lower Band

Từ Tracker ATR, bot tính:

Upper Band = High + Tracker ATR × Multiplier.

Lower Band = Low − Tracker ATR × Multiplier.

Ví dụ:

  • High = 1,905.
  • Low = 1,900.
  • Tracker ATR = 4.
  • Multiplier = 2.2.

Khoảng Band:

4 × 2.2 = 8.8 điểm.

Upper Band:

1,913.8.

Lower Band:

1,891.2.

Hai Band này được sử dụng để cập nhật ATR Trend Tracker tùy theo trạng thái thị trường.

2.3. Bullish Tracker

Khi Tracker Direction = +1, bot sử dụng Lower Band để cập nhật đường Tracker.

Công thức:

Tracker = Max(Tracker trước, Lower Band hiện tại).

Vì sử dụng hàm Max, đường Tracker trong trạng thái Bullish không giảm xuống qua quá trình cập nhật thông thường.

Sau đó bot kiểm tra:

Close < Tracker.

Nếu điều kiện đúng, Tracker Direction chuyển thành −1 và Tracker được đặt về Upper Band hiện tại.

2.4. Bearish Tracker

Khi Tracker Direction = −1, bot cập nhật:

Tracker = Min(Tracker trước, Upper Band hiện tại).

Trong trạng thái này, đường Tracker không tăng lên qua quá trình cập nhật thông thường.

Nếu:

Close > Tracker.

Bot chuyển Tracker Direction thành +1 và đặt Tracker về Lower Band hiện tại.

Đây là một cơ chế Ratcheting Trend Tracker có khả năng Reset khi trạng thái đảo chiều.

2.5. Tracker Flip

Tracker Flip là sự kiện hướng Tracker thay đổi giữa hai cây nến.

Bull Flip:

Tracker Direction hiện tại = +1.

Tracker Direction trước = −1.

Bear Flip:

Tracker Direction hiện tại = −1.

Tracker Direction trước = +1.

Đây là tín hiệu cơ sở của CNPS 50.

Tuy nhiên, Bull Flip hoặc Bear Flip chưa đồng nghĩa chiến lược sẽ mở Entry.

Bot tiếp tục kiểm tra Strong Flip Quality hoặc chờ Pullback Re-Entry.

2.6. Regression + Hull Equilibrium

CNPS 50 sử dụng:

ta.hma(ta.linreg(close, 55, 0), 9)

Công thức gồm hai giai đoạn.

Giai đoạn 1: Linear Regression 55 nến.

Giá trị Regression được tính từ dữ liệu Close trong cửa sổ 55 nến với Offset bằng 0.

Giai đoạn 2: Hull Moving Average 9.

Chuỗi Regression được tiếp tục làm mượt bằng HMA9.

Kết quả là một đường Equilibrium động.

Equilibrium không phải mức giá trung bình khối lượng như VWAP và cũng không phải Point of Control của Market Profile.

Đây là một đường cân bằng kỹ thuật được xác định từ dữ liệu giá.

2.7. Equilibrium Slope

CNPS 50 kiểm tra hướng của Equilibrium bằng cách so sánh hai cây nến liên tiếp.

Bullish:

Equilibrium hiện tại > Equilibrium nến trước.

Bearish:

Equilibrium hiện tại < Equilibrium nến trước.

Ví dụ:

  • Equilibrium hiện tại = 1,900.
  • Equilibrium trước = 1,899.5.

Slope Bullish hợp lệ.

Bot không yêu cầu Equilibrium phải tăng liên tục trong 5 hoặc 10 nến.

2.8. Trend Score gồm sáu thành phần

Mỗi thành phần có thể được bật hoặc tắt độc lập.

Thành phầnĐiều kiện +1Điều kiện −1
Tracker DirectionTracker BullishTracker Bearish
Price vs EquilibriumClose > EquilibriumClose ≤ Equilibrium
Equilibrium SlopeEquilibrium tăngEquilibrium không tăng
RSI vs 50RSI14 > 50RSI14 ≤ 50
RSI vs RSI AverageRSI14 > SMA14(RSI14)RSI14 ≤ RSI Average
DMI Direction+DI > −DI+DI ≤ −DI

Điểm đáng chú ý là các điều kiện sử dụng toán tử lớn hơn nghiêm ngặt.

Nếu hai giá trị bằng nhau, thành phần tương ứng được chấm −1.

Trong mã nguồn, các thành phần không có trạng thái trung tính độc lập khi đang bật.

2.9. Công thức Trend Score

CNPS 50 tính:

Raw Score = Tổng điểm của những thành phần đang bật.

Maximum Score = Số thành phần đang bật, tối thiểu bằng 1.

Sau đó:

Trend Score % = Raw Score / Maximum Score × 100.

Ví dụ, cả sáu thành phần được bật.

Nếu năm thành phần Bullish và một thành phần Bearish:

Raw Score = 5 − 1 = 4.

Score = 4/6 × 100 ≈ +66.67%.

Nếu bốn thành phần Bullish và hai thành phần Bearish:

Raw Score = 4 − 2 = 2.

Score ≈ +33.33%.

2.10. Các mức Score có thể xuất hiện

Với sáu thành phần đều bật:

Số điều kiện BullishSố điều kiện BearishTrend Score
60+100%
51+66.67%
42+33.33%
330%
24−33.33%
15−66.67%
06−100%

Từ bảng trên có thể rút ra một điểm quan trọng.

Strong Flip Minimum Score 67%:

Năm điều kiện Bullish và một điều kiện Bearish chỉ đạt +66.67%, chưa đủ 67%.

Vì vậy, Strong Long mặc định yêu cầu 6/6 xác nhận Bullish.

Strong Short mặc định cũng cần 6/6 xác nhận Bearish.

Re-Entry Minimum Score 50%:

Bốn điều kiện Bullish và hai điều kiện Bearish chỉ đạt +33.33%.

Năm điều kiện Bullish đạt +66.67%.

Vì vậy, Long Re-Entry mặc định cần tối thiểu 5/6 xác nhận Bullish.

Short Re-Entry cần tối thiểu 5/6 xác nhận Bearish.

2.11. Trend Score không phải xác suất giao dịch thành công

Trend Score +100% chỉ có nghĩa tất cả sáu điều kiện được lập trình đều đang xác nhận Bullish.

Nó không đồng nghĩa:

  • Xác suất thắng đạt 100%.
  • Xu hướng chắc chắn tiếp diễn.
  • Lực mua chiếm 100% thị trường.
  • Giá không thể đảo chiều.

Tương tự, Score +66.67% không tương đương Win Rate 66.67%.

Trend Score là thước đo đồng thuận kỹ thuật theo quy tắc cộng/trừ đã định nghĩa.

2.12. RSI14 và RSI Average

CNPS 50 sử dụng:

RSI Length = 14.

RSI Average Length = 14.

RSI Average được tính bằng:

SMA(RSI14, 14).

Hai điều kiện Score liên quan đến RSI gồm:

RSI14 > 50.

RSI14 > RSI Average.

Ví dụ:

  • RSI14 = 56.
  • RSI Average = 52.

Cả hai điều kiện cùng đóng góp +1.

Nếu RSI14 = 47 và RSI Average = 45:

  • RSI vs 50 đóng góp −1.
  • RSI vs RSI Average đóng góp +1.

Điều này cho thấy RSI có thể đang phục hồi so với trung bình nhưng chưa vượt mốc 50.

2.13. DMI và ADX

CNPS 50 sử dụng:

ta.dmi(14, 14)

Kết quả gồm:

  • Positive DI.
  • Negative DI.
  • ADX.

Trong Trend Score, bot chỉ so sánh:

+DI > −DI.

Nếu đúng, thành phần DMI đóng góp +1.

Ngược lại, thành phần này đóng góp −1.

Tuy nhiên, ADX được sử dụng riêng ở bộ lọc Entry Quality.

Strong Flip yêu cầu:

ADX ≥ 18.

Pullback Re-Entry yêu cầu:

ADX ≥ 15.

Vì vậy, DMI Direction Score và ADX Filter là hai điều kiện khác nhau.

2.14. Candle Body Ratio

CNPS 50 sử dụng tỷ lệ thân nến so với toàn bộ biên độ.

Công thức:

Body Ratio = |Close − Open| / Max(High − Low, Minimum Tick).

Strong Flip mặc định yêu cầu:

Body Ratio ≥ 0.25.

Pullback Re-Entry yêu cầu:

Body Ratio ≥ 0.20.

Ngoài ra:

  • Long cần Close > Open.
  • Short cần Close < Open.

Ví dụ:

  • Open = 1,900.
  • High = 1,905.
  • Low = 1,899.
  • Close = 1,904.

Body Ratio:

4/6 ≈ 0.67.

Nến đạt cả ngưỡng Strong Flip và Re-Entry.

2.15. Equilibrium Distance theo ATR

Strong Flip có thêm điều kiện giới hạn khoảng cách giữa giá và đường Equilibrium.

Công thức:

Equilibrium Distance ATR = |Close − Equilibrium| / Max(ATR14, Minimum Tick).

Theo mặc định:

Maximum Extension = 1.5 ATR.

Ví dụ:

  • Close = 1,906.
  • Equilibrium = 1,900.
  • ATR14 = 5.

Distance ATR:

6/5 = 1.2 ATR.

Đạt ngưỡng tối đa 1.5.

Nếu Close = 1,909:

9/5 = 1.8 ATR.

Strong Flip không đạt điều kiện khoảng cách.

Đây là bộ lọc nhằm tránh một số trường hợp giá đã mở rộng quá xa Equilibrium tại thời điểm Tracker Flip.

3. Nguyên lý hoạt động của CNPS 50 V2

Quy trình tổng quát:

ATR Trend Tracker → Tracker Flip → Armed Setup → Strong Flip hoặc Pullback Re-Entry → Structural Risk → Entry → Gap Risk Repair → TP/BE/Trail.

Bước 1: Tính Trend Tracker

Bot sử dụng WMA14 của True Range để tính Upper Band và Lower Band.

Sau đó, đường Tracker được cập nhật theo trạng thái Bullish hoặc Bearish.

Bước 2: Phát hiện Tracker Flip

Khi Tracker Direction thay đổi, bot xác định Bull Flip hoặc Bear Flip.

Đây là tín hiệu khởi đầu của một chu kỳ Setup mới.

Bước 3: Tính Equilibrium

Chiến lược tính Linear Regression55 rồi làm mượt bằng HMA9.

Equilibrium được sử dụng để xác nhận xu hướng và Pullback.

Bước 4: Tính Trend Indicators

Bot tính:

  • RSI14.
  • SMA14 của RSI.
  • +DI14.
  • −DI14.
  • ADX14.
  • ATR14 dùng cho Risk.

Bước 5: Tính Trend Score

Sáu thành phần được chấm +1 hoặc −1.

Tổng Score được chuẩn hóa thành phần trăm có dấu.

Bước 6: Kích hoạt Armed Setup

Khi Bull Flip xuất hiện:

  • Long Setup Bar được lưu.
  • Long Setup Low được lưu.
  • Long Pulled Back được đặt về False.
  • Short Setup bị xóa.

Khi Bear Flip xuất hiện, bot thực hiện các thao tác đối xứng.

Điểm quan trọng là Armed Setup được tạo trực tiếp từ Tracker Flip, chưa yêu cầu đang Flat hoặc đang trong Entry Session.

Bước 7: Theo dõi Setup Active

Long Setup Active khi:

  • Đã có Long Setup Bar.
  • Tracker Direction vẫn Bullish.
  • Chưa vượt 6 nến từ cây nến Flip.

Short Setup yêu cầu Tracker Direction Bearish.

Bước 8: Cập nhật Setup Extreme

Khi Long Setup còn hiệu lực:

Long Setup Low = Min(Long Setup Low trước, Low hiện tại).

Khi Short Setup còn hiệu lực:

Short Setup High = Max(Short Setup High trước, High hiện tại).

Các cực trị này tham gia tính Structural Stop.

Bước 9: Kiểm tra Strong Flip

Ngay tại cây nến Tracker Flip, chiến lược kiểm tra:

  • Trend Score.
  • ADX.
  • Giá so với Equilibrium.
  • Equilibrium Slope.
  • Hướng nến.
  • Body Ratio.
  • Equilibrium Distance.

Nếu đạt toàn bộ điều kiện, Strong Flip Signal được xác nhận.

Bước 10: Theo dõi Pullback

Nếu Long Setup Active, bot kiểm tra:

Low ≤ Equilibrium + 0.35 ATR.

Nếu đúng, Long Pulled Back chuyển thành True.

Với Short:

High ≥ Equilibrium − 0.35 ATR.

Khi đáp ứng, Short Pulled Back chuyển thành True.

Bước 11: Duy trì trạng thái Pullback

Sau khi Pullback được ghi nhận, biến Pulled Back giữ giá trị True cho đến khi Setup bị xóa hoặc một Tracker Flip mới thay đổi trạng thái.

Bot không yêu cầu giá phải liên tục chạm Equilibrium ở mọi cây nến sau đó.

Bước 12: Kiểm tra Re-Entry Confirmation

Từ cây nến sau Tracker Flip, bot có thể tìm Re-Entry.

Long yêu cầu:

  • Tracker vẫn Bullish.
  • Long Pulled Back đã được ghi nhận.
  • Score đạt ngưỡng.
  • ADX đạt ngưỡng.
  • Close trên Equilibrium.
  • Equilibrium không giảm.
  • Nến tăng đạt Body Ratio.
  • RSI Momentum hợp lệ.

Short áp dụng điều kiện ngược lại.

Bước 13: Tạo Raw Entry Signal

Raw Long là kết quả của:

Strong Flip Long OR Pullback Re-Entry Long.

Raw Short được xác định tương tự, với điều kiện không đồng thời có Raw Long.

Source Signal chỉ được xác nhận khi cây nến đã đóng cửa.

Bước 14: Tính Structural Stop

Long:

Stop = Min(Setup Low, Tracker) − ATR × 0.15.

Short:

Stop = Max(Setup High, Tracker) + ATR × 0.15.

Bước 15: Kiểm tra Candidate Risk

Long:

Risk = Close − Candidate Stop.

Short:

Risk = Candidate Stop − Close.

Theo mặc định:

2 ≤ Risk ≤ 8 điểm.

Bước 16: Kiểm tra Common Entry Approval

Bot yêu cầu:

  • Đang Flat.
  • Nằm trong Entry Session.
  • Cooldown hợp lệ.
  • Trades Today dưới 4.

Đồng thời Trade Direction phải cho phép hướng tương ứng.

Bước 17: Gửi Final Entry

Khi toàn bộ điều kiện đạt, bot gửi lệnh Long hoặc Short.

Theo mặc định:

3 hợp đồng.

Bot lưu Pending Stop và loại tín hiệu:

  • Strong Flip.
  • Re-Entry.

Bước 18: Gửi Protective Stop

Ngay khi gửi Entry, chiến lược đồng thời gọi strategy.exit() với mức Stop dự kiến.

Điều này tạo một lệnh Stop bảo vệ gắn với Entry ngay từ giai đoạn chờ khớp trong mô phỏng.

Bước 19: Nhận diện giá khớp thực tế

Theo cấu hình:

process_orders_on_close=false

Lệnh Entry thông thường được mô phỏng khớp tại cơ hội khớp tiếp theo, thay vì ngay tại Close của nến tín hiệu.

Bot sau đó lấy:

Active Entry Price = Strategy Position Average Price.

Bước 20: Kiểm tra Gap Risk

Bot tính Actual Risk từ giá khớp và Pending Stop.

Nếu Repair Risk After Next-Bar Gap được bật, khoảng Risk nằm ngoài 2–8 điểm sẽ được điều chỉnh về phạm vi này bằng cách thay đổi Active Stop.

Bước 21: Tính Take Profit

Sau khi xác định Actual Initial Risk:

Target = Entry ± 1.8 × Actual Risk.

Target được tính từ giá khớp thực tế.

Bước 22: Theo dõi Close-Based Profit R

CNPS 50 sử dụng Close để tính mức lợi nhuận theo R.

Long:

Profit R = (Close − Entry) / Initial Risk.

Short:

Profit R = (Entry − Close) / Initial Risk.

Bot lưu giá trị lớn nhất đã ghi nhận.

Bước 23: Break Even tại 1R

Khi Maximum Close Profit R đạt ít nhất 1:

  • Long Stop có thể nâng lên Entry + 0.5 điểm.
  • Short Stop có thể hạ xuống Entry − 0.5 điểm.

Bước 24: Tracker Profit Trail tùy chọn

Nếu bật, khi Maximum Close Profit R đạt ít nhất 1.25R và Tracker vẫn cùng hướng vị thế, bot sử dụng mức Tracker để cải thiện Active Stop.

Bước 25: Opposite Tracker Flip Exit

Khi đang Long và xuất hiện Bear Flip, bot có thể yêu cầu đóng Long.

Khi đang Short và xuất hiện Bull Flip, bot có thể yêu cầu đóng Short.

Cơ chế này mặc định bật.

Bước 26: Force Close

Khi cây nến đi qua mốc 14:45, chiến lược yêu cầu đóng toàn bộ vị thế còn mở.

4. Điều kiện vào lệnh Long và Short của CNPS 50

4.1. Strong Flip Long

Strong Flip Long yêu cầu:

  1. Entry Mode cho phép Strong Flip.
  2. Tracker vừa chuyển từ Bearish sang Bullish.
  3. Trend Score ≥ 67%.
  4. ADX ≥ 18.
  5. Close > Equilibrium.
  6. Equilibrium hiện tại > Equilibrium trước.
  7. Close > Open.
  8. Body Ratio ≥ 0.25.
  9. Equilibrium Distance ≤ 1.5 ATR.
  10. Nến đã xác nhận.
  11. Candidate Risk từ 2 đến 8 điểm.
  12. Trade Direction cho phép Long.
  13. Đang Flat.
  14. Entry Session hợp lệ.
  15. Cooldown và Daily Trade Limit hợp lệ.

Với sáu thành phần Score mặc định, ngưỡng 67% thực tế yêu cầu 6/6 xác nhận tăng.

4.2. Ví dụ Strong Flip Long

Giả sử VN30F1M vừa xuất hiện Bull Flip.

Tại nến tín hiệu:

  • Tracker Direction: Bearish → Bullish.
  • Equilibrium = 1,899.
  • Equilibrium trước = 1,898.5.
  • Tracker = 1,898.
  • ATR14 = 4.
  • ADX = 20.
  • RSI14 = 56.
  • RSI Average = 52.
  • +DI = 22.
  • −DI = 15.

Dữ liệu nến:

  • Open = 1,900.
  • High = 1,903.
  • Low = 1,899.
  • Close = 1,902.

Kiểm tra Score:

  • Tracker Bullish: +1.
  • Close > Equilibrium: +1.
  • Equilibrium Slope tăng: +1.
  • RSI > 50: +1.
  • RSI > RSI Average: +1.
  • +DI > −DI: +1.

Tổng:

Trend Score = +100%.

Body Ratio:

(1,902 − 1,900) / (1,903 − 1,899) = 0.50.

Equilibrium Distance:

(1,902 − 1,899) / 4 = 0.75 ATR.

ADX20 đạt ngưỡng 18.

Structural Stop:

Min(1,899; 1,898) − 0.15 × 4 = 1,897.4.

Candidate Risk:

1,902 − 1,897.4 = 4.6 điểm.

Khoảng Risk hợp lệ.

Nếu Session và Trade Control đạt yêu cầu, bot gửi Long Entry.

Giả sử lệnh khớp tại 1,902.5 ở cây nến tiếp theo.

Actual Risk:

1,902.5 − 1,897.4 = 5.1 điểm.

Take Profit:

1,902.5 + 5.1 × 1.8 = 1,911.68.

Break Even Trigger dựa trên Close:

1,907.6.

Stop sau Break Even:

1,903.0.

Các mức giá trên chỉ phục vụ minh họa công thức và cần được làm tròn theo bước giá hợp lệ khi sử dụng thực tế.

4.3. Strong Flip Short

Strong Flip Short sử dụng các điều kiện đối xứng.

  1. Tracker vừa chuyển từ Bullish sang Bearish.
  2. Trend Score ≤ −67%.
  3. ADX ≥ 18.
  4. Close < Equilibrium.
  5. Equilibrium hiện tại < Equilibrium trước.
  6. Close < Open.
  7. Body Ratio ≥ 0.25.
  8. Equilibrium Distance ≤ 1.5 ATR.
  9. Risk từ 2 đến 8 điểm.
  10. Các điều kiện giao dịch chung hợp lệ.

Với cấu hình mặc định, Strong Short yêu cầu tất cả sáu điều kiện Score xác nhận Bearish.

4.4. Pullback Re-Entry Long

Re-Entry Long không bắt buộc xuất hiện trên cây nến Flip.

Bot yêu cầu:

  1. Entry Mode cho phép Pullback Re-Entry.
  2. Long Setup đã được Armed từ Bull Flip.
  3. Tracker Direction vẫn Bullish.
  4. Setup chưa vượt 6 nến.
  5. Nến hiện tại xuất hiện sau nến Flip.
  6. Giá đã chạm vùng Equilibrium theo Tolerance.
  7. Trend Score ≥ 50%.
  8. ADX ≥ 15.
  9. Close > Equilibrium.
  10. Equilibrium không giảm.
  11. Nến tăng.
  12. Body Ratio ≥ 0.20.
  13. RSI14 ≥ 50 và RSI14 tăng so với nến trước nếu RSI Momentum Filter bật.
  14. Candidate Risk từ 2 đến 8 điểm.
  15. Common Entry Approval hợp lệ.

Với sáu thành phần Score mặc định, Re-Entry Long yêu cầu ít nhất 5/6 xác nhận tăng.

4.5. Pullback Re-Entry Short

Short áp dụng điều kiện tương ứng:

  1. Short Armed từ Bear Flip.
  2. Tracker vẫn Bearish.
  3. Setup còn hiệu lực.
  4. Giá đã chạm vùng Equilibrium.
  5. Trend Score ≤ −50%.
  6. ADX ≥ 15.
  7. Close < Equilibrium.
  8. Equilibrium không tăng.
  9. Nến giảm.
  10. Body Ratio ≥ 0.20.
  11. RSI14 ≤ 50 và RSI14 giảm so với nến trước nếu Momentum Filter bật.
  12. Risk và Trade Control hợp lệ.

4.6. Ví dụ Pullback Re-Entry Short

Giả sử tại Bar 200, Tracker chuyển sang Bearish.

Bot ghi nhận:

Short Setup High = 1,910.

Tại Bar 201, giá điều chỉnh về gần Equilibrium.

Giả sử:

  • Equilibrium = 1,905.
  • ATR14 = 4.
  • High = 1,907.

Pullback Tolerance:

0.35 × 4 = 1.4 điểm.

Điều kiện Short Touch:

1,907 ≥ 1,905 − 1.4.

Short Pulled Back được đặt thành True.

Tại Bar 202:

  • Tracker vẫn Bearish.
  • Equilibrium = 1,905.
  • Equilibrium trước = 1,905.4.
  • Tracker = 1,909.
  • ADX = 16.
  • RSI14 hiện tại = 46.
  • RSI14 trước = 48.
  • Trend Score = −66.67%.

Cây nến:

  • Open = 1,906.
  • High = 1,907.5.
  • Low = 1,903.
  • Close = 1,904.

Body Ratio:

(1,906 − 1,904) / (1,907.5 − 1,903) ≈ 0.44.

Đạt ngưỡng 0.20.

RSI46 dưới 50 và đang giảm.

Score −66.67% đạt ngưỡng −50%.

Equilibrium đang giảm và Close nằm dưới Equilibrium.

Giả sử Short Setup High vẫn bằng 1,910.

Structural Stop:

Max(1,910; 1,909) + 0.15 × 4 = 1,910.6.

Candidate Risk:

1,910.6 − 1,904 = 6.6 điểm.

Risk hợp lệ.

Nếu Trade Control đạt, bot có thể gửi Short.

Giả sử giá khớp tại 1,903.5.

Actual Risk:

1,910.6 − 1,903.5 = 7.1 điểm.

Take Profit:

1,903.5 − 7.1 × 1.8 = 1,890.72.

Break Even Trigger theo Close:

1,896.4.

Stop sau Break Even:

1,903.0.

Đây là một ví dụ giả định nhằm minh họa cách bot tính Entry và quản trị vị thế.

4.7. Re-Entry không bắt buộc RSI Crossover 50

Một điểm quan trọng là CNPS 50 không sử dụng trực tiếp điều kiện:

ta.crossover(rsiValue, 50)

hoặc:

ta.crossunder(rsiValue, 50)

tại Re-Entry.

Long chỉ yêu cầu:

RSI ≥ 50 và RSI hiện tại > RSI trước.

Short yêu cầu:

RSI ≤ 50 và RSI hiện tại < RSI trước.

Do đó, RSI có thể đã nằm trên 50 từ nhiều nến trước và tiếp tục tăng, nhưng Long Re-Entry vẫn hợp lệ.

4.8. Re-Entry không yêu cầu phá High/Low nến trước

Khác với một số bot Re-Entry sử dụng Previous High/Low Break, CNPS 50 không có điều kiện bắt buộc:

Long Close > High[1].

Hoặc:

Short Close < Low[1].

Bộ máy Re-Entry sử dụng:

  • Tracker State.
  • Pullback Touch.
  • Trend Score.
  • ADX.
  • Equilibrium.
  • Candle Direction.
  • Body Ratio.
  • RSI Momentum.

Vì vậy, một cây nến xác nhận có thể hợp lệ mà chưa vượt cực trị nến trước.

4.9. Pullback có thể được ghi nhận ngay tại cây nến Flip

CNPS 50 cập nhật Setup và kiểm tra Pullback ngay khi Tracker Flip xuất hiện.

Ví dụ, một Bull Flip có Low nằm dưới ngưỡng:

Equilibrium + 0.35 ATR.

Bot có thể đặt Long Pulled Back thành True ngay trên cây nến Flip.

Tuy nhiên, Re-Entry vẫn yêu cầu Bar hiện tại lớn hơn Setup Bar.

Do đó, Entry Re-Entry sớm nhất được xét từ cây nến tiếp theo.

Điểm này có nghĩa chiến lược không bắt buộc giá phải tạo một nhịp Pullback mới sau khi Tracker đã Flip.

4.10. Strong Flip và Re-Entry dùng chung Armed Setup

Ngay khi Tracker Flip xuất hiện, bot tạo Setup.

Nếu Strong Flip hợp lệ nhưng Final Entry bị từ chối vì Risk hoặc Trade Control, Setup vẫn có thể tiếp tục tồn tại.

Trong các nến tiếp theo, chiến lược có thể xem xét Pullback Re-Entry nếu điều kiện phù hợp.

Nếu Strong Flip tạo Final Entry thành công, Setup cùng hướng được xóa.

4.11. Strong Flip không bắt buộc Pullback

Strong Flip được tạo trực tiếp tại cây nến Tracker đảo hướng.

Nó không yêu cầu Long Pulled Back hoặc Short Pulled Back đã chuyển thành True.

Như vậy, Strong Flip là cơ chế giao dịch theo tín hiệu đảo chiều chất lượng cao.

Trong khi đó, Re-Entry cần thêm bước ghi nhận giá chạm vùng Equilibrium.

4.12. Hai phương pháp có bộ lọc chất lượng khác nhau

Điều kiệnStrong FlipPullback Re-Entry
Tracker Flip trên nến EntryBắt buộcKhông bắt buộc
Armed SetupTạo cùng nến FlipPhải còn hiệu lực
Trend Score±67%±50%
ADX≥18≥15
Minimum Body Ratio0.250.20
Equilibrium PositionBắt buộcBắt buộc
Equilibrium SlopeĐúng hướngKhông ngược hướng
Maximum Extension≤1.5 ATRKhông có bộ lọc riêng
Pullback TouchKhông cầnBắt buộc
RSI Momentum RecoveryKhông có bộ lọc riêngBật mặc định

Điều này cho thấy Strong Flip sử dụng bộ lọc chặt chẽ hơn về mức đồng thuận và sức mạnh tín hiệu, trong khi Re-Entry yêu cầu thêm trạng thái Pullback.

5. CNPS 50 quản trị Stop Loss, Gap Risk và Take Profit như thế nào?

5.1. Structural Stop Loss

CNPS 50 sử dụng Stop Loss dựa trên cấu trúc.

Long:

Stop = Min(Long Setup Low, Tracker) − ATR14 × 0.15.

Short:

Stop = Max(Short Setup High, Tracker) + ATR14 × 0.15.

Trong thời gian Setup Active, Low và High được cập nhật.

Do đó, Structural Stop có thể phản ánh cực trị của nhiều cây nến trong thời gian chờ Re-Entry.

5.2. ATR Buffer

Mặc định:

Stop Buffer = 0.15 ATR14.

Ví dụ:

  • ATR14 = 6 điểm.

Buffer:

0.15 × 6 = 0.9 điểm.

Với Long, bot trừ 0.9 điểm khỏi mức cấu trúc thấp hơn.

Với Short, bot cộng 0.9 điểm vào mức cấu trúc cao hơn.

Buffer giúp tạo một khoảng cách bổ sung ngoài mức cấu trúc tham chiếu.

Tuy nhiên, khoảng này không đảm bảo tránh được các biến động xuyên Stop.

5.3. Structural Stop sử dụng cả Tracker và Setup Extreme

Giả sử:

  • Long Setup Low = 1,900.
  • Tracker = 1,898.
  • ATR14 = 4.

Stop:

Min(1,900; 1,898) − 0.6 = 1,897.4.

Nếu chỉ sử dụng Setup Low, Stop sẽ cao hơn.

Vì vậy, vị trí Tracker có thể làm tăng khoảng Risk dự kiến.

Đây là một yếu tố cần chú ý khi Maximum Risk được giới hạn 8 điểm.

5.4. Risk Filter 2–8 điểm

CNPS 50 yêu cầu:

2 ≤ Candidate Risk ≤ 8 điểm.

Candidate RiskKết quả
1.5 điểmTừ chối
2 điểmChấp nhận
5 điểmChấp nhận
8 điểmChấp nhận
9 điểmTừ chối

Risk được tính từ Close của nến tín hiệu đến Candidate Stop.

Bot không tự động điều chỉnh Candidate Stop trước khi Entry nhằm ép Risk vào khoảng này.

5.5. Lệnh Entry được mô phỏng khớp sau nến tín hiệu

CNPS 50 sử dụng:

process_orders_on_close=false

Với một Market Entry được gửi khi nến tín hiệu đóng cửa, việc khớp thông thường được mô phỏng tại cơ hội khớp tiếp theo.

Do đó, giá khớp có thể khác Close của cây nến tín hiệu.

Ví dụ:

  • Long Signal Close = 1,900.
  • Candidate Stop = 1,895.
  • Candidate Risk = 5 điểm.

Nhưng giá khớp Long thực tế trong mô phỏng có thể là 1,904.

Khi đó:

Actual Risk = 1,904 − 1,895 = 9 điểm.

Nếu không có cơ chế sửa Risk, khoảng Stop thực tế sẽ vượt Maximum Risk 8 điểm.

5.6. Repair Risk After Next-Bar Gap

CNPS 50 V2 mặc định bật:

Repair Risk After Next-Bar Gap = True.

Khi vị thế mới được nhận diện, bot tính Actual Risk từ giá khớp trung bình và Pending Stop.

Nếu Actual Risk:

  • Nhỏ hơn Minimum Risk.
  • Lớn hơn Maximum Risk.
  • Hoặc không có giá trị hợp lệ.

Bot sẽ tính một khoảng Risk thay thế.

Công thức chính:

Repaired Risk = Min(Maximum Risk, Max(Minimum Risk, Actual Risk)).

Nếu Actual Risk không có dữ liệu, chiến lược sử dụng Risk ATR làm giá trị dự phòng trước khi giới hạn.

Sau đó, Stop được tính lại từ Entry.

5.7. Ví dụ sửa Gap Risk Long

Giả sử:

  • Long Signal Close = 1,900.
  • Pending Structural Stop = 1,895.
  • Candidate Risk = 5 điểm.

Lệnh Long được gửi.

Tại cây nến tiếp theo, giá khớp bằng:

1,904.

Actual Risk ban đầu:

1,904 − 1,895 = 9 điểm.

Maximum Risk:

8 điểm.

Vì Gap Risk Repair đang bật, bot điều chỉnh:

Repaired Risk = 8 điểm.

Stop mới:

1,904 − 8 = 1,896.

Take Profit 1.8R:

1,904 + 8 × 1.8 = 1,918.4.

Khi đó, Stop đã được điều chỉnh lên so với mức Structural Stop ban đầu.

5.8. Repair Risk có thể khiến Stop không còn nằm đúng cấu trúc ban đầu

Đây là một đặc điểm quan trọng của CNPS 50.

Nếu Stop được điều chỉnh để đáp ứng giới hạn Risk sau khớp, mức Stop mới không còn bắt buộc trùng với Structural Stop được xác định từ Tracker và Setup.

Ví dụ:

  • Structural Stop ban đầu = 1,895.
  • Entry thực tế = 1,904.
  • Maximum Risk = 8.

Stop sau Repair:

1,896.

Bot ưu tiên đưa khoảng Risk danh nghĩa về phạm vi đã chọn, thay vì giữ nguyên toàn bộ khoảng cách cấu trúc ban đầu.

5.9. Repair Risk cũng có thể nới Stop

Giả sử:

  • Long Entry = 1,896.
  • Structural Stop ban đầu = 1,895.

Actual Risk:

1 điểm.

Minimum Risk:

2 điểm.

Khi Repair bật:

Repaired Risk = 2 điểm.

Stop mới:

1,896 − 2 = 1,894.

Trong ví dụ này, Stop được nới xa hơn so với mức cấu trúc ban đầu.

Vì vậy, Repair Risk không phải cơ chế chỉ thu hẹp Stop.

Nó có thể điều chỉnh cả hai hướng để đưa khoảng Risk về giới hạn đã cấu hình.

5.10. Protective Stop được gửi cùng Entry

Một cải tiến đáng chú ý của CNPS 50 V2 là bot gọi strategy.exit() ngay trong nhánh gửi Entry.

Với Long:

  • Gửi strategy.entry("Long", ...).
  • Gửi strategy.exit("Long Exit", from_entry="Long", stop=pendingStop).

Short sử dụng cơ chế tương ứng.

Mục đích là tạo một lệnh Stop bảo vệ gắn với Entry, thay vì chờ đến khi vị thế được nhận diện rồi mới lần đầu gửi lệnh Stop.

Sau khi Entry khớp và Risk được khởi tạo, bot cập nhật lệnh Exit với Stop mới và Take Profit.

Điều này giúp cải thiện cấu trúc quản trị lệnh trong mô phỏng, nhưng không đảm bảo loại bỏ hoàn toàn Gap Risk hoặc Slippage.

5.11. Take Profit 1.8R

Theo mặc định:

Take Profit R = 1.8.

Với Long:

TP = Actual Entry + Actual Initial Risk × 1.8.

Với Short:

TP = Actual Entry − Actual Initial Risk × 1.8.

Ví dụ:

  • Entry Long = 1,900.
  • Active Stop = 1,895.
  • Initial Risk = 5.

Take Profit:

1,900 + 5 × 1.8 = 1,909.

Target được tính từ giá khớp trung bình sau khi xác định khoảng Risk thực tế hoặc Repaired Risk.

5.12. Close-Based Profit R

CNPS 50 V2 sử dụng Close để đánh giá lợi nhuận theo đơn vị R.

Long:

Close Profit R = (Close − Entry) / Initial Risk.

Short:

Close Profit R = (Entry − Close) / Initial Risk.

Bot không sử dụng trực tiếp High/Low của nến để tính Maximum Profit R.

Đây là khác biệt so với nhiều chiến lược Trailing dựa trên mức giá thuận lợi nhất trong nến.

5.13. Maximum Close Profit R

Bot lưu giá trị lớn nhất của Close Profit R kể từ khi vị thế được khởi tạo.

Ví dụ:

  • Một nến đóng cửa tại +0.7R.
  • Nến sau đóng tại +1.1R.
  • Nến tiếp theo đóng tại +0.5R.

Maximum Close Profit R vẫn bằng:

1.1R.

Giá trị này được sử dụng để kích hoạt Break Even và Tracker Profit Trail.

5.14. Break Even tại 1R

CNPS 50 mặc định bật:

Use Break Even = True.

Break Even Trigger = 1R.

Break Even Offset = 0.5 điểm.

Với Long:

Khi Maximum Close Profit R ≥ 1:

New Stop = Max(Current Stop, Entry + 0.5).

Với Short:

New Stop = Min(Current Stop, Entry − 0.5).

5.15. Ví dụ Break Even Long

Giả sử:

  • Entry = 1,900.
  • Initial Stop = 1,895.
  • Initial Risk = 5 điểm.

Để kích hoạt Break Even, bot cần ghi nhận Close Profit R đạt ít nhất 1.

Tương ứng:

Close ≥ 1,905.

Nếu nến có High bằng 1,907 nhưng Close chỉ 1,904, Break Even chưa được kích hoạt chỉ dựa trên High.

Khi Close đạt 1,905 hoặc cao hơn:

Stop mới = 1,900.5.

Đây là điểm khác biệt quan trọng của cơ chế Close-Based Profit R.

5.16. Profit Tracker Trail

CNPS 50 hỗ trợ:

Use Tracker Profit Trail = False.

Theo mặc định, chức năng này tắt.

Nếu bật:

Start Trail = 1.25R.

Với Long, khi Maximum Close Profit R đạt ít nhất 1.25R và Tracker Direction vẫn Bullish:

Active Stop = Max(Current Stop, Tracker).

Với Short, điều kiện tương ứng yêu cầu Tracker Direction Bearish:

Active Stop = Min(Current Stop, Tracker).

5.17. Profit Trail không phải Trailing ATR cố định

CNPS 50 không sử dụng một công thức Trailing độc lập như:

Close − ATR × 2.5.

Thay vào đó, bot sử dụng chính giá trị của ATR Trend Tracker.

Vì Tracker có cơ chế Ratcheting và Reset theo xu hướng, Stop có thể được điều chỉnh theo những mức khác với Trailing ATR thông thường.

5.18. Break Even và Tracker Trail có thể đồng thời hoạt động

Nếu bật cả hai:

  • Break Even từ 1R.
  • Tracker Trail từ 1.25R.

Cả hai cùng điều chỉnh Active Stop.

Long Stop chỉ được nâng lên hoặc giữ nguyên.

Short Stop chỉ được hạ xuống hoặc giữ nguyên.

Nếu Tracker thấp hơn Break Even Stop đang có trong một vị thế Long, bot không hạ Stop xuống mức Tracker.

5.19. Take Profit và Tracker Trail vẫn cùng tồn tại

CNPS 50 mặc định sử dụng TP1.8R.

Khi bật Tracker Trail, bot vẫn giữ Target 1.8R.

Do đó, Profit Trail có thể điều chỉnh Stop từ 1.25R trước khi giá đạt TP1.8R.

Tuy nhiên, khi lệnh Take Profit được khớp, vị thế vẫn đóng tại mục tiêu.

Tracker Trail không biến chiến lược thành hệ thống giữ xu hướng không giới hạn.

5.20. Opposite Tracker Flip Exit

Theo mặc định:

Exit On Opposite Tracker Flip = True.

Nếu đang Long và xuất hiện Bear Flip:

Bot có thể yêu cầu đóng Long.

Nếu đang Short và xuất hiện Bull Flip:

Bot có thể yêu cầu đóng Short.

Điểm quan trọng là Opposite Exit chỉ cần Tracker Flip đối lập, không bắt buộc Strong Flip Score hoặc Re-Entry Score đạt điều kiện.

5.21. Opposite Flip không tự động Reverse

CNPS 50 không có nhánh Immediate Reversal độc lập.

Final Entry yêu cầu:

Flat = True.

Vì vậy, khi đang Long và Tracker chuyển Bearish, bot có thể gửi lệnh đóng Long.

Tuy nhiên, Short Entry không tự động được tạo chỉ vì Bear Flip đã xuất hiện.

Một giao dịch Short mới cần có Final Entry hợp lệ theo Strong Flip hoặc Pullback Re-Entry.

5.22. Maximum Trades Per Day

Theo mặc định:

Maximum Trades Per Day = 4.

Trades Today tăng thêm một khi bot gửi Final Entry.

Khi đã đạt bốn lệnh trong ngày, những Final Entries tiếp theo không được chấp thuận.

5.23. Cooldown After Exit

CNPS 50 sử dụng:

Cooldown = 3 nến.

Điều kiện:

Current Bar − Last Exit Bar > 3.

Ví dụ:

  • Exit được ghi nhận tại Bar 100.
  • Bar 101–103: Chưa đạt.
  • Bar 104: Đạt.

Cooldown chỉ được sử dụng trong Common Entry Approval, không trực tiếp ngăn Tracker tiếp tục tạo Setup mới.

5.24. Force Close

CNPS 50 mặc định yêu cầu đóng toàn bộ vị thế tại:

14:45.

Điều kiện được xác định từ thời điểm mở và đóng của cây nến.

Khi cây nến đi qua mốc Force Close, chiến lược gọi:

strategy.close_all(immediately=true)

5.25. Tổng hợp cơ chế quản trị vị thế

Cơ chếMặc địnhVai trò
Structural StopBậtSetup Extreme + Tracker
ATR Buffer0.15 ATRKhoảng đệm Stop
Risk Filter2–8 điểmKiểm tra Entry
Protective StopBậtGửi cùng Entry
Gap Risk RepairBậtĐiều chỉnh Stop sau khớp
Take Profit1.8RMục tiêu lợi nhuận
Close-Based Break EvenBật tại 1RDời Stop
Break Even Offset0.5 điểmMức Stop sau BE
Tracker Profit TrailTắtTrailing từ 1.25R
Opposite Tracker Flip ExitBậtThoát khi Tracker đảo hướng
Maximum Trades/Day4Giới hạn tần suất
Cooldown3 nếnKhoảng nghỉ sau Exit
Force Close14:45Đóng cuối phiên

6. Hướng dẫn cài đặt và sử dụng CNPS 50 trên TradingView

Bước 1: Mở biểu đồ giao dịch

Truy cập TradingView và mở biểu đồ hợp đồng tương lai VN30 từ nguồn dữ liệu phù hợp.

CNPS 50 sử dụng dữ liệu OHLC và Volume không phải điều kiện bắt buộc trong Score.

Các thành phần Trend Tracker, Equilibrium, RSI, ADX và Risk được tính theo khung thời gian biểu đồ hiện tại.

Do đó, kết quả trên M1 có thể khác đáng kể so với M5.

Bước 2: Thêm mã nguồn

  1. Mở TradingView.
  2. Chọn Pine Editor.
  3. Tạo một Strategy mới.
  4. Dán mã nguồn CNPS50 TREND ANALYSIS V2 QUALITY RE-ENTRY.
  5. Lưu mã nguồn.
  6. Chọn Add to chart.
  7. Kiểm tra đường Trend Tracker.
  8. Mở Strategy Tester.

Tên Strategy:

CNPS50 TREND ANALYSIS V2 QUALITY RE-ENTRY

Short Title:

CNPS50 TAS V2

Phiên bản:

//@version=6

Bước 3: Cấu hình Trend Tracker

Thông sốMặc định
Tracker ATR Length14
Tracker Multiplier2.2

Nhóm này kiểm soát độ nhạy của đường Trend Tracker.

Nếu tăng Multiplier, các Band tham chiếu nằm xa giá hơn.

Nếu giảm Multiplier, Band nằm gần giá hơn.

Tuy nhiên, thời điểm Flip cuối cùng còn chịu ảnh hưởng của cơ chế Ratchet và biến động giá.

Bước 4: Cấu hình Equilibrium

Thông sốMặc định
Regression Length55
Hull Smoothing9

Equilibrium được sử dụng trong cả hai phương pháp Entry.

Nếu thay đổi Regression Length hoặc Hull Smoothing, vị trí và độ dốc Equilibrium có thể thay đổi.

Điều này đồng thời ảnh hưởng đến:

  • Trend Score.
  • Strong Flip Quality.
  • Equilibrium Distance.
  • Pullback Touch.
  • Re-Entry Confirmation.

Bước 5: Cấu hình Trend Score

Các thành phần mặc định đều bật:

Thành phầnMặc định
Tracker DirectionBật
Price vs EquilibriumBật
Equilibrium SlopeBật
RSI vs 50Bật
RSI vs RSI AverageBật
+DI vs −DIBật

Nếu tắt một thành phần, Score Maximum sẽ được tính lại.

Ví dụ, với năm thành phần đang bật, các mức Score có thể là:

−100%, −60%, −20%, +20%, +60%, +100%.

Do đó, cùng một ngưỡng Score 67% có thể có ý nghĩa khác với khi sử dụng sáu thành phần.

Bước 6: Cấu hình Entry Mode

CNPS 50 có ba lựa chọn:

Strong Flip: Chỉ cho phép tín hiệu Strong Flip.

Pullback Re-Entry: Chỉ cho phép tín hiệu Re-Entry.

Both: Cho phép cả hai.

Mặc định:

Both.

Khi chọn Both, bot có thể sử dụng Strong Flip ngay tại cây nến đảo trạng thái hoặc Re-Entry trong thời gian Setup còn hiệu lực.

Bước 7: Cấu hình Strong Flip

Thông sốMặc định
Minimum Score67%
Minimum ADX18
Minimum Body Ratio0.25
Maximum Extension1.5 ATR

Đây là nhóm quyết định chất lượng tín hiệu ngay trên cây nến Tracker Flip.

Cần chú ý rằng ngưỡng 67% với sáu thành phần Score mặc định thực tế tương đương yêu cầu 6/6 điều kiện đồng thuận.

Nếu muốn kiểm thử ngưỡng tương đương 5/6, cần chọn Minimum Score không lớn hơn khoảng 66.67%.

Bước 8: Cấu hình Pullback Re-Entry

Thông sốMặc định
Setup Lifetime6 nến
Equilibrium Touch Tolerance0.35 ATR
Minimum Re-Entry Score50%
Minimum ADX15
Minimum Body Ratio0.20
Require RSI Momentum RecoveryBật

Nhóm này kiểm soát số lượng và chất lượng Re-Entry.

Nếu tăng Setup Lifetime, bot có thể chờ tín hiệu lâu hơn.

Nếu tăng Pullback Tolerance, điều kiện chạm vùng Equilibrium có thể dễ đạt hơn.

Nếu bật RSI Momentum, Long yêu cầu RSI tăng và ít nhất bằng 50; Short yêu cầu RSI giảm và không vượt 50.

Bước 9: Cấu hình Risk Management

Thông sốMặc định
Risk ATR Length14
Structural Stop Buffer0.15 ATR
Minimum Risk Points2
Maximum Risk Points8
Repair Gap RiskBật
Take Profit R1.8

Đây là nhóm quan trọng vì CNPS 50 sử dụng Structural Stop đồng thời với Gap Risk Repair.

Nếu tăng Stop Buffer, Structural Stop có thể nằm xa hơn và khiến Candidate Risk vượt giới hạn 8 điểm.

Nếu giảm Maximum Risk, số tín hiệu được chấp nhận có thể giảm.

Khi bật Repair Gap Risk, khoảng Stop có thể được điều chỉnh sau khớp để đưa Actual Risk về phạm vi 2–8 điểm.

Bước 10: Cấu hình Break Even

Thông sốMặc định
Use Break EvenBật
Trigger1R
Offset0.5 điểm

Break Even được kích hoạt theo Maximum Close Profit R, không phải mức High/Low thuận lợi trong nến.

Nên đánh giá tác động của cơ chế này đến Average Win và tỷ lệ các giao dịch bị đóng sau khi từng có lợi nhuận.

Bước 11: Cấu hình Tracker Profit Trail

Thông sốMặc định
Use Tracker Profit TrailTắt
Start Trail At1.25R

Khi bật, Tracker được sử dụng để cải thiện Stop sau khi đạt ngưỡng lợi nhuận.

Đáng chú ý, bot còn yêu cầu Tracker Direction đồng thuận với hướng vị thế trước khi cập nhật Stop.

Bước 12: Cấu hình Opposite Flip Exit

Thông sốMặc định
Exit On Opposite Tracker FlipBật

Nếu bật, Tracker Flip ngược hướng có thể yêu cầu đóng vị thế đang giữ.

Điều kiện này không sử dụng các bộ lọc Strong Flip hoặc Re-Entry Quality.

Bước 13: Cấu hình Trade Control

Thông sốMặc định
Trade DirectionBoth
Position Size3 hợp đồng
Maximum Trades Per Day4
Cooldown3 nến

Trade Direction hỗ trợ Long, Short và Both.

Position Size được thiết lập cố định, không tự động thay đổi theo khoảng Risk hoặc số dư tài khoản.

Bước 14: Cấu hình Session

Thông sốMặc định
TimezoneAsia/Ho_Chi_Minh
Morning Entry09:05–11:25
Afternoon Entry13:05–14:25
Force Close14:45

Điểm đáng chú ý là CNPS 50 sử dụng các cửa sổ Entry ngắn hơn một chút so với toàn bộ thời gian giao dịch thông thường.

Tuy nhiên, Tracker vẫn có thể tạo Flip và Armed Setup ngoài Entry Session.

Chỉ Final Entry mới bắt buộc vượt bộ lọc Session.

Bước 15: Cấu hình hiển thị

Thành phầnMặc định
Trend TrackerBật
EquilibriumTắt
Setup MarkersTắt
Entry MarkersTắt
Active Stop/TargetBật
DiagnosticsTắt

Tracker được hiển thị:

  • Xanh khi Bullish.
  • Đỏ khi Bearish.

Equilibrium được hiển thị màu xám nếu bật.

Setup Flip Marker sử dụng dấu F.

Final Entry Marker sử dụng L hoặc S.

Active Stop được hiển thị màu đỏ và Active Target màu xanh.

Bước 16: Sử dụng Diagnostics

CNPS 50 có bảng Diagnostics gồm 2 cột × 18 hàng.

Các trường chính:

  • Chart Timeframe.
  • Tracker Direction.
  • Trend Score.
  • ADX.
  • RSI.
  • Distance From Equilibrium.
  • Setup State.
  • Strong Long/Short Count.
  • Re-Entry Long/Short Count.
  • Tracker Flip Count.
  • Trades Today.
  • Cooldown.
  • Entry Session.
  • Active Setup.
  • Active Initial Risk.
  • Maximum Close Profit R.
  • Active Stop.
  • Position.

Ví dụ:

Tracker: BULL.

Score: +100%.

ADX: 21.

Setup: LONG ARMED.

Cooldown: READY.

Entry Session: YES.

Các thông tin giúp quan sát trạng thái của từng bộ máy.

Tuy nhiên, số Strong Flip Signals và Re-Entry Signals không nhất thiết bằng số lệnh được khớp.

Bước 17: Kiểm thử trong Strategy Tester

Những chỉ số nên theo dõi:

  • Net Profit.
  • Maximum Drawdown.
  • Profit Factor.
  • Percent Profitable.
  • Total Trades.
  • Average Trade.
  • Average Winning Trade.
  • Average Losing Trade.

Các thử nghiệm nên thực hiện:

Thử nghiệm 1: Entry Mode Both mặc định.

Thử nghiệm 2: Chỉ sử dụng Strong Flip.

Thử nghiệm 3: Chỉ sử dụng Pullback Re-Entry.

Thử nghiệm 4: Strong Score 67% so với 66%.

Thử nghiệm 5: Re-Entry Score 50% so với 67%.

Thử nghiệm 6: ADX Strong18 so với 20 hoặc 25.

Thử nghiệm 7: ADX Re-Entry15 so với 18.

Thử nghiệm 8: Tracker Multiplier 2.2 so với 1.8 hoặc 2.5.

Thử nghiệm 9: Regression55 so với 34 hoặc 89.

Thử nghiệm 10: Equilibrium HMA9 so với HMA5 hoặc HMA14.

Thử nghiệm 11: Setup Lifetime 4, 6 và 8 nến.

Thử nghiệm 12: Equilibrium Touch Tolerance 0.20 và 0.50 ATR.

Thử nghiệm 13: Bật/tắt RSI Momentum Recovery.

Thử nghiệm 14: Strong Body Ratio 0.25 so với 0.40.

Thử nghiệm 15: Maximum Extension 1.5 ATR so với 1.0 ATR.

Thử nghiệm 16: Risk Filter 2–8 điểm với các ngưỡng khác.

Thử nghiệm 17: Bật/tắt Repair Gap Risk.

Thử nghiệm 18: Take Profit 1.8R so với 2R.

Thử nghiệm 19: Bật/tắt Break Even.

Thử nghiệm 20: Bật Tracker Profit Trail từ 1.25R.

Thử nghiệm 21: Bật/tắt Opposite Tracker Flip Exit.

Thử nghiệm 22: Giảm hoặc tăng Maximum Trades Per Day.

Thử nghiệm 23: Thay đổi Cooldown.

Thử nghiệm 24: So sánh M1 và M5.

Theo mã nguồn:

  • Initial Capital: 100,000,000 VNĐ.
  • Position Size mặc định: 3 hợp đồng.
  • Commission: 10,000 VNĐ/hợp đồng/lần khớp.
  • Slippage: 3 ticks.
  • Pyramiding: 0.
  • Process Orders On Close: Tắt.
  • Calculate On Order Fills: Bật.
  • Calculate On Every Tick: Tắt.
  • Fill Orders On Standard OHLC: Bật.
  • Margin Long/Short: 0.

Những thông số này phục vụ giao dịch mô phỏng trên TradingView.

Chúng không thay thế yêu cầu ký quỹ, chất lượng khớp lệnh và điều kiện giao dịch thực tế tại công ty chứng khoán.

7. Cách thiết lập cảnh báo tín hiệu giao dịch

CNPS 50 hỗ trợ cảnh báo thông qua Order Fill Events trong TradingView.

Để thiết lập:

  1. Mở biểu đồ có CNPS50 TREND ANALYSIS V2 QUALITY RE-ENTRY.
  2. Chọn Create Alert.
  3. Trong Condition, chọn chiến lược CNPS50.
  4. Chọn cảnh báo từ Order Fills.
  5. Trong Message, nhập {{strategy.order.alert_message}}.
  6. Chọn phương thức nhận cảnh báo và lưu.

7.1. Cảnh báo Strong Flip Long

Thông điệp:

ENTRY_LONG_STRONG_CNPS50_V2

Được sử dụng khi bot mở Long theo tín hiệu Strong Flip.

7.2. Cảnh báo Strong Flip Short

Thông điệp:

ENTRY_SHORT_STRONG_CNPS50_V2

Được sử dụng khi bot mở Short theo tín hiệu Strong Flip.

7.3. Cảnh báo Pullback Re-Entry

Alert MessageÝ nghĩa
ENTRY_LONG_REENTRY_CNPS50_V2Mở Long theo Pullback Re-Entry
ENTRY_SHORT_REENTRY_CNPS50_V2Mở Short theo Pullback Re-Entry

Những thông điệp này giúp phân biệt hiệu quả giao dịch của hai bộ máy Entry.

7.4. Cảnh báo Protective Stop ban đầu

CNPS 50 có hai mã cảnh báo dành cho Stop Loss được gửi cùng Entry.

Alert MessageÝ nghĩa
EXIT_LONG_INITIAL_SL_CNPS50_V2Stop Loss bảo vệ ban đầu cho Long
EXIT_SHORT_INITIAL_SL_CNPS50_V2Stop Loss bảo vệ ban đầu cho Short

Sau khi vị thế được nhận diện và lệnh Exit được cập nhật, Stop Alert có thể sử dụng mã thông thường hoặc Break Even tùy trạng thái.

7.5. Cảnh báo Take Profit

Alert MessageÝ nghĩa
EXIT_LONG_TP_CNPS50_V2Long đóng theo TP
EXIT_SHORT_TP_CNPS50_V2Short đóng theo TP

Take Profit mặc định là 1.8R được tính từ giá khớp và Active Initial Risk.

7.6. Cảnh báo Stop Loss sau khi khởi tạo vị thế

Alert MessageÝ nghĩa
EXIT_LONG_SL_CNPS50_V2Long đóng theo Stop
EXIT_SHORT_SL_CNPS50_V2Short đóng theo Stop

Các thông điệp này được sử dụng khi Break Even chưa kích hoạt.

7.7. Cảnh báo Break Even

Alert MessageÝ nghĩa
EXIT_LONG_BE_CNPS50_V2Long đóng qua Stop sau khi Break Even kích hoạt
EXIT_SHORT_BE_CNPS50_V2Short đóng qua Stop sau khi Break Even kích hoạt

Một điểm cần chú ý là việc lựa chọn mã BE dựa trên biến Break Even Activated.

Mã này không trực tiếp xác nhận Tracker Profit Trail có đang hoạt động hay không.

7.8. Cảnh báo Opposite Tracker Flip Exit

Alert MessageÝ nghĩa
TRACKER_FLIP_EXIT_LONG_CNPS50_V2Đóng Long do Bear Flip
TRACKER_FLIP_EXIT_SHORT_CNPS50_V2Đóng Short do Bull Flip

Đây là những cảnh báo thoát lệnh quan trọng của CNPS 50.

Điều kiện thoát không bắt buộc Opposite Flip đạt Strong Score.

7.9. Cảnh báo Force Close

Thông điệp:

SESSION_END_CNPS50_V2

Được sử dụng khi bot yêu cầu đóng toàn bộ vị thế cuối phiên.

Mốc Force Close mặc định:

14:45.

7.10. Disable Exit Alerts

CNPS 50 có tùy chọn:

Disable Exit Alerts?

Mặc định:

False.

Khi bật, các lệnh Stop/Target sử dụng strategy.exit() được cấu hình tắt Alert.

Tuy nhiên, tùy chọn này không tự động tắt:

  • Entry Alerts.
  • Opposite Tracker Flip Close Alerts.
  • Force Close Alerts.

7.11. Lưu ý khi tích hợp Webhook

CNPS 50 có khả năng phân biệt:

  • Strong Flip Long.
  • Strong Flip Short.
  • Re-Entry Long.
  • Re-Entry Short.
  • Initial Protective Stop.
  • Active Stop.
  • Take Profit.
  • Break Even Exit.
  • Opposite Tracker Flip Exit.
  • Session End.

Tuy nhiên, các thông điệp mặc định chưa chứa đầy đủ:

  • Trend Score.
  • ADX.
  • RSI.
  • Equilibrium.
  • Tracker Price.
  • Setup Low/High.
  • Candidate Risk.
  • Giá khớp thực tế.
  • Trạng thái Gap Risk Repair.
  • Active Stop.
  • Active Target.
  • Maximum Close Profit R.
  • Break Even State.
  • Tracker Trail State.
  • Khối lượng khớp.
  • Timeframe và thời điểm giao dịch.

Nếu muốn tích hợp với hệ thống giao dịch tự động, nên bổ sung dữ liệu qua TradingView Placeholders hoặc điều chỉnh mã nguồn.

Đặc biệt, không nên giả định Stop Loss đã được thực thi tại công ty chứng khoán chỉ vì TradingView đã phát cảnh báo Protective Stop.

Hệ thống giao dịch thực tế cần có cơ chế xác nhận trạng thái lệnh và vị thế riêng.

Kết luận

CNPS 50 TREND ANALYSIS V2 QUALITY RE-ENTRY là chiến lược giao dịch chứng khoán phái sinh kết hợp ATR Trend Tracker, Regression + Hull Equilibrium và hệ thống Trend Score sáu thành phần để tìm kiếm cơ hội theo xu hướng.

Điểm nổi bật của chiến lược là sử dụng hai phương pháp vào lệnh trong cùng một bộ máy.

Strong Flip tìm kiếm những thời điểm Tracker vừa đảo chiều và thị trường có sự đồng thuận mạnh giữa các chỉ báo xu hướng, động lượng và chất lượng nến.

Pullback Re-Entry sử dụng Tracker Flip để tạo Armed Setup, sau đó chờ giá điều chỉnh về vùng Equilibrium và xác nhận phục hồi trong tối đa sáu nến.

Theo cấu hình mặc định, Strong Flip yêu cầu Score tối thiểu 67%, ADX18, Body Ratio25% và khoảng cách từ Equilibrium không vượt 1.5 ATR.

Pullback Re-Entry sử dụng Score50%, ADX15, Body Ratio20%, Equilibrium Touch Tolerance0.35 ATR và RSI Momentum Recovery.

Đặc biệt, vì Trend Score sử dụng cơ chế cộng/trừ, ngưỡng 67% mặc định thực tế yêu cầu sáu trên sáu xác nhận cùng hướng, trong khi ngưỡng 50% yêu cầu ít nhất năm trên sáu xác nhận.

Về quản trị vị thế, CNPS 50 sử dụng Structural Stop từ cực trị Setup và ATR Trend Tracker, kết hợp Buffer0.15 ATR.

Bot chỉ chấp nhận Candidate Risk từ 2 đến 8 điểm, sử dụng Take Profit1.8R và Break Even tại 1R.

Một cải tiến quan trọng của phiên bản V2 là gửi Protective Stop cùng Entry và hỗ trợ Repair Gap Risk sau khi lệnh khớp ở cây nến tiếp theo.

Tuy nhiên, việc Repair Risk có thể làm thay đổi vị trí Structural Stop ban đầu.

Cơ chế này giúp kiểm soát khoảng Risk danh nghĩa trong mô hình giao dịch, nhưng không loại bỏ hoàn toàn rủi ro trượt giá hoặc Gap thực tế.

Ngoài ra, CNPS 50 sử dụng Maximum Close Profit R thay vì High/Low để kích hoạt Break Even và Profit Trail, đồng thời hỗ trợ đóng vị thế khi Tracker đảo chiều theo hướng đối lập.

Khi sử dụng chiến lược, điều quan trọng là hiểu rõ cách ATR Trend Tracker hoạt động, ý nghĩa của Signed Trend Score, sự khác biệt giữa Strong Flip và Pullback Re-Entry, cơ chế Gap Risk Repair và phương pháp quản trị Stop Loss theo Close-Based Profit R.

Người dùng nên kiểm thử độc lập từng Entry Mode, thay đổi ngưỡng Score, ADX, Setup Lifetime và các phương pháp quản trị vị thế để đánh giá hiệu quả trên nhiều trạng thái thị trường.

Theo dõi Phái Sinh Online để cập nhật thêm hướng dẫn sử dụng bot giao dịch phái sinh, kiến thức Trend Analysis, ATR Trend Tracker, Pullback Re-Entry và các phương pháp quản trị rủi ro trên TradingView.

Lưu ý: Nội dung mang tính chất hướng dẫn và tham khảo kiến thức. Kết quả giao dịch mô phỏng không bảo đảm lợi nhuận trong tương lai.

Thông tin trong bài chỉ mang tính tham khảo, không phải khuyến nghị mua bán. Giao dịch phái sinh có rủi ro cao do sử dụng đòn bẩy; nhà đầu tư tự chịu trách nhiệm với quyết định của mình.

Đinh Mạnh Đạt

Nhà nghiên cứu định lượng, chuyên sâu về dữ liệu Open Interest và quản trị vị thế.

Bản tin phái sinh mỗi phiên
Nhận bản tin mỗi phiên + Dự báo Nhịp đập phái sinh