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

Hướng Dẫn Sử Dụng Bot CNPS46-ADAPTIVE cho VN30F1M

Hướng dẫn Bot CNPS 46 Adaptive Trend Matrix: 10 chỉ báo xác nhận xu hướng, điểm số 6/10, ATR Trail, SL5/TP15 và cơ chế đảo chiều trên TradingView.

CNPS 46 Adaptive Trend Matrix
CNPS 46 Adaptive Trend Matrix
Mục lục
Mục lục

Trong giao dịch chứng khoán phái sinh, xác định thời điểm thị trường chuyển từ xu hướng tăng sang giảm hoặc ngược lại là một trong những vấn đề được nhiều nhà đầu tư quan tâm.

Một tín hiệu đảo chiều xuất hiện từ chỉ báo kỹ thuật chưa chắc đã phản ánh sự thay đổi thực sự của thị trường. Ví dụ, giá có thể vượt lên trên một đường trung bình động nhưng nhanh chóng quay đầu, hoặc RSI có thể phục hồi trong khi xu hướng giảm vẫn chưa kết thúc.

Để hạn chế việc phụ thuộc vào một tín hiệu đơn lẻ, nhà giao dịch có thể kết hợp nhiều nhóm chỉ báo nhằm đánh giá sự đồng thuận giữa xu hướng, động lượng, độ mạnh và dòng tiền.

Tuy nhiên, nếu yêu cầu tất cả các chỉ báo phải đồng thời xác nhận, chiến lược có thể trở nên quá khắt khe và bỏ lỡ nhiều cơ hội.

Một cách tiếp cận khác là sử dụng hệ thống chấm điểm xác nhận xu hướng, trong đó mỗi chỉ báo đáp ứng điều kiện được tính một điểm. Tín hiệu giao dịch chỉ được chấp nhận khi tổng điểm đạt một ngưỡng tối thiểu.

CNPS 46 ADAPTIVE TREND MATRIX là chiến lược giao dịch được phát triển bằng Pine Script v6 trên TradingView, kết hợp Adaptive Trend Trail với hệ thống 10 chỉ báo kỹ thuật để xác định thời điểm trạng thái xu hướng có thể chuyển đổi.

Theo phần ghi nhận trong mã nguồn, CNPS 46 là tác phẩm phái sinh từ hệ thống Uptrick: Adaptive Trend Matrix của Uptrick, được công bố theo giấy phép CC BY-SA 4.0.

Điểm nổi bật của CNPS 46 nằm ở việc sử dụng hai lớp xác nhận:

Lớp 1 – Adaptive Trend Engine: Xác định trạng thái Breakout qua đường Trend Basis và Trailing Band được xây dựng từ ATR đã làm mượt.

Lớp 2 – Adaptive Trend Matrix: Yêu cầu tối thiểu một số lượng chỉ báo đồng thuận với hướng đảo chiều.

Theo mặc định, bot yêu cầu ít nhất 6 trên 10 chỉ báo xác nhận trước khi chấp nhận tín hiệu Buy hoặc Sell.

Các chỉ báo được sử dụng bao gồm:

  • EMA12/34.
  • RSI14.
  • MACD12/26/9.
  • Stochastic14/3.
  • CCI20.
  • DMI/ADX14.
  • ROC10.
  • MFI14.
  • OBV so với EMA14.
  • VWAP.

Khi trạng thái hiện tại là Bearish, chiến lược tìm kiếm điều kiện giá vượt lên trên Bear Trail và Trend Basis, đồng thời Bull Score đạt ít nhất 6 điểm.

Ngược lại, khi trạng thái hiện tại là Bullish, bot tìm kiếm Close giảm xuống dưới Bull Trail và Trend Basis, cùng với Bear Score đạt ngưỡng.

Không giống những chiến lược chỉ tìm điểm Long hoặc Short khi đang không có vị thế, CNPS 46 mặc định cho phép đảo chiều vị thế khi xuất hiện tín hiệu Matrix đối lập, nếu các điều kiện giao dịch được đáp ứng.

Về quản trị rủi ro, bot sử dụng Stop Loss cố định 5 điểm, Take Profit mặc định 15 điểm, đồng thời hỗ trợ lựa chọn mục tiêu theo ATR, Break Even hoặc biến Adaptive Trail thành Dynamic Stop Loss.

Vậy Adaptive Trend Matrix tính điểm như thế nào, điều kiện nào tạo tín hiệu Long/Short, cơ chế đảo chiều hoạt động ra sao và các thiết lập quản trị rủi ro có những điểm cần chú ý gì?

1. CNPS 46 Adaptive Trend Matrix là gì?

CNPS 46 Adaptive Trend Matrix là chiến lược giao dịch sử dụng sự thay đổi trạng thái xu hướng kết hợp các điều kiện đồng thuận từ nhiều chỉ báo kỹ thuật.

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

1.1. Adaptive Trend Engine

Adaptive Trend Engine sử dụng một đường giá trung tâm gọi là Trend Basis.

Trend Basis được tính bằng cách làm mượt HLC3 qua hai lần EMA:

Trend Basis = EMA(EMA(HLC3, 16), 3).

Trong đó:

HLC3 = (High + Low + Close) / 3.

Song song, chiến lược sử dụng ATR10 được làm mượt qua EMA3:

Smoothed ATR = EMA(ATR10, 3).

Từ hai giá trị này, bot xây dựng các mức Bull Trail và Bear Trail.

Khoảng cách mặc định:

ATR Multiplier = 1,8.

Các mức Trail được cập nhật theo cơ chế Ratchet, tức có khả năng duy trì mức bảo vệ theo hướng nhất định và được đặt lại khi giá vượt điều kiện Reset.

1.2. Trend Matrix – Hệ thống 10 xác nhận

CNPS 46 sử dụng 10 nhóm chỉ báo để đánh giá hướng thị trường.

Mỗi chỉ báo đáp ứng điều kiện Bullish được cộng 1 điểm vào Bull Score.

Mỗi chỉ báo đáp ứng điều kiện Bearish được cộng 1 điểm vào Bear Score.

Giá trị lớn nhất của mỗi Score là 10.

Theo mặc định:

Required Confirmations = 6.

Như vậy, bot không bắt buộc tất cả 10 chỉ báo phải cùng hướng.

Một tín hiệu có thể được chấp nhận khi 6 chỉ báo đồng thuận, miễn các điều kiện đảo trạng thái Adaptive Trail cũng hợp lệ.

1.3. Source Trend Reversal

CNPS 46 có biến lưu trạng thái xu hướng:

Source Trend = Bullish hoặc Bearish.

Khi trạng thái trước đó là Bearish, bot kiểm tra điều kiện chuyển sang Bullish.

Khi trạng thái trước đó là Bullish, bot kiểm tra điều kiện chuyển sang Bearish.

Trạng thái này chỉ được cập nhật khi xuất hiện Source Signal hợp lệ.

Điều đó có nghĩa giá tạm thời vượt Trend Basis chưa đủ để lập tức thay đổi Source Trend.

Bot còn yêu cầu giá vượt Trail tương ứng và Matrix Score đạt ngưỡng.

1.4. Position Management

Sau khi tín hiệu được xác nhận, chiến lược kiểm tra:

  • Hướng giao dịch được phép.
  • Thời gian Entry.
  • Cooldown.
  • Giới hạn giao dịch/ngày.
  • Trạng thái vị thế.
  • Cơ chế Reverse đang bật hay tắt.

Nếu đáp ứng điều kiện, bot gửi lệnh Long hoặc Short.

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

  • Position Size: 3 hợp đồng.
  • Stop Loss: 5 điểm.
  • Take Profit: 15 điểm.
  • Reverse On Opposite Signal: Bật.
  • Matrix Dynamic Stop: Tắt.
  • Break Even: Tắt.

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

NhómThông sốMặc định
Trend EngineTrend Length16
Trend EngineTrend/ATR Smoothing3
Trend EngineATR Length10
Trend EngineTrail ATR Multiplier1,8
MatrixRequired Confirmations6/10
MatrixMinimum ADX15
TradingTrade DirectionBoth
TradingPosition Size3 hợp đồng
TradingReverse On Opposite SignalBật
TradingExit On Opposite SignalBật
TradingMaximum Trades Per Day0 – Không giới hạn
TradingCooldown After Exit0
RiskFixed Stop Loss5 điểm
RiskTake Profit ModeFixed Points
RiskFixed Take Profit15 điểm
RiskSource TP11 ATR
RiskSource TP22 ATR
RiskSource TP33,25 ATR
RiskUse Matrix Trail As Dynamic StopTắt
Break EvenUse Break EvenTắt
Break EvenTrigger7,5 điểm
Break EvenOffset0,5 điểm
SessionEntry Start09:00
SessionLast Entry14:30
SessionForce Close14:45

Source Code CNPS 46: CNPS46

2. Những chỉ báo và khái niệm kỹ thuật trong CNPS 46

2.1. Trend Basis – Đường xu hướng trung tâm

CNPS 46 sử dụng một đường EMA kép thay vì EMA đơn.

Đầu tiên:

Basis Raw = EMA(HLC3, 16).

Sau đó:

Trend Basis = EMA(Basis Raw, 3).

Ví dụ, nếu HLC3 liên tục tăng, EMA16 của HLC3 sẽ phản ứng với sự tăng giá đó.

Giá trị tiếp tục được làm mượt bởi EMA3 nhằm giảm một phần biến động ngắn hạn của đường trung tâm.

Trend Basis được sử dụng để xác nhận Breakout:

Buy yêu cầu Close > Trend Basis.

Sell yêu cầu Close < Trend Basis.

Tuy nhiên, đây chưa phải toàn bộ điều kiện Entry.

2.2. Smoothed ATR

Average True Range đo lường mức độ biến động giá dựa trên True Range.

CNPS 46 sử dụng:

ATR Length = 10.

Sau đó làm mượt ATR bằng EMA3.

Công thức:

Smoothed ATR = EMA(ATR10, 3).

Giá trị này tham gia vào:

  • Bull Trail Candidate.
  • Bear Trail Candidate.
  • Các khoảng Take Profit tham chiếu theo ATR.

Điểm quan trọng là ATR của CNPS 46 không sử dụng trực tiếp ATR14 như nhiều chiến lược phái sinh khác.

Bộ máy chính sử dụng ATR10 được làm mượt.

2.3. Bull Trail và Bear Trail Candidate

Từ Trend Basis và Smoothed ATR, chiến lược tính:

Bull Candidate = Basis − Smoothed ATR × 1,8.

Bear Candidate = Basis + Smoothed ATR × 1,8.

Ví dụ:

  • Basis = 1,900.
  • Smoothed ATR = 4.
  • Multiplier = 1,8.

Khoảng Trail:

4 × 1,8 = 7,2 điểm.

Khi đó:

Bull Candidate = 1,892.8.

Bear Candidate = 1,907.2.

Hai mức này tạo vùng tham chiếu để đánh giá khả năng giá phá khỏi trạng thái xu hướng hiện tại.

2.4. Ratcheting Trail

CNPS 46 không sử dụng trực tiếp Candidate làm Trail trên mọi cây nến.

Với Bull Trail:

Bull Trail = Max(Bull Candidate hiện tại, Bull Trail trước).

Với Bear Trail:

Bear Trail = Min(Bear Candidate hiện tại, Bear Trail trước).

Điều này có nghĩa trong một giai đoạn chưa Reset:

  • Bull Trail không giảm xuống.
  • Bear Trail không tăng lên.

Tuy nhiên, cơ chế này có ngoại lệ.

Nếu Close giảm xuống dưới Bull Trail trước đó, Bull Trail được đặt lại bằng Bull Candidate hiện tại.

Nếu Close tăng lên trên Bear Trail trước đó, Bear Trail được đặt lại bằng Bear Candidate hiện tại.

Như vậy, Ratcheting Trail không phải hai đường chỉ tăng hoặc chỉ giảm vĩnh viễn.

Chúng có cơ chế Reset khi giá phá mức Trail trước đó.

2.5. Adaptive Trail và Stop Loss là hai khái niệm khác nhau

Adaptive Trail được xây dựng ngay trong Trend Engine và luôn tham gia xác định tín hiệu nguồn.

Tuy nhiên, CNPS 46 có một tùy chọn riêng:

Use Matrix Trail As Dynamic Stop?

Theo mặc định:

False – Tắt.

Do đó, dù Adaptive Trail liên tục thay đổi trên biểu đồ, Stop Loss thực tế của vị thế vẫn có thể là Stop Loss cố định 5 điểm.

Chỉ khi bật tùy chọn Dynamic Stop, các mức Matrix Trail mới tham gia trực tiếp vào việc điều chỉnh Stop Loss của vị thế.

2.6. EMA12/34 Confirmation

Đây là xác nhận thứ nhất của Trend Matrix.

Bot tính:

Fast EMA = EMA12(Close).

Slow EMA = EMA34(Close).

Điều kiện Bullish:

EMA12 > EMA34.

Điều kiện Bearish:

EMA12 < EMA34.

Nếu hai EMA bằng nhau, xác nhận này không cộng điểm cho bên nào.

Đây là bộ lọc đánh giá tương quan của hai đường trung bình động.

2.7. RSI14 Confirmation

CNPS 46 sử dụng RSI14.

Ngưỡng:

Bullish: RSI14 > 52.

Bearish: RSI14 < 48.

Ví dụ:

  • RSI = 58: Bullish +1.
  • RSI = 42: Bearish +1.
  • RSI = 50: Không cộng điểm cho bên nào.

Như vậy, khoảng RSI từ 48 đến 52 là vùng trung tính theo hệ thống chấm điểm.

Điều kiện không yêu cầu RSI phải xuất hiện Crossover mới tại thời điểm tín hiệu.

2.8. MACD Confirmation

Bot sử dụng MACD tiêu chuẩn:

Fast Length = 12.

Slow Length = 26.

Signal Length = 9.

Điều kiện Bullish:

MACD Line > Signal Line.

MACD Histogram > 0.

Điều kiện Bearish:

MACD Line < Signal Line.

MACD Histogram < 0.

Đây là xác nhận dựa trên vị trí hiện tại của MACD so với Signal.

Bot không bắt buộc MACD vừa giao cắt trên cây nến tín hiệu.

2.9. Stochastic Confirmation

CNPS 46 tính:

Stochastic K = Stochastic14.

Stochastic D = SMA(K, 3).

Bullish yêu cầu:

K > D và K > 45.

Bearish yêu cầu:

K < D và K < 55.

Ví dụ:

  • K = 62, D = 55: Bullish.
  • K = 38, D = 45: Bearish.
  • K = 50, D = 50: Trung tính.

Điểm đáng chú ý là hệ thống không sử dụng điều kiện quá mua trên 80 hoặc quá bán dưới 20 làm điều kiện bắt buộc.

Thay vào đó, Stochastic đánh giá hướng tương đối của K và D kết hợp ngưỡng 45/55.

2.10. CCI20 Confirmation

Commodity Channel Index (CCI) được sử dụng để đo độ lệch tương đối của giá so với mức trung bình thống kê.

CNPS 46 tính:

CCI Length = 20.

Điều kiện:

Bullish: CCI > 0.

Bearish: CCI < 0.

Nếu CCI bằng 0, chỉ báo không cộng điểm cho bên nào.

CCI trong CNPS 46 không bắt buộc vượt +100 hoặc giảm dưới −100.

Ngưỡng chấm điểm chỉ sử dụng đường 0.

2.11. DMI/ADX Confirmation

Đây là xác nhận thứ sáu.

Bot sử dụng:

ta.dmi(14, 14)

Trong đó:

  • +DI đo thành phần chuyển động tăng.
  • −DI đo thành phần chuyển động giảm.
  • ADX đo sức mạnh tương đối của xu hướng.

Theo mặc định:

Minimum ADX = 15.

Bullish yêu cầu:

+DI > −DI và ADX ≥ 15.

Bearish yêu cầu:

−DI > +DI và ADX ≥ 15.

Khác với những chỉ báo chỉ đánh giá hướng, DMI/ADX yêu cầu cả Directional Movement và ngưỡng ADX.

Tuy nhiên, ADX15 chỉ quyết định điểm xác nhận DMI/ADX, không phải bộ lọc bắt buộc đối với toàn bộ Trend Matrix.

Một tín hiệu vẫn có thể đạt 6/10 dù ADX thấp hơn 15, nếu đủ các xác nhận khác.

2.12. ROC10 Confirmation

Rate of Change (ROC) đo tỷ lệ thay đổi giá giữa hiện tại và một khoảng thời gian trước.

CNPS 46 sử dụng:

ROC Length = 10.

Bullish:

ROC10 > 0.

Bearish:

ROC10 < 0.

Ví dụ, nếu Close hiện tại cao hơn Close của 10 nến trước, ROC có thể dương.

Khi đó, chỉ báo cộng một điểm cho Bull Score.

Ngược lại, ROC âm cộng một điểm cho Bear Score.

2.13. MFI14 Confirmation

Money Flow Index (MFI) là chỉ báo kết hợp giá và khối lượng để đánh giá động lượng dòng tiền theo công thức kỹ thuật.

CNPS 46 tính:

MFI Length = 14.

Điều kiện:

Bullish: MFI > 52.

Bearish: MFI < 48.

Giống RSI, MFI có vùng trung tính từ 48 đến 52.

Một giá trị MFI trong vùng này không tạo xác nhận cho bên nào.

Điểm quan trọng là MFI không trực tiếp chứng minh dòng tiền của một nhóm nhà đầu tư cụ thể đang mua hoặc bán.

2.14. OBV Confirmation

On-Balance Volume (OBV) là chỉ báo tích lũy khối lượng dựa trên hướng thay đổi giá đóng cửa.

Trong CNPS 46:

  • Nếu Close tăng so với nến trước, OBV cộng Volume.
  • Nếu Close giảm, OBV trừ Volume.
  • Nếu Close không đổi, OBV giữ nguyên.

Sau đó, bot tính EMA14 của OBV.

Điều kiện:

Bullish: OBV > EMA14(OBV).

Bearish: OBV < EMA14(OBV).

Như vậy, CNPS 46 không chỉ sử dụng mức OBV tăng hoặc giảm trên một nến.

Bot so sánh OBV với đường làm mượt để xác định hướng tương đối.

2.15. VWAP Confirmation

Volume Weighted Average Price (VWAP) là mức giá trung bình có trọng số khối lượng trong khoảng dữ liệu neo mà chỉ báo sử dụng.

CNPS 46 tính:

ta.vwap(hlc3)

Điều kiện:

Bullish: Close > VWAP.

Bearish: Close < VWAP.

Ví dụ:

  • VWAP = 1,900.
  • Close = 1,905.

Xác nhận VWAP Bullish hợp lệ.

Ngược lại, nếu Close = 1,895, VWAP Bearish hợp lệ.

Mã nguồn không xây dựng một hệ thống Anchored VWAP tùy chỉnh hoặc cung cấp Input chọn điểm neo riêng cho thành phần này.

2.16. Tổng hợp 10 điều kiện Matrix

Chỉ báoBullish +1Bearish +1
EMA12/34EMA12 > EMA34EMA12 < EMA34
RSI14RSI > 52RSI < 48
MACDMACD > Signal; Histogram > 0MACD < Signal; Histogram < 0
Stochastic14/3K > D và K > 45K < D và K < 55
CCI20CCI > 0CCI < 0
DMI/ADX14+DI > −DI; ADX ≥ 15−DI > +DI; ADX ≥ 15
ROC10ROC > 0ROC < 0
MFI14MFI > 52MFI < 48
OBV/EMA14OBV > EMA14OBV < EMA14
VWAPClose > VWAPClose < VWAP

Tất cả các xác nhận được chấm với trọng số bằng nhau.

Không có chỉ báo nào tự động được tính hai hoặc ba điểm chỉ vì tín hiệu của nó mạnh hơn.

2.17. Bull Score và Bear Score

Công thức:

Bull Score = Tổng số điều kiện Bullish hợp lệ.

Bear Score = Tổng số điều kiện Bearish hợp lệ.

Ví dụ:

Chỉ báoTrạng thái
EMABull
RSIBull
MACDBull
StochasticBull
CCIBull
DMI/ADXTrung tính
ROCBull
MFIBull
OBVBear
VWAPBear

Kết quả:

Bull Score = 7/10.

Bear Score = 2/10.

Một chỉ báo trung tính không cộng điểm cho bên nào.

Do đó, tổng Bull Score và Bear Score không bắt buộc luôn bằng 10.

2.18. Required Confirmations

CNPS 46 cho phép chọn:

Required Confirmations từ 4 đến 10.

Mặc định:

6.

Ý nghĩa:

RequiredĐiều kiện
4Ít nhất 4/10 xác nhận
5Ít nhất 5/10
6Ít nhất 6/10
7Ít nhất 7/10
8Ít nhất 8/10
9Ít nhất 9/10
10Cả 10 xác nhận

Giảm Required Confirmations có thể khiến điều kiện Matrix dễ đạt hơn.

Ngược lại, tăng Required Confirmations khiến bot yêu cầu nhiều chỉ báo đồng thuận hơn.

Tuy nhiên, điều kiện nghiêm ngặt hơn không đồng nghĩa xác suất thắng chắc chắn cao hơn.

3. Nguyên lý hoạt động của CNPS 46 Adaptive Trend Matrix

Quy trình chính:

Trend Basis + Smoothed ATR → Ratcheting Trails → Matrix Scores → Trend Reversal Signal → Entry/Reverse → SL/TP hoặc Dynamic Stop.

Bước 1: Tính Trend Basis

Bot tính EMA16 của HLC3, sau đó tiếp tục làm mượt bằng EMA3.

Đường Basis được cập nhật theo từng nến của biểu đồ.

Bước 2: Tính Smoothed ATR

Chiến lược tính ATR10 rồi làm mượt bằng EMA3.

Giá trị ATR này được sử dụng để xác định khoảng cách Trail.

Bước 3: Tính Trail Candidates

Với mỗi nến:

Bull Candidate = Basis − 1,8 ATR.

Bear Candidate = Basis + 1,8 ATR.

Hai giá trị này là cơ sở xây dựng Ratcheting Trails.

Bước 4: Cập nhật Ratcheting Trails

Bot so sánh Candidate với Trail trước đó.

Bull Trail sử dụng mức lớn hơn.

Bear Trail sử dụng mức nhỏ hơn.

Nếu Close phá mức Trail trước theo điều kiện Reset, giá trị Trail được đặt lại bằng Candidate hiện tại.

Bước 5: Tính 10 chỉ báo

Chiến lược tính EMA12/34, RSI14, MACD, Stochastic, CCI, DMI/ADX, ROC, MFI, OBV và VWAP.

Các chỉ báo cùng sử dụng dữ liệu trên biểu đồ hiện tại, không có một bộ máy xác nhận đa khung thời gian bắt buộc.

Bước 6: Chấm Bull Score

Bot kiểm tra từng điều kiện Bullish.

Mỗi điều kiện đúng được cộng 1 điểm.

Giá trị Bull Score dao động từ 0 đến 10.

Bước 7: Chấm Bear Score

Tương tự, bot kiểm tra từng điều kiện Bearish.

Bear Score được tính độc lập với Bull Score.

Bước 8: Xác định Source Trend ban đầu

Khi Source Trend chưa được khởi tạo, bot sử dụng vị trí Close so với Trend Basis.

Nếu:

Close ≥ Basis → Source Trend = Bullish.

Nếu:

Close < Basis → Source Trend = Bearish.

Đây là bước khởi tạo ban đầu.

Sau đó, Source Trend được cập nhật bởi các Source Buy/Sell Signals.

Bước 9: Kiểm tra Bull Break

Bull Break yêu cầu:

Close > Bear Trail.

Close > Trend Basis.

Đây là điều kiện giá vượt vùng tham chiếu phía trên trong trạng thái xem xét đảo chiều tăng.

Bước 10: Kiểm tra Bear Break

Bear Break yêu cầu:

Close < Bull Trail.

Close < Trend Basis.

Đây là điều kiện giá giảm xuống dưới vùng tham chiếu phía dưới.

Bước 11: Tạo Raw Buy

Raw Buy hợp lệ khi:

  • Nến đã đóng cửa.
  • Source Trend hiện tại = Bearish.
  • Bull Break hợp lệ.
  • Bull Score ≥ Required Confirmations.

Theo mặc định, Bull Score phải ít nhất bằng 6.

Bước 12: Tạo Raw Sell

Raw Sell yêu cầu:

  • Nến đã xác nhận.
  • Source Trend hiện tại = Bullish.
  • Bear Break hợp lệ.
  • Bear Score ≥ Required Confirmations.

Bước 13: Kiểm tra Signal Direction

Bot lưu hướng của Source Signal trước đó.

Nếu Buy đã được xác nhận và chưa có Sell hợp lệ sau đó, chiến lược không tạo thêm Source Buy cùng hướng.

Tương tự với Sell.

Điều này giúp tránh lặp lại cùng một loại tín hiệu trong cùng trạng thái xu hướng.

Bước 14: Cập nhật Source Trend

Khi Source Buy hợp lệ:

Source Trend = Bullish.

Last Signal Direction = Buy.

Khi Source Sell hợp lệ:

Source Trend = Bearish.

Last Signal Direction = Sell.

Bước cập nhật này xảy ra trước khi chiến lược kiểm tra khả năng mở lệnh thực tế.

Vì vậy, một Source Signal ngoài Entry Session vẫn có thể làm thay đổi trạng thái xu hướng.

Bước 15: Kiểm tra Session

Theo mặc định, bot cho phép Entry từ 09:00 đến trước 14:30 theo giờ Việt Nam.

Thời điểm đóng nến còn phải trước Force Close 14:45.

Chiến lược sử dụng một cửa sổ Entry liên tục, không có bộ lọc nghỉ trưa riêng.

Bước 16: Kiểm tra Trade Control

Bot kiểm tra:

  • Trade Direction.
  • Maximum Trades Per Day.
  • Cooldown After Exit.
  • Trạng thái Flat hoặc khả năng Reverse.

Theo mặc định, Maximum Trades Per Day bằng 0 nên không giới hạn số lần gửi Entry trong ngày.

Bước 17: Kiểm tra Reverse On Opposite Signal

Khi Reverse bật, một Source Signal mới theo hướng ngược với vị thế hiện tại có thể tạo lệnh đảo chiều.

Ví dụ:

  • Đang Long.
  • Source Sell xuất hiện.
  • Short được cho phép.
  • Session hợp lệ.
  • Trade Limit và Cooldown hợp lệ.

Bot có thể gửi Short Entry để đảo vị thế.

Bước 18: Gửi Entry

Khi Final Long hợp lệ:

strategy.entry("Long", strategy.long)

Khi Final Short hợp lệ:

strategy.entry("Short", strategy.short)

Khối lượng được sử dụng theo Position Size đã chọn.

Mặc định là 3 hợp đồng.

Bước 19: Khởi tạo Risk

Khi chiến lược nhận diện vị thế mới, bot lấy giá khớp trung bình.

Sau đó:

  • Lưu Smoothed ATR tại thời điểm khởi tạo.
  • Tính Fixed Stop Loss.
  • Tính Target theo TP Mode.
  • Đặt lại Break Even Activated.

Bước 20: Quản trị Stop Loss

Trong quá trình giữ vị thế, bot tiếp tục sử dụng Stop Loss cố định.

Nếu bật Matrix Trail As Dynamic Stop, Stop còn được điều chỉnh theo Ratcheting Trail.

Nếu bật Break Even, Stop có thể được dời về Entry cộng hoặc trừ Offset.

Bước 21: Quản trị Take Profit

CNPS 46 cho phép lựa chọn:

  • Fixed Points.
  • Source TP1.
  • Source TP2.
  • Source TP3.
  • Off.

Mỗi giao dịch chỉ sử dụng một mục tiêu Take Profit được lựa chọn.

Bước 22: Xử lý tín hiệu đối lập

Nếu đang Long và xuất hiện Source Sell, bot xử lý theo cấu hình Reverse và Exit On Opposite Signal.

Tương tự với Short.

Đây là một thành phần quan trọng vì hành vi thực tế khác nhau đáng kể giữa việc chỉ đóng vị thế và việc đảo chiều ngay.

Bước 23: Force Close

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

Thông điệp:

SESSION_END_CNPS46

Bước 24: Dọn trạng thái giao dịch

Khi vị thế được xác định đã đóng, bot đặt lại:

  • Active Entry Price.
  • Active Entry ATR.
  • Active Stop.
  • Active Target.
  • Break Even Activated.

Các trạng thái của Source Trend và Trend Matrix không bị đặt lại bởi bước này.

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

4.1. Long – Adaptive Trend Reversal

CNPS 46 tìm kiếm Long khi trạng thái nguồn trước đó là Bearish.

Điều kiện tạo Source Buy:

  1. Source Trend = Bearish.
  2. Close > Bear Trail.
  3. Close > Trend Basis.
  4. Bull Score ≥ 6 theo mặc định.
  5. Nến đã xác nhận đóng cửa.
  6. Last Source Signal Direction không phải Buy.

Để trở thành Final Long, bot tiếp tục yêu cầu:

  1. Trade Direction cho phép Long.
  2. Entry Session hợp lệ.
  3. Cooldown hợp lệ.
  4. Chưa đạt giới hạn giao dịch nếu được thiết lập.
  5. Đang Flat hoặc đang Short và Reverse được bật.

Khi toàn bộ điều kiện đạt, chiến lược có thể gửi Long Entry.

4.2. Ví dụ Long minh họa

Giả sử VN30F1M đang trong Source Trend Bearish.

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

  • Trend Basis = 1,900.
  • Smoothed ATR = 2.
  • Bear Trail hiện tại = 1,903.6.
  • Close = 1,907.
  • Source Trend trước = Bearish.

Bull Break:

Close 1,907 > Bear Trail 1,903.6.

Close 1,907 > Basis 1,900.

Hai điều kiện giá hợp lệ.

Giả sử Matrix cho kết quả:

Chỉ báoXác nhận
EMA12/34Bull
RSI14Bull
MACDBull
StochasticBull
CCIBull
DMI/ADXTrung tính
ROCBull
MFIBull
OBVBear
VWAPBear

Kết quả:

Bull Score = 7/10.

Required Confirmations:

6/10.

Vì 7 ≥ 6, Matrix đạt ngưỡng.

Nếu nến đã đóng cửa và Source Trend trước đó là Bearish:

Source Buy Signal hợp lệ.

Giả sử đang Flat, thời gian hợp lệ và không có giới hạn giao dịch:

Final Long Signal = True.

Bot gửi lệnh Long.

Nếu lệnh khớp ở 1,907 và sử dụng cấu hình mặc định:

Stop Loss = 1,902.

Take Profit = 1,922.

Khoảng Risk danh nghĩa:

5 điểm.

Khoảng Reward danh nghĩa:

15 điểm.

Reward/Risk:

3R.

Ví dụ này minh họa logic tính toán, không phải tín hiệu thị trường thực tế.

4.3. Short – Adaptive Trend Reversal

Với Short, CNPS 46 yêu cầu Source Trend trước đó là Bullish.

Điều kiện:

  1. Source Trend = Bullish.
  2. Close < Bull Trail.
  3. Close < Trend Basis.
  4. Bear Score ≥ Required Confirmations.
  5. Nến đã đóng cửa.
  6. Last Source Signal Direction không phải Sell.
  7. Trade Direction cho phép Short.
  8. Session hợp lệ.
  9. Trade Limit và Cooldown hợp lệ.
  10. Đang Flat hoặc đang Long và Reverse bật.

Nếu hợp lệ, bot gửi Short Entry.

4.4. Ví dụ Short minh họa

Giả sử:

  • Source Trend = Bullish.
  • Trend Basis = 1,900.
  • Smoothed ATR = 2.
  • Bull Trail = 1,896.4.
  • Close = 1,894.
  • Bear Score = 8/10.

Kiểm tra:

Close 1,894 < Bull Trail 1,896.4.

Close 1,894 < Trend Basis 1,900.

Bear Score 8 ≥ Required 6.

Nếu nến đã xác nhận và các điều kiện giao dịch khác hợp lệ, chiến lược có thể mở Short.

Giả sử lệnh khớp tại 1,894:

Stop Loss = 1,899.

Take Profit = 1,879.

Tỷ lệ Reward/Risk danh nghĩa:

15/5 = 3R.

4.5. Tín hiệu không bắt buộc xảy ra đúng nến đầu tiên giá vượt Trail

Một điểm quan trọng là điều kiện Bull Break sử dụng:

Close > Bear Trail và Close > Basis.

Bot không bắt buộc ta.crossover() giữa Close và Bear Trail.

Ví dụ, giá đã vượt Bear Trail nhưng Bull Score mới đạt 5/10.

Khi đó, Raw Buy chưa hợp lệ.

Nếu ở cây nến sau, giá vẫn nằm trên Bear Trail và Basis nhưng Bull Score tăng lên 6/10, Source Buy có thể xuất hiện tại cây nến sau.

Do đó, Matrix có thể làm tín hiệu đảo trạng thái được xác nhận muộn hơn so với lần đầu giá vượt vùng Trail.

4.6. Bull Score 6/10 không có nghĩa 60% xác suất thắng

Đây là điểm cần hiểu đúng khi sử dụng hệ thống chấm điểm.

Một Bull Score bằng 6 chỉ có nghĩa 6 trong 10 điều kiện Bullish được lập trình đã đáp ứng.

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

  • Xác suất thắng là 60%.
  • Giá sẽ tăng thêm 6 điểm.
  • Thị trường đang có 60% lực mua.
  • Sáu chỉ báo hoàn toàn độc lập với nhau.

Các chỉ báo sử dụng chung dữ liệu giá hoặc Volume nên có thể có sự tương quan lớn.

Ví dụ, EMA, MACD, ROC và RSI đều có thể phản ứng cùng hướng sau một đợt giá tăng.

Vì vậy, Matrix Score nên được xem là thước đo đồng thuận kỹ thuật theo quy tắc đã định nghĩa.

4.7. Source Trend không đồng nghĩa trạng thái vị thế

CNPS 46 có hai trạng thái cần phân biệt.

Source Trend: Bullish hoặc Bearish theo tín hiệu Matrix đã được xác nhận.

Position: Flat, Long hoặc Short theo lệnh giao dịch.

Ví dụ, thị trường xuất hiện Source Buy lúc 08:55, ngoài thời gian Entry mặc định.

Bot có thể cập nhật:

Source Trend = Bullish.

Tuy nhiên, không gửi Long vì chưa tới 09:00.

Đến 09:00, nếu không có Source Buy mới, chiến lược không tự động mở Long chỉ vì trạng thái Bullish vẫn còn.

Đây là đặc điểm quan trọng đối với những tín hiệu xuất hiện ngoài cửa sổ giao dịch.

4.8. Source Signals được chấp nhận trước Trade Filters

CNPS 46 cập nhật Source Trend và Last Signal Direction trước khi kiểm tra:

  • Entry Session.
  • Trade Direction.
  • Maximum Trades Per Day.
  • Cooldown.
  • Position.

Vì vậy, một Source Signal bị từ chối mở lệnh vẫn có thể thay đổi trạng thái của bộ máy tín hiệu.

Điều này có thể khiến một cơ hội giao dịch bị bỏ qua và không tự động được xét lại trên các nến tiếp theo.

4.9. Không có cơ chế Pullback hoặc Retest bắt buộc

CNPS 46 không sử dụng Armed Setup.

Bot cũng không bắt buộc giá quay lại kiểm tra Trend Basis hoặc Trail sau Breakout.

Khi Source Reversal Signal được xác nhận và Final Entry hợp lệ, chiến lược có thể gửi lệnh ngay.

Do đó, đây không phải bot Trend Pullback hay Breakout Retest theo hai giai đoạn.

4.10. Không có Volume Spike Filter độc lập

Mặc dù Trend Matrix có MFI, OBV và VWAP, chiến lược không yêu cầu Volume hiện tại phải lớn hơn một hệ số của SMA Volume.

Không có điều kiện bắt buộc như:

Volume > SMA20 Volume × 1,5.

Khối lượng có tham gia gián tiếp qua những chỉ báo sử dụng Volume.

Tuy nhiên, đó không phải bộ lọc Relative Volume riêng.

4.11. Source Buy/Sell không đồng nghĩa lệnh đã được mở

Một Source Signal có thể không tạo Entry nếu:

  • Ngoài Session.
  • Trade Direction không cho phép.
  • Đang có vị thế và Reverse tắt.
  • Đã đạt giới hạn giao dịch/ngày.
  • Cooldown chưa hoàn thành.

Khi bật Signal Markers, dấu Buy/Sell biểu diễn Source Signals, không nhất thiết tương ứng với mọi lệnh đã khớp trong Strategy Tester.

5. CNPS 46 quản trị Stop Loss, Take Profit và đảo chiều như thế nào?

5.1. Stop Loss cố định

CNPS 46 sử dụng:

Stop Loss Points = 5.

Với Long:

SL = Entry Price − 5.

Với Short:

SL = Entry Price + 5.

Stop Loss được tính từ giá khớp trung bình của vị thế.

Do đó, Stop Loss không bắt buộc nằm tại Trend Basis hoặc Adaptive Trail.

5.2. Take Profit cố định

Theo mặc định:

Take Profit Mode = Fixed Points.

Fixed Take Profit = 15 điểm.

Với Long:

TP = Entry + 15.

Với Short:

TP = Entry − 15.

Tỷ lệ Reward/Risk danh nghĩa:

15/5 = 3R.

Ví dụ:

  • Long Entry = 1,900.
  • SL = 1,895.
  • TP = 1,915.

Hoặc:

  • Short Entry = 1,900.
  • SL = 1,905.
  • TP = 1,885.

Tuy nhiên, nếu vị thế đóng sớm bởi tín hiệu đảo chiều hoặc Force Close, kết quả thực tế không nhất thiết đạt ±5 hoặc +15 điểm.

5.3. Source TP1, TP2 và TP3

Ngoài Fixed Points, CNPS 46 hỗ trợ những mức mục tiêu theo ATR.

Theo mặc định:

Source TP1 = 1 ATR.

Source TP2 = 2 ATR.

Source TP3 = 3,25 ATR.

Khoảng TP được tính từ Smoothed ATR lưu khi vị thế được khởi tạo.

Công thức Long:

TP1 = Entry + Entry ATR × 1.

TP2 = Entry + Entry ATR × 2.

TP3 = Entry + Entry ATR × 3,25.

Với Short, các khoảng được trừ khỏi Entry.

5.4. Ví dụ Take Profit theo ATR

Giả sử:

  • Long Entry = 1,900.
  • Smoothed ATR lúc khởi tạo = 4 điểm.
  • Stop Loss = 5 điểm.

Các mục tiêu:

TP ModeTargetReward/Risk danh nghĩa
Fixed Points1,9153R
Source TP11,9040,8R
Source TP21,9081,6R
Source TP31,9132,6R

Như vậy, Source TP3 không nhất thiết cao hơn Fixed TP15.

Khoảng mục tiêu phụ thuộc vào Smoothed ATR tại thời điểm khởi tạo vị thế.

Trong những giai đoạn ATR thấp, các mức TP theo ATR có thể gần Entry hơn.

5.5. CNPS 46 không tự động chốt lời từng phần tại TP1/TP2/TP3

Đây là một điểm quan trọng.

Mặc dù có ba mức Source TP, chiến lược chỉ cho phép lựa chọn một Take Profit Mode tại một thời điểm.

Ví dụ, nếu chọn Source TP2:

Bot sử dụng TP2 làm Target cho toàn bộ vị thế.

Nó không tự động:

  • Chốt 1 hợp đồng tại TP1.
  • Chốt 1 hợp đồng tại TP2.
  • Chốt 1 hợp đồng tại TP3.

Vì vậy, CNPS 46 hiện không có hệ thống Partial Take Profit ba cấp.

5.6. Take Profit Mode Off

Nếu chọn:

Take Profit Mode = Off.

Bot không đặt Limit Take Profit.

Vị thế vẫn có Stop Loss và những cơ chế thoát khác đang được bật.

Khi đó, giao dịch có thể đóng bởi:

  • Stop Loss.
  • Source Signal ngược hướng nếu điều kiện xử lý cho phép.
  • Reverse Position.
  • Force Close cuối phiên.

Nếu Matrix Dynamic Stop được bật, Stop Loss còn có thể thay đổi theo Adaptive Trail.

5.7. Source TP Reference Levels

CNPS 46 tính ba mức TP tham chiếu trong quá trình có vị thế.

Các mức này được đưa vào TradingView Data Window.

Tuy nhiên, chúng không đồng nghĩa ba lệnh Take Profit đang được đặt.

Active Target là mức TP được lựa chọn theo Take Profit Mode.

Ví dụ, nếu đang sử dụng Fixed Points TP15, ba Source TP tham chiếu vẫn có thể được tính, nhưng lệnh thoát chính vẫn sử dụng Fixed Target.

5.8. Dynamic Matrix Trail Stop

CNPS 46 có tùy chọn:

Use Matrix Trail As Dynamic Stop?

Mặc định:

Tắt.

Khi bật, bot sử dụng Bull Trail hoặc Bear Trail để điều chỉnh Stop Loss.

Với Long, chiến lược tính:

Matrix Long Stop = Min(Bull Trail, Close − Minimum Tick).

Sau đó:

Active Stop = Max(Active Stop trước, Matrix Long Stop).

Với Short:

Matrix Short Stop = Max(Bear Trail, Close + Minimum Tick).

Sau đó:

Active Stop = Min(Active Stop trước, Matrix Short Stop).

Cơ chế này chỉ cho phép Stop dịch chuyển theo hướng cải thiện mức bảo vệ.

5.9. Ví dụ Matrix Trail Long

Giả sử đang Long:

  • Entry = 1,900.
  • Stop ban đầu = 1,895.
  • Bull Trail hiện tại = 1,903.
  • Close hiện tại = 1,907.

Matrix Long Stop xấp xỉ:

1,903.

Bot cập nhật:

Active Stop = Max(1,895; 1,903) = 1,903.

Khi đó, vị thế có mức Stop danh nghĩa cao hơn Entry 3 điểm.

Nếu Bull Trail sau đó giảm xuống 1,901, Active Stop vẫn có thể giữ tại 1,903 do nguyên tắc không nới rộng Stop.

5.10. Dynamic Matrix Trail không cần đạt 1R

CNPS 46 không yêu cầu một ngưỡng Profit R riêng để kích hoạt Matrix Trail Stop.

Nếu người dùng bật Dynamic Stop, bot có thể điều chỉnh Stop ngay khi có vị thế và mức Matrix Trail phù hợp.

Điều này khác với những chiến lược chỉ cho phép Trailing sau khi đạt 1R hoặc 1,5R.

5.11. Break Even

CNPS 46 hỗ trợ Break Even.

Mặc định:

Use Break Even = False.

Thông số:

Trigger = 7,5 điểm.

Offset = 0,5 điểm.

Với Long:

Break Even Trigger = Entry + 7,5.

Khi High đạt ngưỡng:

New Stop = Max(Current Stop, Entry + 0,5).

Với Short:

Break Even Trigger = Entry − 7,5.

Khi Low đạt ngưỡng:

New Stop = Min(Current Stop, Entry − 0,5).

5.12. Break Even mặc định tương đương 1,5R

Với Stop Loss mặc định 5 điểm:

7,5/5 = 1,5R.

Như vậy, nếu bật Break Even mà giữ nguyên các thông số mặc định, Stop Loss sẽ được xem xét dời sau khi giá đi thuận lợi 1,5 lần khoảng Stop ban đầu.

Điểm cần lưu ý là Break Even chỉ sử dụng High/Low để kiểm tra Trigger, không yêu cầu nến đóng cửa tại mức lợi nhuận đó.

5.13. Matrix Trail và Break Even có thể cùng hoạt động

Nếu người dùng bật cả hai:

Use Matrix Trail As Dynamic Stop = True.

Use Break Even = True.

Hai cơ chế cùng điều chỉnh Active Stop.

Với Long, Stop chỉ được nâng lên.

Với Short, Stop chỉ được hạ xuống.

Nếu Matrix Trail đã đưa Stop vượt Entry trước khi Break Even kích hoạt, việc đạt Break Even Trigger không làm Stop quay về một mức kém bảo vệ hơn.

5.14. Reverse On Opposite Signal

Theo mặc định:

Reverse On Opposite Signal = True.

Khi đang Long và Source Sell Signal xuất hiện, bot có thể gửi Short Entry nếu:

  • Short được cho phép.
  • Entry Session hợp lệ.
  • Cooldown hợp lệ.
  • Trade Limit hợp lệ.

Trong trường hợp đó, TradingView Strategy có thể xử lý Short Entry như một lệnh đảo vị thế từ Long sang Short.

Nguyên tắc tương ứng áp dụng khi đang Short và xuất hiện Source Buy.

5.15. Exit On Opposite Signal

CNPS 46 còn hỗ trợ:

Exit On Opposite Signal = True.

Tuy nhiên, trong mã nguồn, điều kiện Exit Only yêu cầu thêm:

Reverse On Opposite Signal = False.

Vì vậy, hai tùy chọn này có vai trò khác nhau.

Khi Reverse bật, cơ chế đóng riêng theo Opposite Signal không hoạt động.

Khi Reverse tắt nhưng Exit On Opposite bật, bot có thể yêu cầu đóng vị thế theo Source Signal ngược hướng mà không mở vị thế mới ngay.

5.16. Bảng hành vi Opposite Signal

ReverseExit OppositeHành vi
BậtBậtƯu tiên đảo vị thế nếu Final Entry hợp lệ
BậtTắtVẫn có thể đảo vị thế nếu Final Entry hợp lệ
TắtBậtĐóng vị thế theo Source Signal đối lập
TắtTắtKhông đóng/đảo riêng theo Opposite Signal

Điểm quan trọng là khi Reverse bật nhưng Final Entry bị chặn, bot không tự động chuyển sang Exit Only.

5.17. Ví dụ Reverse bị chặn

Giả sử:

  • Bot đang Long.
  • Reverse On Opposite = True.
  • Exit On Opposite = True.
  • Maximum Trades Per Day = 2.
  • Trades Today đã bằng 2.

Sau đó xuất hiện Source Sell Signal.

Vì đã đạt Daily Trade Limit, Final Short Signal không hợp lệ.

Đồng thời, Exit Only không hoạt động vì Reverse đang bật.

Do đó, Source Sell có thể làm Source Trend chuyển sang Bearish nhưng không tạo lệnh đóng Long riêng.

Vị thế tiếp tục được quản trị bằng Stop Loss, Take Profit hoặc Force Close.

Đây là một điểm quan trọng cần kiểm thử nếu muốn sử dụng CNPS 46 theo cơ chế luôn đóng vị thế khi xu hướng đối lập được xác nhận.

5.18. Maximum Trades Per Day

Theo mặc định:

Maximum Trades Per Day = 0.

Giá trị 0 đồng nghĩa không giới hạn số Entry theo ngày.

Nếu đặt bằng 3, bot chỉ được gửi tối đa ba Entry trong ngày theo điều kiện đếm của chiến lược.

Các lệnh Reverse được chấp thuận cũng làm tăng Trades Today.

Tuy nhiên, Source Signals không mở được lệnh không làm tăng bộ đếm này.

5.19. Cooldown After Exit

Mặc định:

Cooldown Bars After Exit = 0.

Điều kiện:

Current Bar − Last Exit Bar > Cooldown Bars.

Nếu vừa ghi nhận Exit tại Bar 100, với Cooldown bằng 0, bot cần tới ít nhất Bar 101 để vượt điều kiện.

Khi tăng Cooldown lên 3:

Current Bar − Last Exit Bar > 3.

Bot cần đến Bar 104 mới vượt bộ lọc.

Đây là bộ lọc áp dụng cho Final Entry, kể cả khi chiến lược đang xem xét Reversal.

5.20. Force Close cuối phiên

CNPS 46 sử dụng:

Force Close = 14:45.

Khi phát hiện cây nến có thời điểm mở trước 14:45 và thời điểm đóng từ 14:45 trở đi, bot yêu cầu đóng toàn bộ vị thế:

strategy.close_all(immediately=true)

Thông điệp:

SESSION_END_CNPS46

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

Cơ chếMặc định
Stop LossCố định 5 điểm
Take ProfitCố định 15 điểm
Source TP1Tùy chọn – 1 ATR
Source TP2Tùy chọn – 2 ATR
Source TP3Tùy chọn – 3,25 ATR
Break EvenTắt
Matrix Dynamic StopTắt
Reverse On OppositeBật
Exit Only On OppositeKhông hoạt động khi Reverse bật
Maximum Trades Per DayKhông giới hạn
Cooldown0
Force Close14:45

6. Hướng dẫn cài đặt và sử dụng CNPS 46 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 chỉ số VN30 từ nguồn dữ liệu phù hợp.

Trong phần chú thích source, CNPS 46 được định hướng sử dụng trên khung M1.

Tuy nhiên, mã nguồn không khóa cứng khung thời gian M1.

Người dùng có thể kiểm thử ở khung khác, nhưng kết quả của EMA, ATR, Matrix Scores và thời điểm Signal sẽ thay đổi theo Timeframe.

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 CNPS46 ADAPTIVE TREND MATRIX.
  5. Lưu mã nguồn.
  6. Chọn Add to chart.
  7. Kiểm tra đường Adaptive Trail.
  8. Mở Strategy Tester.

Tên Strategy:

CNPS46 ADAPTIVE TREND MATRIX

Short Title:

CNPS46 ATM

Phiên bản:

//@version=6

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

Thông sốMặc định
Trend Length16
Trend/ATR Smoothing3
ATR Length10
Trail Distance ATR Multiplier1,8

Nhóm này quyết định Trend Basis và khoảng cách Trail.

Nếu tăng ATR Multiplier, Bull/Bear Trail Candidate nằm xa Basis hơn.

Nếu giảm, Candidate nằm gần Basis hơn.

Tuy nhiên, các Trail còn chịu ảnh hưởng của cơ chế Ratchet và Reset.

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

Thông sốMặc định
Required Confirmations6
Minimum ADX15

Required Confirmations có thể điều chỉnh từ 4 đến 10.

Ví dụ:

4/10: Điều kiện đồng thuận dễ đạt hơn.

6/10: Cấu hình mặc định.

8/10: Yêu cầu nhiều xác nhận hơn.

10/10: Tất cả chỉ báo phải cùng xác nhận theo hướng giao dịch.

Minimum ADX chỉ tác động đến xác nhận DMI/ADX trong Matrix.

Nó không phải bộ lọc độc lập áp dụng cho toàn bộ Entry.

Bước 5: Cấu hình Trade Direction

Thông sốMặc định
Trade DirectionBoth
Position Size3 hợp đồng

Trade Direction hỗ trợ:

Long.

Short.

Both.

Điểm quan trọng là việc chỉ chọn Long không ngăn bộ máy Source Trend tạo Source Sell.

Source Trend vẫn có thể chuyển sang Bearish, dù Final Short không được phép.

Điều này ảnh hưởng đến thời điểm xuất hiện Source Buy tiếp theo.

Bước 6: Cấu hình Opposite Signal

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

Nếu muốn bot có khả năng đảo chiều trực tiếp theo tín hiệu Matrix:

Reverse = Bật.

Nếu muốn chỉ đóng vị thế khi có tín hiệu đối lập mà không mở lệnh ngược ngay:

Reverse = Tắt.

Exit On Opposite = Bật.

Không nên hiểu việc bật đồng thời hai tùy chọn sẽ khiến bot luôn đóng vị thế ngay cả khi không được phép Reverse.

Bước 7: Cấu hình Stop Loss và Take Profit

Thông sốMặc định
Stop Loss Points5
Take Profit ModeFixed Points
Fixed Take Profit15
Source TP1 ATR1
Source TP2 ATR2
Source TP3 ATR3,25

Nếu lựa chọn Source TP1/2/3, Target được tính theo Smoothed ATR tại thời điểm bot khởi tạo vị thế.

Nếu chọn Off, bot không đặt Limit Take Profit.

Bước 8: Cấu hình Matrix Dynamic Stop

Thông sốMặc định
Use Matrix Trail As Dynamic StopTắt

Khi bật, Adaptive Trail tham gia điều chỉnh Stop Loss theo hướng bảo vệ.

Đây là tính năng nên kiểm thử độc lập vì nó có thể khiến vị thế đóng sớm hơn Fixed Stop.

Nên so sánh:

  • Fixed SL5/TP15.
  • Fixed SL5/TP15 kết hợp Matrix Trail.
  • Fixed SL5 với TP Off và Matrix Trail.

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

Thông sốMặc định
Use Break EvenTắt
Break Even Trigger Points7,5
Break Even Offset Points0,5

Khi bật, Stop có thể được dời sau khi giá di chuyển thuận lợi ít nhất 7,5 điểm.

Đây là một điều kiện riêng, không phụ thuộc Required Confirmations khi vị thế đang được quản trị.

Bước 10: Cấu hình Trade Frequency

Thông sốMặc định
Maximum Trades Per Day0 – Không giới hạn
Cooldown After Exit0

Người dùng có thể giới hạn số lệnh mỗi ngày hoặc đặt khoảng nghỉ sau Exit.

Tuy nhiên, cần lưu ý tác động đến cơ chế Reverse.

Nếu một Source Signal đối lập xuất hiện khi đã đạt Daily Limit, lệnh đảo chiều có thể bị từ chối.

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

Thông sốMặc định
TimezoneAsia/Ho_Chi_Minh
Entry Start09:00
Last Entry14:30
Force Close14:45

CNPS 46 sử dụng một cửa sổ Entry liên tục.

Source không có bộ lọc tách riêng giờ nghỉ trưa.

Tín hiệu nguồn vẫn có thể được tính ngoài Session, nhưng Final Entry phải đáp ứng điều kiện thời gian.

Bước 12: Hiển thị trên biểu đồ

Thành phầnMặc định
Trend BasisẨn
Adaptive TrailHiển thị
EMA12/34Ẩn
Signal MarkersẨn
Active SL/TPHiển thị
DiagnosticsẨn

Adaptive Trail hiển thị xanh khi Source Trend Bullish và đỏ khi Source Trend Bearish.

Khi bật Trend Basis, biểu đồ có thêm đường EMA kép màu xám.

Khi bật Matrix EMA, biểu đồ hiển thị EMA12 và EMA34.

Signal Markers được hiển thị dưới dạng tam giác Buy/Sell tại nến Source Signal.

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

CNPS 46 có bảng Diagnostics 2 cột × 18 hàng.

Khi bật, bảng hiển thị:

  • Khung thời gian.
  • Trend.
  • Bull Score.
  • Bear Score.
  • Required Confirmations.
  • Trend Basis.
  • Bull Trail.
  • Bear Trail.
  • RSI.
  • ADX.
  • MFI.
  • Source Buy/Sell Count.
  • Entry Long/Short Count.
  • Trades Today.
  • Take Profit Mode.
  • Entry ATR.
  • Active Stop.
  • Position.

Ví dụ:

Trend: BULL.

Bull Score: 8/10.

Bear Score: 1/10.

Required: 6.

Bảng cho biết nhiều chỉ báo đang xác nhận Bullish.

Tuy nhiên, điều này không đồng nghĩa bot sẽ mở Long mới ngay lập tức.

Nếu Source Trend đã Bullish, chiến lược cần một chu kỳ đảo trạng thái hợp lệ trước khi xuất hiện Source Buy tiếp theo.

Bước 14: 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 nhóm thử nghiệm nên thực hiện:

Thử nghiệm 1: Required Confirmations 6/10 mặc định.

Thử nghiệm 2: So sánh 4/10, 5/10, 7/10 và 8/10.

Thử nghiệm 3: ADX15 so với ADX20 hoặc ADX25.

Thử nghiệm 4: Trail ATR Multiplier 1,8 so với 2,0 hoặc 2,5.

Thử nghiệm 5: Thay đổi Trend Basis Length.

Thử nghiệm 6: Fixed SL5/TP15.

Thử nghiệm 7: Fixed SL5 với Source TP1.

Thử nghiệm 8: Fixed SL5 với Source TP2.

Thử nghiệm 9: Fixed SL5 với Source TP3.

Thử nghiệm 10: Bật Matrix Dynamic Stop.

Thử nghiệm 11: Bật Break Even tại 7,5 điểm.

Thử nghiệm 12: Reverse On Opposite bật so với tắt.

Thử nghiệm 13: Exit On Opposite bật nhưng Reverse tắt.

Thử nghiệm 14: Thêm Maximum Trades Per Day.

Thử nghiệm 15: Thêm Cooldown After Exit.

Thử nghiệm 16: 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: Bật.
  • Calculate On Order Fills: Bật.
  • Fill Orders On Standard OHLC: Bật.
  • Margin Long/Short: 0.

Các thông số này phục vụ mô phỏng.

Chúng không thay thế các yêu cầu ký quỹ, thanh khoản và điều kiện thực thi lệnh 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 46 hỗ trợ cảnh báo qua Order Fill Events trong TradingView.

Để thiết lập:

  1. Mở biểu đồ đã thêm CNPS46 ADAPTIVE TREND MATRIX.
  2. Chọn Create Alert.
  3. Trong Condition, lựa chọn chiến lược CNPS46.
  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 Long Entry

Thông điệp:

ENTRY_LONG_CNPS46

Được gắn vào lệnh Long Entry của chiến lược.

Long Entry có thể được gửi khi bot đang Flat hoặc đang Short và được phép Reverse.

7.2. Cảnh báo Short Entry

Thông điệp:

ENTRY_SHORT_CNPS46

Được gắn vào lệnh Short Entry.

Tương tự, lệnh có thể là mở Short mới hoặc đảo chiều từ Long sang Short khi Reverse được bật.

7.3. Cảnh báo Stop Loss và Take Profit

Thông điệpÝ nghĩa
EXIT_LONG_TP_CNPS46Long đóng theo Take Profit
EXIT_LONG_SL_CNPS46Long đóng theo Stop Loss
EXIT_SHORT_TP_CNPS46Short đóng theo Take Profit
EXIT_SHORT_SL_CNPS46Short đóng theo Stop Loss

Các thông điệp được sử dụng trong lệnh strategy.exit().

Nếu Take Profit Mode là Off, bot không sử dụng Limit Target.

7.4. Cảnh báo Break Even

Thông điệpÝ nghĩa
EXIT_LONG_BE_CNPS46Long đóng qua Stop sau khi Break Even kích hoạt
EXIT_SHORT_BE_CNPS46Short đóng qua Stop sau khi Break Even kích hoạt

Đây là thông điệp khi lệnh Stop khớp sau khi trạng thái Break Even Activated đã được bật.

Bot không gửi một Order Fill Alert riêng chỉ vì Break Even Trigger được chạm.

7.5. Cảnh báo Opposite Exit

Thông điệpÝ nghĩa
OPPOSITE_EXIT_LONG_CNPS46Đóng Long do Source Sell
OPPOSITE_EXIT_SHORT_CNPS46Đóng Short do Source Buy

Hai thông điệp này chỉ thuộc nhánh Exit Only, tức khi:

  • Exit On Opposite = True.
  • Reverse On Opposite = False.

Trong cấu hình Reverse mặc định đang bật, bot không sử dụng nhánh đóng riêng này.

7.6. Cảnh báo Force Close

Thông điệp:

SESSION_END_CNPS46

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

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

14:45.

7.7. Disable Exit Alerts

CNPS 46 có tùy chọn:

Disable Exit Alerts?

Mặc định:

False.

Khi bật, bot vô hiệu hóa cảnh báo của các lệnh Stop Loss/Take Profit được tạo bằng strategy.exit().

Tuy nhiên, tùy chọn này không tự động vô hiệu hóa Entry, Opposite Exit Only hoặc Force Close Alerts.

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

CNPS 46 có thể gửi các mã sự kiện:

  • Long Entry.
  • Short Entry.
  • Long TP.
  • Short TP.
  • Long SL.
  • Short SL.
  • Break Even Exit.
  • Opposite Exit Only.
  • Session End.

Tuy nhiên, thông điệp Entry mặc định không cho biết trực tiếp lệnh đó là Entry mới hay Reversal.

Ngoài ra, các thông điệp chưa chứa đầy đủ:

  • Bull Score.
  • Bear Score.
  • Required Confirmations.
  • Trend Basis.
  • Bull/Bear Trail.
  • Giá Entry thực tế.
  • Giá Stop Loss.
  • Take Profit Mode.
  • Giá Target.
  • ATR tại Entry.
  • Khối lượng khớp.
  • Trạng thái vị thế trước lệnh.
  • Thời điểm và khung thời gian giao dịch.

Nếu tích hợp với hệ thống thực thi lệnh tự động, cần bổ sung thông tin cần thiết thông qua TradingView Placeholder hoặc điều chỉnh mã nguồn.

Đặc biệt, với Reverse On Opposite đang bật, lệnh Entry theo hướng ngược có thể đồng thời xử lý việc đóng vị thế cũ và mở vị thế mới trong mô phỏng.

Hệ thống Webhook cần kiểm tra trạng thái vị thế thực tế để tránh gửi lệnh sai khối lượng.

Order Fill Alert của TradingView không đồng nghĩa lệnh đã được khớp tại công ty chứng khoán.

Kết luận

CNPS 46 ADAPTIVE TREND MATRIX là chiến lược giao dịch phái sinh kết hợp một hệ thống Adaptive Trend Engine với bộ máy chấm điểm đồng thuận từ 10 chỉ báo kỹ thuật.

Điểm nổi bật của chiến lược là không xác nhận đảo xu hướng chỉ bằng một chỉ báo, mà yêu cầu giá phá vùng Adaptive Trail và Trend Basis, đồng thời đạt ngưỡng điểm Matrix tối thiểu.

Theo cấu hình mặc định, bot sử dụng Trend Basis từ EMA kép trên HLC3, ATR10 được làm mượt bằng EMA3 và khoảng cách Trail 1,8 ATR.

Bộ Trend Matrix gồm EMA, RSI, MACD, Stochastic, CCI, DMI/ADX, ROC, MFI, OBV và VWAP.

Mỗi chỉ báo được chấm một điểm theo điều kiện Bullish hoặc Bearish.

Khi Source Trend trước đó là Bearish, Close vượt Bear Trail và Trend Basis, đồng thời Bull Score đạt ít nhất 6/10, chiến lược có thể tạo Source Buy.

Ngược lại, khi Source Trend trước đó là Bullish, Close giảm dưới Bull Trail và Trend Basis, đồng thời Bear Score đạt ngưỡng, bot có thể tạo Source Sell.

Về quản trị rủi ro, CNPS 46 mặc định sử dụng Stop Loss 5 điểm và Take Profit 15 điểm, tương đương Reward/Risk danh nghĩa 1:3.

Người dùng còn có thể lựa chọn Target dựa trên ATR, bật Break Even hoặc sử dụng Adaptive Matrix Trail làm Dynamic Stop.

Đặc biệt, chiến lược mặc định cho phép đảo chiều vị thế theo Source Signal đối lập, nếu các điều kiện Entry mới được đáp ứng.

Tuy nhiên, cần phân biệt rõ hành vi Reverse với Exit Only. Việc đồng thời bật Reverse và Exit On Opposite không có nghĩa bot luôn đóng vị thế khi xuất hiện tín hiệu đối lập.

Ngoài ra, Matrix Score 6/10 chỉ phản ánh số lượng xác nhận kỹ thuật, không phải xác suất giao dịch thành công.

Một số chỉ báo trong Matrix có sự tương quan lớn do cùng sử dụng dữ liệu giá và khối lượng.

Vì vậy, khi sử dụng CNPS 46, nhà đầu tư cần hiểu rõ cách Ratcheting Trail hoạt động, phương pháp chấm điểm Bull/Bear Score, điều kiện Source Trend Reversal, hành vi Reverse Position và sự khác biệt giữa Fixed Stop với Dynamic Matrix Stop.

Nên kiểm thử riêng các mức Required Confirmations, lựa chọn Stop/TP, bật/tắt Reverse và đánh giá hiệu quả trên nhiều trạng thái thị trường trong TradingView Strategy Tester.

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 Adaptive Trend Matrix, phân tích chỉ báo kỹ thuật và chiến lược quản trị vị thế trên TradingView.

Ghi nhận nguồn: Mã nguồn CNPS 46 ghi nhận kế thừa từ “Uptrick: Adaptive Trend Matrix” của Uptrick theo giấy phép CC BY-SA 4.0. Khi sử dụng hoặc phân phối mã nguồn phái sinh, cần duy trì ghi nhận tác giả và tuân thủ các điều kiện giấy phép liên quan.

Lưu ý: Nội dung chỉ mang tính chất hướng dẫn sử dụng 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ế.

Open Interest & Dòng tiền phái sinh
Theo dõi khối lượng mở, vị thế và dòng tiền hợp đồng tương lai.