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

Hướng Dẫn Sử Dụng Bot CNPS38-PULLBACK cho VN30F1M

Hướng dẫn Bot CNPS 38 RF-HA Pullback: kết hợp Range Filter, Smoothed Heikin-Ashi, SMI Anti-Chase, xác nhận Pullback và quản trị SL/TP 2R.

CNPS 38 RF-HA Pullback Strategy
CNPS 38 RF-HA Pullback Strategy
Mục lục
Mục lục

Trong giao dịch chứng khoán phái sinh, việc xác định xu hướng là một trong những yếu tố quan trọng khi xây dựng chiến lược giao dịch. Tuy nhiên, nhận diện đúng hướng thị trường không đồng nghĩa với việc nhà đầu tư đã tìm được một điểm vào lệnh phù hợp.

Đặc biệt trên những khung thời gian ngắn như M1 hoặc M5, giá có thể di chuyển mạnh ngay sau khi các chỉ báo xác nhận xu hướng. Nếu mở vị thế tại thời điểm này, nhà giao dịch có thể phải chấp nhận mức giá không thuận lợi hoặc gặp phải những nhịp điều chỉnh ngay sau khi vào lệnh.

Một phương pháp tiếp cận là kết hợp nhiều công cụ xác định xu hướng, sau đó chờ thị trường Pullback về vùng giá tham chiếu trước khi quyết định giao dịch.

CNPS 38 V2 RF-HA PULLBACK 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 Range Filter và Smoothed Heikin-Ashi để xác định trạng thái xu hướng đồng thuận, sau đó sử dụng cơ chế Armed Setup để chờ giá điều chỉnh về đường Range Filter.

Điểm nổi bật của phiên bản V2 là không mở lệnh ngay khi Range Filter và Smoothed Heikin-Ashi lần đầu đồng thuận.

Thay vào đó, bot thực hiện quy trình:

Range Filter + Smoothed HA Agreement → Arm Setup → Pullback Touch → Range Filter Reclaim → SMI Confirmation → Candle Confirmation → Entry.

Ví dụ, khi Range Filter chuyển sang tăng và Smoothed Heikin-Ashi cũng xác nhận Bullish, bot có thể ghi nhận Bullish Agreement Transition.

Tuy nhiên, chiến lược chưa lập tức mở Long.

Thay vào đó, bot kích hoạt trạng thái Long Armed và chờ tối đa 12 nến để giá quay về khu vực Range Filter.

Nếu một cây nến tiếp theo kiểm tra đường Range Filter, đóng cửa trở lại phía trên đường này, đồng thời Range Filter và Smoothed HA vẫn đồng thuận tăng, SMI không vượt ngưỡng giới hạn và cây nến xác nhận đạt chất lượng tối thiểu, bot mới xem xét mở Long.

Với Short, nguyên tắc tương tự được áp dụng theo hướng giảm.

Ngoài hai thành phần xu hướng chính, CNPS 38 còn hỗ trợ xác nhận Smoothed Heikin-Ashi từ khung thời gian lớn hơn, bộ lọc ADX/DI tùy chọn, Stop Loss theo cấu trúc giá, Take Profit 2R và Break Even.

Theo cấu hình mặc định, chiến lược sử dụng Stop Loss dự kiến từ 2,5 đến 7 điểm, tối đa 2 giao dịch mỗi ngày và Cooldown 8 nến sau khi đóng vị thế.

Vậy CNPS 38 hoạt động như thế nào, Range Filter khác gì đường trung bình động thông thường, Smoothed Heikin-Ashi được sử dụng để xác nhận xu hướng ra sao và tại sao chiến lược phải chờ Pullback trước khi vào lệnh?

1. CNPS 38 V2 RF-HA Pullback là gì?

CNPS 38 V2 RF-HA Pullback là chiến lược giao dịch được xây dựng trên TradingView, hướng đến việc hỗ trợ giao dịch hợp đồng tương lai chỉ số VN30 thông qua sự kết hợp giữa bộ lọc xu hướng Range Filter, nến Smoothed Heikin-Ashi và xác nhận Pullback.

Chiến lược được tổ chức thành bốn thành phần chính.

1.1. Range Filter – Bộ lọc xu hướng giá

Range Filter là công cụ xử lý biến động giá nhằm tạo một đường tham chiếu có khả năng duy trì trạng thái ổn định trước những thay đổi giá nhỏ.

Khác với đường trung bình động thông thường, Range Filter của CNPS 38 không nhất thiết thay đổi theo mọi chuyển động của Close.

Đường Filter chỉ được điều chỉnh khi biến động giá đủ lớn so với khoảng Range đã được làm mượt.

Khi Range Filter tăng, chiến lược xác định hướng Range Filter là Bullish.

Khi Range Filter giảm, hướng được xác định là Bearish.

Nếu Range Filter không thay đổi, hướng trước đó được duy trì.

1.2. Smoothed Heikin-Ashi – Xác nhận hướng xu hướng

CNPS 38 sử dụng một phiên bản Heikin-Ashi được làm mượt hai giai đoạn.

Đầu tiên, dữ liệu Open, High, Low và Close được xử lý qua EMA.

Sau đó, bot xây dựng nến Heikin-Ashi từ dữ liệu đã làm mượt và tiếp tục áp dụng EMA lên kết quả.

Chiến lược xác định:

Smoothed HA Bullish: HA Close ≥ HA Open.

Smoothed HA Bearish: HA Close < HA Open.

Khi cả Range Filter và Smoothed Heikin-Ashi cùng Bullish, bot có thể xác định Bullish Agreement.

Khi cả hai cùng Bearish, bot xác định Bearish Agreement.

1.3. Armed Pullback – Chờ điểm vào lệnh

CNPS 38 không giao dịch trực tiếp tại thời điểm các chỉ báo vừa đồng thuận.

Một sự kiện Agreement Transition chỉ được sử dụng để kích hoạt trạng thái Armed.

Sau đó, bot chờ giá quay lại Range Filter.

Theo mặc định:

Maximum Arm Life = 12 nến.

Pullback Tolerance = 0,20 ATR14.

Nếu thị trường hình thành Pullback hợp lệ trong khoảng thời gian chờ, chiến lược tiếp tục kiểm tra các điều kiện xác nhận trước khi mở vị thế.

1.4. Risk Management – Quản trị vị thế

CNPS 38 sử dụng Stop Loss theo cấu trúc giá.

Với Long:

Stop Loss = Lowest Low của 5 nến − 0,10 ATR14.

Với Short:

Stop Loss = Highest High của 5 nến + 0,10 ATR14.

Khoảng Risk dự kiến phải nằm trong phạm vi 2,5–7 điểm.

Take Profit được tính theo:

Reward/Risk = 2,0.

Ngoài ra, chiến lược hỗ trợ Break Even, Time Exit và Range Filter Flip Exit tùy chọn.

1.5. Thông số mặc định của CNPS 38

Thành phầnThông số mặc định
Range Filter Sampling Period50
Range Multiplier2,0
HA Pre-Smooth Length6
HA Post-Smooth Length8
HTF HA AgreementTắt
HTF15 phút
SMI Anti-ChaseBật
SMI Length8
SMI Smoothing3/3
SMI Limit±55
Maximum Arm Life12 nến
Pullback Tolerance0,20 ATR
Require RF + HA Agreement at EntryBật
Directional CandleBật
Minimum Body Ratio0,40
Previous High/Low BreakTắt
ADX FilterTắt
Minimum ADX nếu bật18
Trade DirectionBoth
Structural Stop Lookback5 nến
Stop Buffer0,10 ATR
Minimum Risk2,5 điểm
Maximum Risk7 điểm
Take Profit2R
Range Filter Flip ExitTắt
Break EvenTắt
Maximum Bars In Trade90
Maximum Trades Per Day2
Cooldown After Exit8 nến
Position Size3 hợp đồng

Source Code CNPS 38: CNPS38

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

2.1. Range Filter là gì?

Range Filter là phương pháp lọc biến động giá sử dụng khoảng dao động được làm mượt để hạn chế việc đường tham chiếu thay đổi liên tục khi thị trường xuất hiện những biến động nhỏ.

Trong CNPS 38, bot sử dụng hai tham số chính:

Sampling Period = 50.

Range Multiplier = 2,0.

Đầu tiên, chiến lược tính mức thay đổi tuyệt đối giữa hai giá đóng cửa liên tiếp.

Raw Range = |Close hiện tại − Close nến trước|.

Sau đó, dữ liệu được làm mượt bằng EMA50:

Average Range = EMA(Raw Range, 50).

Tiếp theo, bot áp dụng một lần làm mượt khác với chu kỳ:

Double Sampling Period = 50 × 2 − 1 = 99.

Khoảng biến động cuối cùng:

Smoothed Range = EMA(Average Range, 99) × 2,0.

Giá trị này được sử dụng để điều chỉnh đường Range Filter.

2.2. Cơ chế cập nhật Range Filter

Range Filter không được tính như một đường EMA thông thường.

Chiến lược so sánh Close hiện tại với Range Filter của nến trước.

Nếu Close lớn hơn Range Filter trước đó:

RF hiện tại = Max(RF trước đó, Close − Smoothed Range).

Nếu Close không lớn hơn Range Filter trước đó:

RF hiện tại = Min(RF trước đó, Close + Smoothed Range).

Điều này giúp Range Filter có thể duy trì giá trị cũ khi biến động giá chưa đủ lớn để dịch chuyển đường tham chiếu.

Ví dụ:

  • Range Filter trước đó = 1.900.
  • Smoothed Range = 5 điểm.
  • Close hiện tại = 1.903.

Vì Close > RF trước đó, bot tính:

RF mới = Max(1.900, 1.903 − 5).

RF mới = 1.900.

Range Filter chưa tăng.

Nếu Close tiếp tục tăng lên 1.908:

RF mới = Max(1.900, 1.908 − 5).

RF mới = 1.903.

Khi đó, Range Filter bắt đầu tăng.

Đây là cách Range Filter hạn chế phản ứng với những chuyển động giá nhỏ.

2.3. Range Filter Direction

CNPS 38 xác định hướng của Range Filter dựa trên sự thay đổi của chính đường Filter.

Bullish:

Range Filter hiện tại > Range Filter trước đó.

Bearish:

Range Filter hiện tại < Range Filter trước đó.

Nếu hai giá trị bằng nhau, chiến lược giữ nguyên hướng trước đó.

Đây là chi tiết quan trọng.

Một đường Range Filter đi ngang không tự động khiến trạng thái xu hướng chuyển về trung tính.

Ví dụ, nếu trước đó Range Filter đang Bullish nhưng ba nến tiếp theo đường Filter không đổi, bot vẫn có thể giữ Range Filter Direction = Bullish.

Tuy nhiên, tín hiệu vào lệnh còn phụ thuộc vào Smoothed HA Agreement và các điều kiện Pullback khác.

2.4. Range Bands

Ngoài đường Range Filter, bot tính thêm hai biên:

Upper Range Band = Range Filter + Smoothed Range.

Lower Range Band = Range Filter − Smoothed Range.

Các biên này có thể được hiển thị trên biểu đồ.

Theo mặc định:

Show Range Bands = Tắt.

Một điểm cần phân biệt là CNPS 38 không sử dụng Upper/Lower Range Band làm điều kiện chính để kích hoạt Pullback hoặc Take Profit.

Pullback sử dụng trực tiếp đường Range Filter.

2.5. Heikin-Ashi là gì?

Heikin-Ashi là phương pháp biểu diễn giá bằng những cây nến được xây dựng từ dữ liệu OHLC nhằm làm rõ trạng thái xu hướng.

Khác với nến Nhật thông thường, giá Open và Close của Heikin-Ashi không nhất thiết trùng với giá mở cửa và đóng cửa thực tế.

Trong CNPS 38, bot không yêu cầu người dùng phải chuyển biểu đồ TradingView sang Heikin-Ashi.

Chiến lược tự tính các giá trị HA bằng hàm riêng từ dữ liệu biểu đồ.

Điều này giúp Smoothed HA được sử dụng làm bộ lọc tín hiệu, trong khi chiến lược vẫn có thể đặt lệnh dựa trên cơ chế giá của Strategy.

2.6. Smoothed Heikin-Ashi hai giai đoạn

CNPS 38 sử dụng hai bước làm mượt.

Bước 1: Làm mượt OHLC trước khi tính Heikin-Ashi.

Mặc định:

Pre-Smooth Length = 6.

Bot sử dụng EMA6 cho Open, High, Low và Close.

Sau đó tính:

HA Close = (Smooth Open + Smooth High + Smooth Low + Smooth Close) / 4.

HA Open được tính đệ quy từ giá trị HA Open và HA Close trước đó.

Bước 2: Làm mượt dữ liệu Heikin-Ashi lần nữa.

Mặc định:

Post-Smooth Length = 8.

Bot áp dụng EMA8 cho các giá trị HA Open, HA High, HA Low và HA Close.

Cuối cùng, chiến lược sử dụng:

Local HA Direction = +1 nếu Final HA Close ≥ Final HA Open.

Local HA Direction = −1 nếu Final HA Close < Final HA Open.

Điểm quan trọng là Smoothed HA có thể phản ứng chậm hơn giá thực tế do đã trải qua hai giai đoạn làm mượt.

Đây cũng là một lý do khiến phiên bản V2 chuyển từ Entry trực tiếp sang chờ Pullback.

2.7. Range Filter + Smoothed HA Agreement

CNPS 38 yêu cầu hai bộ máy xu hướng đồng thuận.

Local Bullish Agreement:

  • Range Filter Direction = +1.
  • Local Smoothed HA Direction = +1.

Local Bearish Agreement:

  • Range Filter Direction = −1.
  • Local Smoothed HA Direction = −1.

Nếu hai hướng khác nhau, chiến lược không có Local Agreement hợp lệ.

Ví dụ:

  • Range Filter: Bullish.
  • Smoothed HA: Bearish.

Khi đó, bot chưa xác nhận Bullish hoặc Bearish Agreement đầy đủ.

Nếu cả hai cùng Bullish:

Bull Agreement = True.

Nếu cả hai cùng Bearish:

Bear Agreement = True.

Khi bộ lọc HTF được bật, sự đồng thuận còn phải đáp ứng hướng của Smoothed HA trên khung thời gian lớn hơn.

2.8. Agreement Transition

CNPS 38 không sử dụng trạng thái Agreement liên tục để tạo Armed Setup mới trên mọi nến.

Chiến lược tìm thời điểm trạng thái vừa chuyển sang đồng thuận.

Bullish Transition:

Trend State hiện tại = +1 và Trend State trước đó khác +1.

Bearish Transition:

Trend State hiện tại = −1 và Trend State trước đó khác −1.

Ví dụ:

NếnRange FilterSmoothed HATrend State
ABullishBearish0
BBullishBullish+1
CBullishBullish+1

Tại nến B, bot có thể ghi nhận Bullish Transition.

Tại nến C, xu hướng vẫn đồng thuận nhưng không có Bullish Transition mới.

Điều này giúp chiến lược chỉ kích hoạt Armed Setup khi xuất hiện một sự kiện chuyển trạng thái.

2.9. Higher Timeframe Smoothed HA

CNPS 38 hỗ trợ xác nhận xu hướng từ khung thời gian lớn hơn.

Mặc định:

Require Closed HTF HA Agreement = Tắt.

HTF = 15 phút.

Khi bật, bot sử dụng Smoothed HA được tính từ khung thời gian HTF.

Điểm quan trọng là mã nguồn sử dụng hướng HA của cây nến HTF trước đó đã đóng, thông qua dữ liệu lấy bằng request.security().

Do đó, đối với bộ lọc HTF, chiến lược không trực tiếp sử dụng hướng của cây nến HTF đang hình thành.

Điều kiện Long khi HTF bật:

  • Range Filter Bullish.
  • Local Smoothed HA Bullish.
  • Closed HTF Smoothed HA Bullish.

Điều kiện Short tương ứng yêu cầu cả ba thành phần Bearish.

Khi HTF tắt, chỉ cần hai thành phần Local Agreement.

2.10. SMI – Stochastic Momentum Index

CNPS 38 sử dụng SMI nhằm hạn chế mở vị thế khi giá đã di chuyển tương đối xa theo một hướng.

SMI được tính dựa trên vị trí Close so với trung điểm của vùng High/Low trong một chu kỳ.

Mặc định:

  • SMI Length = 8.
  • SMI Smooth 1 = 3.
  • SMI Smooth 2 = 3.

Bot xác định:

Highest High = Highest High trong 8 nến.

Lowest Low = Lowest Low trong 8 nến.

Range = Highest High − Lowest Low.

Relative Value = Close − (Highest High + Lowest Low) / 2.

Sau đó, Relative Value và Range được làm mượt qua hai lớp EMA3.

SMI được tính theo tỷ lệ giữa khoảng cách tương đối đã làm mượt và một nửa Range đã làm mượt, nhân với 100.

Nếu mẫu số bằng 0, hàm trả về 0.

SMI của CNPS 38 được sử dụng làm bộ lọc giới hạn trạng thái giá, không phải hệ thống giao cắt SMI Signal Line.

2.11. SMI Anti-Chase Filter

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

Use SMI Anti-Chase = Bật.

SMI Limit = 55.

Điều kiện Long:

SMI < +55.

Điều kiện Short:

SMI > −55.

Ví dụ:

  • SMI = +70: Không đạt điều kiện Long.
  • SMI = +40: Đạt điều kiện Long.
  • SMI = −70: Không đạt điều kiện Short.
  • SMI = −40: Đạt điều kiện Short.

Điểm đặc biệt quan trọng là SMI Anti-Chase chỉ sử dụng giới hạn một phía.

Với Long, bot không bắt buộc SMI phải lớn hơn 0 hoặc SMI phải cắt lên một đường tín hiệu.

Với Short, bot không bắt buộc SMI phải nhỏ hơn 0 hoặc vừa cắt xuống.

Vì vậy, SMI âm sâu vẫn có thể đáp ứng điều kiện Long, trong khi SMI dương cao vẫn có thể đáp ứng điều kiện Short.

Đây là cơ chế giới hạn trạng thái mở rộng giá theo mã nguồn, không phải một bộ lọc động lượng đầy đủ theo cả hướng và điểm giao cắt.

2.12. ADX/DI Filter tùy chọn

CNPS 38 hỗ trợ bộ lọc ADX/DI.

Mặc định:

Use ADX Filter = Tắt.

Các tham số:

  • ADX Length: 14.
  • ADX Smoothing: 14.
  • Minimum ADX: 18.
  • Require DI Direction: Bật.

Nếu kích hoạt ADX Filter, điều kiện Long là:

ADX ≥ 18 và DI+ > DI−.

Điều kiện Short:

ADX ≥ 18 và DI− > DI+.

Nếu người dùng tắt Require DI Direction, bot chỉ yêu cầu ADX đạt ngưỡng tối thiểu.

Một điểm cần lưu ý là Require DI Direction mặc định bật nhưng không có hiệu lực khi toàn bộ ADX Filter đang tắt.

2.13. Candle Quality

CNPS 38 sử dụng bộ lọc chất lượng nến tại thời điểm Pullback được xác nhận.

Mặc định:

  • Require Directional Candle: Bật.
  • Minimum Body Ratio: 0,40.
  • Require Previous High/Low Break: Tắt.

Công thức:

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

Với Long:

  • Close > Open.
  • Body Ratio ≥ 0,40.

Với Short:

  • Close < Open.
  • Body Ratio ≥ 0,40.

Nếu bật Previous Break, chiến lược yêu cầu thêm:

Long: Close > High của nến trước.

Short: Close < Low của nến trước.

Điểm cần phân biệt là tắt Directional Candle không làm mất điều kiện Body Ratio.

Body Ratio vẫn được kiểm tra nếu tham số Minimum Body Ratio lớn hơn 0.

2.14. Structural Stop Loss

CNPS 38 sử dụng Stop Loss dựa trên cấu trúc High/Low gần nhất.

Theo mặc định:

ATR Length = 14.

Structure Stop Lookback = 5 nến.

Stop Buffer = 0,10 ATR.

Với Long:

Stop = Lowest Low(5) − 0,10 ATR14.

Với Short:

Stop = Highest High(5) + 0,10 ATR14.

Bot tính khoảng Risk dự kiến từ giá Close của cây nến tín hiệu đến mức Stop tương ứng.

Sau đó chỉ chấp nhận các tín hiệu có khoảng Risk từ 2,5 đến 7 điểm.

3. Nguyên lý hoạt động của CNPS 38 V2 RF-HA Pullback

CNPS 38 sử dụng quy trình nhiều giai đoạn để phân biệt rõ thời điểm phát hiện xu hướng và thời điểm giao dịch thực tế.

Bước 1: Tính Range Filter

Bot tính Raw Range từ biến động Close giữa hai cây nến.

Sau đó, chiến lược sử dụng EMA với Sampling Period và Double Sampling Period để xác định Smoothed Range.

Giá trị này được sử dụng để cập nhật Range Filter.

Bước 2: Xác định hướng Range Filter

Bot so sánh Range Filter hiện tại với giá trị trước đó.

Nếu tăng, Range Filter Direction chuyển sang Bullish.

Nếu giảm, chuyển sang Bearish.

Nếu không thay đổi, chiến lược giữ nguyên hướng trước đó.

Bước 3: Tính Smoothed Heikin-Ashi

Chiến lược làm mượt OHLC, xây dựng nến HA và tiếp tục làm mượt kết quả.

Sau đó xác định hướng Local HA.

Nếu HTF Agreement được bật, bot còn tính hướng của cây nến Smoothed HA đã đóng trên khung thời gian lớn hơn.

Bước 4: Phát hiện Agreement Transition

Khi Range Filter và Local Smoothed HA bắt đầu đồng thuận, bot có thể ghi nhận một Bullish hoặc Bearish Transition.

Nếu HTF đang bật, hướng HTF phải đồng thuận với hai thành phần này.

Đây là bước khởi tạo thiết lập, chưa tạo lệnh giao dịch.

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

Khi Bullish Transition xuất hiện:

Long Armed = True.

Short Armed = False.

Khi Bearish Transition xuất hiện:

Short Armed = True.

Long Armed = False.

Bot lưu chỉ số nến tạo Armed để theo dõi thời hạn thiết lập.

Bước 6: Theo dõi thời gian chờ

Mặc định:

Maximum Arm Life = 12 nến.

Thiết lập hết hiệu lực khi:

Current Bar Index − Arm Bar > 12.

Do đó, cây nến cách Armed Event đúng 12 đơn vị chỉ số vẫn nằm trong thời hạn.

Bot không được mở vị thế trên chính cây nến vừa tạo Armed Setup.

Bước 7: Kiểm tra điều kiện hủy Armed

CNPS 38 có một cơ chế hủy thiết lập đáng chú ý.

Với Long, bot chỉ hủy do đảo hướng khi:

Range Filter Direction = Bearish và Local HA Direction = Bearish.

Với Short:

Range Filter Direction = Bullish và Local HA Direction = Bullish.

Điều này có nghĩa trạng thái đồng thuận tạm thời bị mất không tự động khiến Armed Setup bị hủy.

Ví dụ, sau Long Armed:

  • Range Filter vẫn Bullish.
  • Local HA chuyển Bearish.

Thiết lập có thể tiếp tục tồn tại.

Tuy nhiên, khi bộ lọc Agreement At Entry mặc định đang bật, bot chưa được mở Long cho đến khi các thành phần xác nhận lại trạng thái Bullish.

Ngoài đảo hướng, Armed Setup còn có thể bị hủy khi hết hạn, sang ngày mới, xuất hiện Transition ngược hướng, Entry được chấp thuận hoặc đến Force Close.

Bước 8: Phát hiện Pullback về Range Filter

Bot tính:

Pullback Tolerance = ATR14 × 0,20.

Với Long:

Low ≤ Range Filter + Pullback Tolerance.

Với Short:

High ≥ Range Filter − Pullback Tolerance.

Điểm quan trọng là đây là điều kiện một phía.

Bot không yêu cầu toàn bộ cây nến phải nằm trong một vùng đối xứng quanh Range Filter.

Vì vậy, Long vẫn có thể ghi nhận Pullback Touch khi Low xuyên xuống khá sâu dưới Range Filter, miễn những điều kiện xác nhận tiếp theo hợp lệ.

Bước 9: Kiểm tra Reclaim Range Filter

Sau Pullback Touch, chiến lược yêu cầu Close nằm đúng phía Range Filter.

Với Long:

Close > Range Filter.

Với Short:

Close < Range Filter.

Đây là điều kiện quan trọng để phân biệt một lần giá chạm đường Filter với một thiết lập Pullback đã có xác nhận đóng cửa.

Bước 10: Xác nhận Agreement tại thời điểm Entry

Theo mặc định:

Require RF + HA Agreement At Entry = Bật.

Với Long, bot yêu cầu trạng thái Bull Agreement vẫn hợp lệ.

Với Short, Bear Agreement phải hợp lệ.

Nếu HTF Agreement đang được bật, hướng HTF cũng được kiểm tra trong điều kiện này.

Bước 11: Kiểm tra SMI, ADX và chất lượng nến

Chiến lược kiểm tra:

  • SMI không vượt giới hạn Anti-Chase theo hướng giao dịch.
  • ADX/DI nếu bộ lọc đang bật.
  • Nến tăng hoặc giảm đúng hướng.
  • Body Ratio đạt ít nhất 40%.
  • Previous High/Low Break nếu được yêu cầu.

Nếu một điều kiện không đạt, Raw Pullback Setup không được xác nhận.

Bước 12: Kiểm tra Structural Risk

Bot tính Stop Loss cấu trúc từ High/Low của 5 nến gần nhất, kết hợp ATR Buffer.

Sau đó:

Risk = Khoảng cách từ Close đến Stop.

Điều kiện mặc định:

2,5 ≤ Risk ≤ 7 điểm.

Nếu Risk nằm ngoài phạm vi, bot không tạo Final Entry.

Bước 13: Kiểm tra điều kiện giao dịch chung

Bot yêu cầu:

  • Không có vị thế đang mở.
  • Đang trong thời gian Entry.
  • Nến đóng cửa trước Force Close.
  • Cooldown đã hoàn thành.
  • Chưa đạt 2 giao dịch/ngày.
  • Trade Direction cho phép hướng tương ứng.
  • Nến đã xác nhận đóng cửa.

Bước 14: Gửi lệnh và quản trị vị thế

Khi Final Signal hợp lệ, chiến lược tạo Long hoặc Short với khối lượng 3 hợp đồng.

Bot lưu mức Structural Stop đã xác định trước khi gửi lệnh.

Sau khi vị thế được khớp, chiến lược tính Initial Risk thực tế từ giá vào lệnh trung bình đến Stop Loss đã lưu.

Take Profit được tính theo 2R.

Vị thế sau đó được quản trị bằng SL/TP, Break Even nếu bật, RF Flip Exit nếu bật, Time Exit và Force Close cuối phiên.

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

4.1. Long – Bullish Agreement + Range Filter Pullback

Để tạo Long, CNPS 38 yêu cầu hai giai đoạn.

Giai đoạn A: Bullish Agreement Transition

Điều kiện:

  1. Range Filter Direction = Bullish.
  2. Local Smoothed HA Direction = Bullish.
  3. Closed HTF HA Bullish nếu HTF Filter đang bật.
  4. Trend State hiện tại = +1.
  5. Trend State trước đó khác +1.

Khi điều kiện xuất hiện, bot tạo Long Armed.

Giai đoạn B: Pullback Long Confirmation

Bot yêu cầu:

  1. Long Armed còn hiệu lực.
  2. Nến hiện tại xuất hiện sau Arm Bar.
  3. Thiết lập chưa hết hạn 12 nến.
  4. Không xuất hiện đảo chiều đồng thời của hai thành phần Local.
  5. Low chạm hoặc đi xuống dưới Range Filter + 0,20 ATR.
  6. Close > Range Filter.
  7. Bull Agreement còn hợp lệ nếu được yêu cầu.
  8. SMI < +55 nếu SMI Filter đang bật.
  9. ADX/DI đạt điều kiện nếu được bật.
  10. Nến tăng nếu Directional Candle đang bật.
  11. Body Ratio ≥ 0,40.
  12. Close > High nến trước nếu Previous Break được bật.
  13. Structural Risk nằm trong 2,5–7 điểm.
  14. Chiến lược đang Flat.
  15. Cooldown đã kết thúc.
  16. Chưa vượt 2 giao dịch trong ngày.
  17. Thời gian và hướng giao dịch hợp lệ.
  18. Nến đã đóng cửa xác nhận.

Nếu toàn bộ điều kiện đạt, bot mở Long.

4.2. Ví dụ Long minh họa

Giả sử VN30F1M có Range Filter đang tăng.

Smoothed HA cũng đang Bullish.

Tại nến A, Bullish Agreement Transition xuất hiện.

Bot kích hoạt Long Armed.

Sau ba nến, thị trường điều chỉnh về đường Range Filter.

Dữ liệu nến xác nhận:

  • Range Filter = 1.900.
  • ATR14 = 10 điểm.
  • Open = 1.900.
  • High = 1.905.
  • Low = 1.898.
  • Close = 1.904.
  • SMI = +35.
  • Range Filter Direction = Bullish.
  • Smoothed HA Direction = Bullish.

Dung sai:

0,20 × 10 = 2 điểm.

Ngưỡng Pullback Long:

1.900 + 2 = 1.902.

Vì Low = 1.898 thấp hơn 1.902, điều kiện Pullback Touch được đáp ứng.

Đồng thời:

Close = 1.904 > Range Filter 1.900.

Điều kiện Reclaim hợp lệ.

Body Ratio:

|1.904 − 1.900| / (1.905 − 1.898) = 4/7 ≈ 0,57.

Nến đáp ứng ngưỡng 0,40 và có hướng tăng.

SMI = +35 cũng đáp ứng ngưỡng Anti-Chase +55.

Giả sử Lowest Low của 5 nến gần nhất bằng 1.898.

Stop Buffer:

0,10 × 10 = 1 điểm.

Stop Loss dự kiến:

1.898 − 1 = 1.897.

Prospective Risk:

1.904 − 1.897 = 7 điểm.

Vì Risk bằng 7, tín hiệu vẫn đáp ứng giới hạn tối đa.

Nếu những điều kiện khác hợp lệ và lệnh khớp tại 1.904:

  • Entry = 1.904.
  • SL = 1.897.
  • Risk = 7 điểm.
  • TP 2R = 1.918.

Đây là ví dụ minh họa công thức, không phải tín hiệu giao dịch thực tế.

4.3. Short – Bearish Agreement + Range Filter Pullback

Short sử dụng quy trình tương ứng.

Giai đoạn A: Bearish Agreement Transition

  • Range Filter Direction = Bearish.
  • Local Smoothed HA Direction = Bearish.
  • HTF HA Bearish nếu được bật.
  • Trend State chuyển sang −1.

Sau đó, bot kích hoạt Short Armed.

Giai đoạn B: Pullback Short Confirmation

Điều kiện:

  1. Short Armed còn hiệu lực.
  2. Nến xác nhận xuất hiện sau Arm Bar.
  3. Setup chưa hết hạn.
  4. High ≥ Range Filter − 0,20 ATR.
  5. Close < Range Filter.
  6. Bear Agreement hợp lệ nếu được yêu cầu.
  7. SMI > −55.
  8. ADX/DI hợp lệ nếu được bật.
  9. Nến giảm nếu Directional Candle bật.
  10. Body Ratio ≥ 40%.
  11. Close < Low nến trước nếu Previous Break bật.
  12. Structural Risk nằm trong 2,5–7 điểm.
  13. Điều kiện phiên, Cooldown và giới hạn giao dịch hợp lệ.

Khi toàn bộ điều kiện đạt, bot tạo Short.

4.4. Ví dụ Short minh họa

Giả sử Range Filter đang giảm và Smoothed HA đang Bearish.

Bot đã kích hoạt Short Armed trước đó.

Tại nến xác nhận:

  • Range Filter = 1.900.
  • ATR14 = 10.
  • Open = 1.901.
  • High = 1.903.
  • Low = 1.895.
  • Close = 1.897.
  • SMI = −30.

Dung sai:

0,20 × 10 = 2 điểm.

Ngưỡng Pullback Short:

1.900 − 2 = 1.898.

Vì High = 1.903 cao hơn 1.898, điều kiện Pullback Touch hợp lệ.

Close = 1.897 thấp hơn Range Filter 1.900 nên đáp ứng Reclaim theo hướng Short.

Body Ratio:

|1.897 − 1.901| / (1.903 − 1.895) = 0,50.

Nến đạt yêu cầu 40% và có hướng giảm.

SMI = −30 lớn hơn −55 nên đáp ứng SMI Anti-Chase.

Giả sử Highest High 5 nến bằng 1.903.

Stop Buffer = 1 điểm.

Stop Loss dự kiến:

1.903 + 1 = 1.904.

Risk:

1.904 − 1.897 = 7 điểm.

Nếu lệnh được khớp tại 1.897:

  • Entry = 1.897.
  • SL = 1.904.
  • Risk = 7 điểm.
  • TP 2R = 1.883.

4.5. Pullback Touch và Reclaim có thể cùng một nến

CNPS 38 không yêu cầu phải có một nến riêng chạm Range Filter và một nến khác xác nhận Reclaim.

Nếu cùng một cây nến:

  • Low chạm vùng RF đối với Long.
  • Close trở lại phía trên RF.
  • Agreement hợp lệ.
  • SMI và Candle Quality đạt yêu cầu.

Bot có thể xác nhận Raw Long Setup ngay tại cây nến đó.

Với Short, nguyên tắc tương ứng áp dụng cho High và Close.

Điều kiện bắt buộc về trình tự là nến xác nhận phải xuất hiện sau nến tạo Armed Setup.

4.6. SMI không phải tín hiệu giao cắt

SMI Anti-Chase thường dễ bị hiểu nhầm thành một điều kiện Momentum Cross.

Tuy nhiên, trong CNPS 38:

Long chỉ yêu cầu SMI < +55.

Short chỉ yêu cầu SMI > −55.

Bot không yêu cầu SMI cắt một Signal Line.

Cũng không yêu cầu SMI chuyển từ âm sang dương đối với Long hoặc ngược lại với Short.

Vì vậy, bộ lọc SMI chỉ giới hạn những trạng thái giá đã mở rộng đến một mức nhất định.

4.7. Có thể duy trì Armed khi Agreement tạm thời mất

Ví dụ, bot đã kích hoạt Long Armed.

Sau đó:

  • Range Filter vẫn Bullish.
  • Smoothed HA chuyển Bearish.

Khi đó, Long Armed chưa bị hủy chỉ vì mất sự đồng thuận.

Mã nguồn chỉ hủy Long Armed vì đảo hướng khi cả Range Filter và Local Smoothed HA cùng Bearish.

Tuy nhiên, nếu Require Agreement At Entry vẫn bật, chiến lược không mở Long khi hai thành phần chưa đồng thuận tăng trở lại.

Đây là cơ chế phân biệt giữa duy trì thiết lập chờ và điều kiện xác nhận tại thời điểm Entry.

4.8. Strong Transition không cần xuất hiện trong Session

CNPS 38 tạo Armed Setup từ Agreement Transition trước khi kiểm tra cửa sổ thời gian Entry.

Vì vậy, về mặt logic, một Armed Setup có thể được kích hoạt ngoài phiên được phép giao dịch.

Tuy nhiên, lệnh thực tế vẫn phải đáp ứng Session Filter, Cooldown, giới hạn số lệnh và những điều kiện khác.

Ngoài ra, trạng thái Armed được xóa khi sang ngày giao dịch mới và tại Force Close.

4.9. Một Armed Setup được sử dụng đến khi có Entry hoặc điều kiện hủy

Khi Final Long Signal được chấp thuận, bot:

  • Lưu Structural Stop.
  • Gửi lệnh Long.
  • Tăng Trades Today.
  • Xóa Long Armed.

Tương tự với Short.

Tuy nhiên, nếu Raw Setup xuất hiện nhưng không đạt Risk Filter hoặc điều kiện giao dịch chung, Armed Setup không nhất thiết bị xóa ngay.

Nó có thể tiếp tục được theo dõi cho đến khi hết hạn hoặc phát sinh điều kiện hủy.

Vì vậy, một Armed Setup có thể tạo nhiều lần Raw Setup trước khi có Final Entry được chấp thuận.

4.10. ADX/DI không phải điều kiện bắt buộc mặc định

Mặc dù CNPS 38 hỗ trợ ADX/DI, bộ lọc này đang tắt.

Vì vậy, trong cấu hình mặc định, một tín hiệu không cần ADX ≥ 18 mới được giao dịch.

Nếu người dùng bật ADX Filter, chiến lược mới kiểm tra ngưỡng ADX và hướng DI tương ứng.

Việc bổ sung ADX có thể thay đổi số lượng giao dịch, nhưng không đảm bảo hiệu quả giao dịch sẽ tốt hơn trong mọi giai đoạn thị trường.

5. CNPS 38 quản trị rủi ro và thoát lệnh như thế nào?

5.1. Stop Loss cấu trúc

CNPS 38 sử dụng Structural Stop làm phương pháp Stop Loss chính.

Theo mặc định:

Structure Stop Lookback = 5 nến.

Stop Buffer = 0,10 ATR14.

Với Long:

Stop = Lowest Low(5) − 0,10 ATR.

Với Short:

Stop = Highest High(5) + 0,10 ATR.

Cực trị được tính trên 5 nến gần nhất, bao gồm cả nến đang xác nhận tín hiệu.

Bot không lưu riêng cực trị cao nhất/thấp nhất của toàn bộ giai đoạn Armed để sử dụng làm Stop Loss.

5.2. Risk Filter 2,5–7 điểm

Trước khi tạo lệnh, bot tính:

Prospective Long Risk = Close − Long Stop.

Prospective Short Risk = Short Stop − Close.

Điều kiện hợp lệ:

2,5 ≤ Risk ≤ 7 điểm.

Ví dụ:

  • Risk = 2 điểm: Bị từ chối.
  • Risk = 4 điểm: Hợp lệ.
  • Risk = 7 điểm: Hợp lệ.
  • Risk = 9 điểm: Bị từ chối.

Việc lọc Risk trước Entry giúp giới hạn các tín hiệu có khoảng Stop Loss dự kiến nằm ngoài phạm vi được thiết lập.

Tuy nhiên, Risk Filter không trực tiếp điều chỉnh số lượng hợp đồng.

Bot vẫn sử dụng 3 hợp đồng cho một lệnh được chấp thuận.

5.3. Stop Loss được lưu theo mức giá cấu trúc

Một điểm quan trọng của CNPS 38 là bot lưu giá Stop Loss dự kiến trước khi gửi Entry.

Khi tín hiệu Long hợp lệ:

Pending Stop = Prospective Long Stop.

Sau khi lệnh được khớp:

Active Stop = Pending Stop.

Initial Risk được tính lại từ giá vào lệnh trung bình đến Active Stop.

Ví dụ:

  • Close nến tín hiệu = 1.900.
  • Structural Stop = 1.895.
  • Prospective Risk = 5 điểm.

Nếu lệnh được khớp tại 1.901:

Active Stop vẫn là 1.895.

Initial Risk thực tế = 6 điểm.

Take Profit 2R:

1.901 + 6 × 2 = 1.913.

Vì vậy, Risk thực tế sau khớp có thể khác Risk dự kiến tại thời điểm xác nhận tín hiệu.

5.4. Không kiểm tra lại Maximum Risk sau khớp

CNPS 38 kiểm tra giới hạn Risk 2,5–7 điểm trước khi gửi lệnh.

Sau khi lệnh được khớp, bot tính Initial Risk từ giá khớp và Stop đã lưu.

Tuy nhiên, mã nguồn không thực hiện thêm một bước từ chối vị thế nếu Risk thực tế đã vượt 7 điểm.

Ví dụ:

  • Prospective Risk = 6,5 điểm.
  • Giá khớp Long cao hơn Close tín hiệu 1 điểm.

Khi đó:

Actual Risk = 7,5 điểm.

Vị thế vẫn có thể tiếp tục được quản trị theo Stop Loss đã lưu.

Đây là yếu tố cần kiểm thử kỹ khi chuyển từ Strategy Tester sang hệ thống giao dịch tự động.

5.5. Stop Loss dự phòng

CNPS 38 có cơ chế Stop Loss dự phòng khi mức Stop đã lưu không hợp lệ.

Với Long, nếu Active Stop không tồn tại hoặc nằm tại/trên Entry:

Fallback Stop = Entry − Minimum Risk Points.

Với Short, nếu Active Stop không tồn tại hoặc nằm tại/dưới Entry:

Fallback Stop = Entry + Minimum Risk Points.

Theo mặc định:

Minimum Risk Points = 2,5.

Điểm quan trọng là cơ chế này chỉ xử lý Stop không hợp lệ.

Nó không tự động giới hạn mọi vị thế có Risk sau khớp vượt 7 điểm.

5.6. Take Profit theo Reward/Risk 2R

CNPS 38 sử dụng:

Take Profit R = 2,0.

Với Long:

TP = Entry + Initial Risk × 2.

Với Short:

TP = Entry − Initial Risk × 2.

Ví dụ:

  • Entry Long = 1.900.
  • SL = 1.895.
  • Initial Risk = 5 điểm.

Take Profit:

1.900 + 5 × 2 = 1.910.

Tỷ lệ Reward/Risk danh nghĩa là 2R.

Tuy nhiên, điều này không đảm bảo giao dịch sẽ đạt lợi nhuận 2R.

Vị thế vẫn có thể bị đóng bởi Stop Loss, RF Flip Exit nếu bật, Time Exit hoặc Force Close.

5.7. Range Filter Flip Exit

CNPS 38 hỗ trợ:

Exit On Range Filter Flip.

Theo mặc định:

Tắt.

Nếu bật, bot có thể đóng Long khi:

Range Filter Direction = Bearish.

Với Short:

Range Filter Direction = Bullish.

Điều kiện này được kiểm tra trên nến đã đóng cửa và xuất hiện sau Active Entry Bar.

Điểm quan trọng là RF Flip Exit không yêu cầu cả Range Filter và Smoothed HA cùng đảo hướng.

Chỉ cần Range Filter Direction chuyển sang phía đối lập đã có thể tạo tín hiệu thoát vị thế.

Ngoài ra, mã nguồn không yêu cầu phải xuất hiện một sự kiện Flip mới đúng trên cây nến hiện tại.

Khi đang giữ Long và Range Filter Direction đã là Bearish trên một nến hợp lệ sau Entry, điều kiện RF Flip Exit có thể được đáp ứng.

Đây là cơ chế thoát tùy chọn, khác với logic hai thành phần được sử dụng để xác nhận Entry.

5.8. Break Even

CNPS 38 hỗ trợ Break Even.

Mặc định:

Use Break Even = Tắt.

Break Even Trigger = 1,25R.

Break Even Offset = 0,5 điểm.

Với Long:

Trigger = Entry + Initial Risk × 1,25.

Nếu High đạt ngưỡng:

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

Với Short:

Trigger = Entry − Initial Risk × 1,25.

Nếu Low đạt ngưỡng:

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

Ví dụ:

  • Entry Long = 1.900.
  • Initial Risk = 4 điểm.

Ngưỡng kích hoạt:

1.900 + 4 × 1,25 = 1.905.

Nếu High đạt 1.905, chiến lược có thể nâng Stop Loss lên 1.900,5.

Break Even chỉ được kích hoạt một lần trong mỗi vị thế.

Cần lưu ý rằng Break Even sử dụng High/Low để đánh giá ngưỡng kích hoạt, nên kết quả Backtest có thể phụ thuộc vào cách TradingView mô phỏng biến động giá bên trong nến.

5.9. Time Exit

CNPS 38 có giới hạn thời gian nắm giữ:

Maximum Bars In Trade = 90.

Nếu số nến kể từ Active Entry Bar đạt hoặc vượt 90, chiến lược yêu cầu đóng toàn bộ vị thế bằng strategy.close_all().

Nếu người dùng đặt Maximum Bars In Trade bằng 0, chức năng này bị tắt.

Một điểm quan trọng là Time Exit không đảm bảo vị thế được giữ đủ 90 nến.

Stop Loss, Take Profit hoặc Force Close có thể đóng giao dịch sớm hơn.

5.10. Force Close cuối phiên

Theo mặc định:

Force Close = 14:45.

Khi một cây nến mở trước 14:45 và đóng tại hoặc sau 14:45, chiến lược xác định Force Close Bar.

Bot thực hiện:

  • Hủy Long Armed.
  • Hủy Short Armed.
  • Xóa các chỉ số nến tạo Armed.
  • Yêu cầu đóng toàn bộ vị thế nếu đang có lệnh.

Mã nguồn sử dụng:

strategy.close_all(immediately=true)

Thời điểm khớp mô phỏng phụ thuộc vào dữ liệu và khung thời gian được sử dụng.

5.11. Tổng hợp các phương pháp thoát lệnh

Phương phápMặc địnhCơ chế
Structural Stop LossBậtHigh/Low 5 nến + ATR Buffer
Take ProfitBật2R
Range Filter Flip ExitTắtRF đổi sang hướng đối lập
Break EvenTắtKích hoạt tại 1,25R
Time ExitBật90 nến
Force CloseBật14:45

CNPS 38 không có Trailing Stop độc lập theo Range Filter đang di chuyển.

Sau khi vị thế được xác lập, Stop Loss ban đầu được giữ theo giá cấu trúc đã lưu, trừ khi Break Even được kích hoạt.

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

Bước 1: Mở biểu đồ

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.

CNPS 38 được xây dựng dựa trên dữ liệu khung thời gian hiện tại.

Các tham số như:

  • Sampling Period.
  • HA Smoothing.
  • SMI Length.
  • Arm Life.
  • Stop Lookback.
  • Cooldown.
  • Maximum Bars In Trade.

đều chịu ảnh hưởng của khung thời gian biểu đồ.

Vì vậy, thay đổi từ M1 sang M5 có thể làm thay đổi số lượng Agreement Transition, thời điểm Pullback và kết quả giao dịch.

Bước 2: Thêm mã nguồn vào Pine Editor

Nếu sử dụng mã nguồn Pine Script:

  1. Mở TradingView.
  2. Chọn Pine Editor.
  3. Tạo một Strategy mới.
  4. Dán mã nguồn CNPS38 V2 RF-HA PULLBACK.
  5. Lưu mã nguồn.
  6. Chọn Add to chart.
  7. Kiểm tra các đường Range Filter.
  8. Mở Strategy Tester.

Tên chiến lược:

CNPS38 V2 RF-HA PULLBACK

Tên rút gọn:

CNPS38 V2 RFHA

Phiên bản Pine Script:

//@version=6

Bước 3: Cấu hình Range Filter và Smoothed HA

Thông sốMặc định
Range Sampling Period50
Range Multiplier2,0
HA Pre-Smooth Length6
HA Post-Smooth Length8
Require Closed HTF HA AgreementTắt
Higher Timeframe15 phút

Range Sampling Period và Range Multiplier quyết định mức độ phản ứng của đường Range Filter với biến động giá.

Các tham số Smoothed HA quyết định mức độ làm mượt trước và sau khi tính nến Heikin-Ashi.

Người dùng có thể kiểm thử các nhóm thông số khác nhau, nhưng không nên thay đổi tất cả cùng lúc nếu muốn xác định yếu tố nào đang ảnh hưởng đến kết quả.

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

Thông sốMặc định
Maximum Bars To Wait For Pullback12
Range Filter Touch Tolerance x ATR0,20
Require RF + HA Agreement At EntryBật
Require Directional CandleBật
Minimum Body Ratio0,40
Require Previous High/Low BreakTắt

Đây là nhóm thông số quan trọng nhất đối với thời điểm Entry.

Nếu tăng Pullback Tolerance, điều kiện Touch có thể dễ đáp ứng hơn.

Nếu giảm dung sai, bot yêu cầu giá đến gần Range Filter hơn.

Tuy nhiên, vì điều kiện Touch trong source là một phía, cần kiểm tra kỹ những trường hợp cây nến xuyên sâu qua Range Filter nhưng đóng cửa trở lại đúng phía.

Bước 5: Cấu hình SMI và ADX

SMI Settings

Thông sốMặc định
Use SMI Anti-ChaseBật
SMI Length8
SMI Smooth 13
SMI Smooth 23
SMI Limit55

ADX Settings

Thông sốMặc định
Use ADX FilterTắt
ADX Length14
Minimum ADX18
Require DI DirectionBật

SMI Anti-Chase và ADX/DI thực hiện hai nhiệm vụ khác nhau.

SMI giới hạn một số trạng thái giá đã mở rộng.

ADX/DI, nếu được bật, kiểm tra sức mạnh xu hướng và hướng vận động của DI.

Không nên xem chúng là hai bộ lọc có thể thay thế hoàn toàn cho nhau.

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

Thông sốMặc định
ATR Length14
Structure Stop Lookback5
Stop Buffer x ATR0,10
Minimum Risk Points2,5
Maximum Risk Points7
Take Profit R2,0
Exit On Range Filter FlipTắt
Use Break EvenTắt
Break Even Trigger1,25R
Break Even Offset0,5 điểm
Maximum Bars In Trade90

Nhà đầu tư cần chú ý rằng Risk Filter được tính từ Close của nến tín hiệu.

Sau khi lệnh khớp, Initial Risk được tính lại từ giá Entry thực tế và Structural Stop đã lưu.

Điều này có thể khiến khoảng Risk thực tế thay đổi.

Bước 7: Cấu hình thời gian và giới hạn giao dịch

Thông sốMặc định
TimezoneAsia/Ho_Chi_Minh
Morning Start09:05
Morning End11:20
Afternoon Start13:05
Last Entry14:20
Force Close14:45
Trade DirectionBoth
Maximum Trades Per Day2
Cooldown Bars After Exit8

Bot xác định Entry Session bằng thời điểm mở nến.

Đồng thời, thời điểm đóng nến phải trước Force Close.

Vì vậy, khi kiểm thử trên M1, M5 hoặc khung thời gian khác, cần chú ý cách các nến giao với những ranh giới phiên.

Bước 8: Hiển thị các thành phần trên biểu đồ

CNPS 38 hỗ trợ:

Thành phầnHiển thị
Range Filter tăngĐường xanh
Range Filter giảmĐường đỏ
Range Filter chưa có hướngĐường xám
Upper/Lower Range BandsĐường mảnh
Long ArmedDấu tròn xanh, chữ A
Short ArmedDấu tròn đỏ, chữ A
Long EntryTam giác xanh, chữ L
Short EntryTam giác đỏ, chữ S
Active Stop LossĐường đỏ
Active Take ProfitĐường xanh lá

Theo mặc định:

  • Show Range Filter: Bật.
  • Show Range Bands: Tắt.
  • Show Arm Markers: Tắt.
  • Show Entry Signals: Tắt.
  • Show Active SL/TP: Bật.
  • Show Diagnostics: Tắt.

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

  • Khung thời gian.
  • Range Filter Direction.
  • Smoothed HA Direction.
  • HTF HA Direction.
  • Armed State.
  • SMI.
  • ADX.
  • DI+/DI−.
  • Candle Body Ratio.
  • Prospective Long Risk.
  • Prospective Short Risk.
  • Arm Counts.
  • Raw Setup Counts.
  • Entry Counts.
  • Active Initial Risk.
  • Target R.
  • RF Flip Exit Status.
  • HTF Filter Status.
  • Trades Today.
  • Position.

Bảng này giúp phân biệt ba giai đoạn:

Armed: Range Filter và Smoothed HA vừa tạo Agreement Transition.

Raw Setup: Pullback, Reclaim, SMI và các điều kiện xác nhận kỹ thuật hợp lệ.

Final Entry: Raw Setup tiếp tục vượt Risk Filter và điều kiện quản trị giao dịch.

Bước 9: Đánh giá trong Strategy Tester

CNPS 38 được xây dựng dưới dạng TradingView Strategy nên có thể sử dụng Strategy Tester để kiểm thử lịch sử.

Các chỉ số quan trọng gồm:

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

Những nhóm thử nghiệm nên được thực hiện gồm:

Thử nghiệm 1: Range Filter 50/2,0 với cấu hình mặc định.

Thử nghiệm 2: Thay đổi Sampling Period của Range Filter.

Thử nghiệm 3: Thay đổi Range Multiplier.

Thử nghiệm 4: Smoothed HA 6/8 so với các bộ thông số khác.

Thử nghiệm 5: Bật HTF HA Agreement 15 phút.

Thử nghiệm 6: Bật và tắt SMI Anti-Chase.

Thử nghiệm 7: Thay đổi SMI Limit 55.

Thử nghiệm 8: Bật ADX Filter với ngưỡng 18.

Thử nghiệm 9: Thay đổi Arm Life 12 nến.

Thử nghiệm 10: Thay đổi Pullback Tolerance.

Thử nghiệm 11: Bật Previous High/Low Break.

Thử nghiệm 12: Bật Range Filter Flip Exit.

Thử nghiệm 13: Bật Break Even 1,25R.

Thử nghiệm 14: Thay đổi Structure Stop Lookback và Risk Filter.

Theo mã nguồn mặc định:

  • Initial Capital: 100.000.000 VNĐ.
  • Khối lượng: 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.

Những thông số này phục vụ kiểm thử mô phỏng và không tái hiện đầy đủ chi phí, yêu cầu ký quỹ hay điều kiện khớp lệnh thực tế.

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

CNPS 38 hỗ trợ cảnh báo giao dịch thông qua Order Fill Events trên TradingView.

Để thiết lập:

  1. Mở biểu đồ có chiến lược CNPS38 V2 RF-HA PULLBACK.
  2. Chọn Create Alert.
  3. Trong Condition, chọn chiến lược CNPS38.
  4. Chọn cảnh báo dựa trên Order Fills.
  5. Trong Message, sử dụng {{strategy.order.alert_message}}.
  6. Chọn phương thức nhận thông báo và lưu.

7.1. Cảnh báo Entry

Thông điệpÝ nghĩa
ENTRY_LONG_CNPS38_V2Mở Long sau Pullback Confirmation
ENTRY_SHORT_CNPS38_V2Mở Short sau Pullback Confirmation

Hai thông điệp Entry chỉ xuất hiện khi chiến lược tạo lệnh thực tế.

Agreement Transition hoặc Armed Setup không tự động phát Order Fill Alert riêng vì chưa có giao dịch.

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

Thông điệpÝ nghĩa
EXIT_LONG_TP_CNPS38_V2Long đóng theo TP
EXIT_LONG_SL_CNPS38_V2Long đóng theo SL
EXIT_SHORT_TP_CNPS38_V2Short đóng theo TP
EXIT_SHORT_SL_CNPS38_V2Short đóng theo SL

CNPS 38 sử dụng strategy.exit() với Stop Loss và Take Profit.

Các thông điệp này được gắn vào những sự kiện khớp lệnh thoát tương ứng.

7.3. Cảnh báo Break Even

Thông điệpÝ nghĩa
EXIT_LONG_BE_CNPS38_V2Long đóng theo Stop Loss sau Break Even
EXIT_SHORT_BE_CNPS38_V2Short đóng theo Stop Loss sau Break Even

Khi Break Even được kích hoạt, thông điệp Stop Loss được thay đổi thành nhóm BE.

Tuy nhiên, mã cảnh báo BE không được phát riêng tại thời điểm Stop Loss vừa được điều chỉnh.

Thông điệp chỉ được sử dụng khi lệnh thoát tương ứng khớp.

7.4. Cảnh báo Range Filter Flip Exit

Thông điệpÝ nghĩa
RF_FLIP_EXIT_LONG_CNPS38_V2Đóng Long khi RF chuyển Bearish
RF_FLIP_EXIT_SHORT_CNPS38_V2Đóng Short khi RF chuyển Bullish

Hai cảnh báo chỉ có thể xuất hiện khi Range Filter Flip Exit được bật và lệnh đóng tương ứng được thực thi.

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

7.5. Cảnh báo Time Exit và Session End

Thông điệpÝ nghĩa
TIME_EXIT_CNPS38_V2Đóng vị thế theo giới hạn số nến
SESSION_END_CNPS38_V2Đóng toàn bộ vị thế cuối phiên

Time Exit mặc định sử dụng giới hạn 90 nến.

Session End được kích hoạt khi chiến lược phát hiện cây nến đi qua mốc Force Close 14:45.

7.6. Disable SL/TP Alerts

CNPS 38 có tham số:

Disable SL/TP Alerts.

Mặc định đang tắt.

Khi bật, chiến lược vô hiệu hóa cảnh báo từ các lệnh strategy.exit() dành cho Stop Loss và Take Profit.

Tuy nhiên, tham số này không tự động vô hiệu hóa toàn bộ thông điệp từ strategy.close() hoặc strategy.close_all().

Vì vậy, các thông báo RF Flip Exit, Time Exit và Session End vẫn cần được xử lý riêng trong hệ thống nhận tín hiệu.

7.7. Những lưu ý khi tích hợp Webhook

Thông điệp mặc định của CNPS 38 giúp phân biệt:

  • Mở Long.
  • Mở Short.
  • Đóng theo TP.
  • Đóng theo SL.
  • Đóng theo Break Even.
  • Đóng theo Range Filter Flip.
  • Đóng theo Time Exit.
  • Đóng cuối phiên.

Tuy nhiên, các chuỗi cảnh báo hiện tại chưa chứa đầy đủ:

  • Giá Entry.
  • Giá Stop Loss.
  • Giá Take Profit.
  • Khối lượng thực tế đã khớp.
  • Khung thời gian.
  • Thời điểm phát tín hiệu.
  • Trạng thái HTF Filter.

Nếu kết nối TradingView với hệ thống Webhook hoặc giao dịch tự động, cần bổ sung dữ liệu phù hợp thông qua Placeholder hoặc chỉnh sửa mã nguồn.

Đặc biệt, cần phân biệt việc TradingView phát một Order Fill Alert với việc lệnh đã được khớp thực tế tại công ty chứng khoán.

Kết luận

CNPS 38 V2 RF-HA PULLBACK là chiến lược giao dịch phái sinh kết hợp Range Filter, Smoothed Heikin-Ashi và hệ thống xác nhận Pullback nhằm tìm kiếm điểm vào lệnh sau khi xu hướng đã được nhận diện.

Điểm nổi bật của chiến lược nằm ở việc tách biệt thời điểm xuất hiện sự đồng thuận xu hướng và thời điểm mở vị thế.

Khi Range Filter và Smoothed HA bắt đầu đồng thuận, bot không lập tức giao dịch.

Thay vào đó, chiến lược kích hoạt Armed Setup và chờ tối đa 12 nến để thị trường điều chỉnh về đường Range Filter.

Sau khi giá chạm vùng tham chiếu và đóng cửa trở lại đúng phía Range Filter, bot tiếp tục kiểm tra trạng thái Agreement, SMI Anti-Chase, chất lượng nến, ADX/DI nếu được bật và khoảng Risk cấu trúc.

Theo cấu hình mặc định, CNPS 38 sử dụng Range Filter 50/2,0, Smoothed HA 6/8, SMI Limit ±55 và Pullback Tolerance 0,20 ATR.

Về quản trị vị thế, bot sử dụng Structural Stop Loss theo High/Low 5 nến kết hợp ATR Buffer, giới hạn Risk dự kiến từ 2,5 đến 7 điểm và đặt Take Profit theo Reward/Risk 2R.

Chiến lược mặc định giới hạn 2 giao dịch/ngày, Cooldown 8 nến và Time Exit sau tối đa 90 nến.

Ngoài ra, người dùng có thể kích hoạt xác nhận HTF HA 15 phút, bộ lọc ADX/DI, Break Even hoặc Range Filter Flip Exit để kiểm thử những phương án giao dịch khác nhau.

Tuy nhiên, việc chờ Pullback không đảm bảo chiến lược sẽ luôn có điểm vào lệnh tốt hơn so với Entry trực tiếp tại Agreement Transition. Trong những xu hướng mạnh, thị trường có thể tiếp tục tăng hoặc giảm mà không quay lại Range Filter trong thời hạn chờ.

Ngược lại, một nhịp Pullback có thể trở thành sự đảo chiều xu hướng thay vì chỉ là điều chỉnh tạm thời.

Vì vậy, khi sử dụng CNPS 38, điều quan trọng là hiểu rõ cơ chế Range Filter, cách Smoothed HA xác nhận xu hướng, sự khác biệt giữa Agreement Transition và Final Entry, vai trò của SMI Anti-Chase và phương pháp xác định Stop Loss cấu trúc.

Người dùng nên kiểm thử chiến lược trên TradingView Strategy Tester, so sánh tác động của các tham số Range Filter, HA Smoothing, SMI, HTF Agreement và Risk Management trước khi cân nhắc triển khai tự độ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 phân tích kỹ thuật và phương pháp giao dịch trên TradingView.

Lưu ý: Nội dung 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 đảm bảo 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