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

Hướng Dẫn Sử Dụng Bot CNPS33-OPENING cho VN30F1M

Hướng dẫn Bot CNPS 33 Opening Range Double Breakout: giao dịch phá vỡ hai lần, xác định Range 09:00–09:05, SL theo biên Range và TP 2,247R.

Double Breakout Trading Bot Strategy
Double Breakout Trading Bot Strategy
Mục lục
Mục lục

Trong giao dịch chứng khoán phái sinh, những phút đầu tiên của phiên giao dịch thường thu hút sự chú ý của nhiều nhà đầu tư bởi đây là thời điểm thị trường bắt đầu hình thành vùng giá tham chiếu và phản ánh sự thay đổi trong cung cầu sau thời gian đóng cửa.

Một trong những phương pháp được sử dụng để giao dịch giai đoạn này là Opening Range Breakout (ORB) – chiến lược xác định vùng giá cao nhất và thấp nhất trong khoảng thời gian đầu phiên, sau đó tìm kiếm cơ hội khi giá phá vỡ vùng này.

Tuy nhiên, không phải mọi cú phá vỡ Opening Range đều dẫn đến một xu hướng rõ ràng. Trong nhiều trường hợp, giá có thể vượt khỏi biên Range nhưng nhanh chóng đảo chiều, khiến nhà đầu tư gặp phải các tín hiệu Breakout thất bại.

Để bổ sung một bước xác nhận, nhà giao dịch có thể sử dụng phương pháp Double Breakout, trong đó thị trường phải hoàn thành hai sự kiện phá vỡ liên tiếp trước khi một vị thế được mở.

CNPS 33 OPENING RANGE DOUBLE BREAKOUT là chiến lược giao dịch được phát triển bằng Pine Script v6 trên TradingView, sử dụng Opening Range cố định đầu phiên kết hợp cơ chế hai lần phá vỡ để xác định tín hiệu Long hoặc Short.

Điểm nổi bật của CNPS 33 nằm ở việc bot không vào lệnh ngay khi giá đóng cửa vượt khỏi vùng Opening Range.

Thay vào đó, chiến lược triển khai hai giai đoạn:

  • First Breakout: Giá đóng cửa vượt Range High hoặc phá xuống dưới Range Low. Bot lưu lại High hoặc Low của chính cây nến Breakout đầu tiên.
  • Second Breakout: Ở một cây nến sau đó, giá tiếp tục đóng cửa vượt qua cực trị đã lưu. Khi đó, bot mới xem xét mở vị thế theo hướng phá vỡ.

Ví dụ, khi giá vượt Range High tại 1.900 điểm, bot ghi nhận cây nến First Breakout có High bằng 1.905 điểm.

Chiến lược chưa mở Long tại thời điểm này.

Chỉ khi một cây nến tiếp theo đóng cửa cao hơn 1.905 điểm, tín hiệu Second Bullish Breakout mới được xác nhận.

Nếu các điều kiện giao dịch và quản trị rủi ro hợp lệ, bot có thể mở vị thế Long.

Với Short, quy trình tương tự nhưng sử dụng Range Low và Low của cây nến First Bearish Breakout.

Bên cạnh cơ chế tín hiệu, CNPS 33 còn hỗ trợ Stop Loss theo biên Opening Range, Take Profit theo hệ số Reward/Risk 2,247R có điều chỉnh Front-Run Buffer, tùy chọn Trailing Stop khi giá đạt mục tiêu và Break Even.

Vậy CNPS 33 hoạt động như thế nào, sự khác biệt giữa First Breakout và Second Breakout là gì, cách tính Stop Loss/Take Profit ra sao và nhà đầu tư cần lưu ý những gì khi sử dụng?

1. CNPS 33 Opening Range Double Breakout là gì?

CNPS 33 Opening Range Double Breakout 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 theo phương pháp phá vỡ vùng giá mở cửa với hai giai đoạn xác nhận.

Chiến lược sử dụng ba thành phần chính:

Thứ nhất: Fixed Opening Range Detection.

Bot xác định Range High và Range Low trong khoảng thời gian đầu phiên đã thiết lập.

Theo cấu hình mặc định, vùng giá được tính từ 09:00 đến 09:05 theo múi giờ Asia/Ho_Chi_Minh.

Sau khi hoàn thành, hai mức giá được cố định làm tham chiếu cho những tín hiệu trong phần còn lại của ngày giao dịch.

Thứ hai: Double Breakout Confirmation.

Chiến lược yêu cầu hai lần phá vỡ liên tiếp theo cùng một hướng.

First Breakout chỉ dùng để ghi nhận mức High hoặc Low của cây nến tạo sự kiện.

Second Breakout xảy ra khi một cây nến sau đó đóng cửa vượt mức đã lưu.

Thứ ba: Range-Based Risk Management.

Khi xuất hiện Second Breakout hợp lệ, bot tính Stop Loss theo biên đối diện của Opening Range.

Với Long, Stop Loss được đặt tại Range Low, có thể trừ thêm Buffer.

Với Short, Stop Loss được đặt tại Range High, có thể cộng thêm Buffer.

Take Profit được xác định dựa trên khoảng rủi ro của vị thế nhân với hệ số Reward/Risk.

Quy trình hoạt động tổng quát:

Opening Range → First Breakout → Lưu cực trị nến Breakout → Second Breakout → Entry → SL/TP.

Ví dụ, giả sử Opening Range đầu phiên của VN30F1M được hình thành với:

  • Range High: 1.900 điểm.
  • Range Low: 1.890 điểm.

Sau khi kết thúc giai đoạn xây dựng Range, giá đóng cửa vượt 1.900 điểm.

Bot xác định đây là First Bullish Breakout.

Giả sử cây nến này có High bằng 1.904 điểm.

Chiến lược lưu mức 1.904 làm ngưỡng xác nhận thứ hai.

Nếu ở một cây nến tiếp theo, giá đóng cửa vượt 1.904 điểm, bot ghi nhận Second Bullish Breakout.

Khi đó, chiến lược có thể mở Long nếu điều kiện thời gian, trạng thái vị thế, số lần giao dịch và rủi ro đều hợp lệ.

Điểm đáng chú ý là CNPS 33 không yêu cầu giá quay lại Retest Range High trước khi mở Long.

Tín hiệu thứ hai chỉ cần một cây nến sau đó đóng cửa vượt High của cây nến First Breakout.

Tương tự, với Short, bot yêu cầu giá đóng cửa phá xuống dưới Low của cây nến First Bearish Breakout.

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

  • Opening Range: 09:00–09:05.
  • Giao dịch cả Long và Short.
  • Maximum Trades Per Day: 3.
  • Skip First Valid Setups: 0.
  • Cooldown After Exit: 0 nến.
  • Exit Mode: Source Range RR.
  • Stop Buffer: 0 điểm.
  • Reward/Risk: 2,247.
  • TP Front-Run Buffer: 0,8 điểm.
  • TP Extension Trailing: Tắt.
  • Break Even: Tắt.
  • Fixed SL/TP tùy chọn: 5/15 điểm.
  • Khối lượng: 3 hợp đồng.

Source Code CNPS 33: CNPS33

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

2.1. Opening Range – Vùng giá mở cửa

Opening Range là vùng giá được xác định từ giá cao nhất và thấp nhất trong một khoảng thời gian đầu phiên.

Hai mức giá quan trọng là:

Opening Range High: Giá cao nhất trong cửa sổ Opening Range.

Opening Range Low: Giá thấp nhất trong cửa sổ Opening Range.

Công thức:

Range High = Highest High trong cửa sổ mở cửa.

Range Low = Lowest Low trong cửa sổ mở cửa.

Ví dụ, nếu trong khoảng 09:00–09:05, VN30F1M có:

  • High cao nhất: 1.905 điểm.
  • Low thấp nhất: 1.895 điểm.

Khi đó:

Opening Range High = 1.905.

Opening Range Low = 1.895.

Chiều cao vùng:

Range Height = 1.905 − 1.895 = 10 điểm.

Trong CNPS 33, Opening Range được xây dựng một lần mỗi ngày giao dịch.

Sau khi cửa sổ thời gian kết thúc, Range High và Range Low được sử dụng làm các mức tham chiếu cố định.

Chiến lược không tiếp tục nâng Range High hoặc hạ Range Low theo những chuyển động giá xuất hiện sau đó.

2.2. Opening Range trên M1 và M5

Theo mã nguồn, CNPS 33 sử dụng dữ liệu của khung thời gian biểu đồ hiện tại.

Với cấu hình mặc định 09:00–09:05:

Trên M1:

Bot tích lũy dữ liệu của 5 cây nến một phút có thời điểm mở từ 09:00 đến trước 09:05.

Range High là High cao nhất của năm cây nến này.

Range Low là Low thấp nhất của năm cây nến.

Trên M5:

Bot sử dụng cây nến mở lúc 09:00 và đóng lúc 09:05.

High và Low của cây nến này chính là hai biên Opening Range.

Một điểm quan trọng là CNPS 33 không sử dụng dữ liệu khung thời gian nhỏ hơn thông qua một hàm riêng.

Do đó, nếu sử dụng M15, cây nến mở lúc 09:00 có thể bao gồm dữ liệu đến 09:15.

Khi đó, Opening Range thực tế không còn tương ứng chính xác với 5 phút đầu phiên.

Vì vậy, M1 hoặc M5 là những khung thời gian phù hợp về mặt cấu trúc dữ liệu với cấu hình Opening Range mặc định.

Tuy nhiên, điều này không đồng nghĩa hiệu quả giao dịch trên M1 hoặc M5 đã được bảo đảm.

2.3. First Breakout – Lần phá vỡ đầu tiên

First Breakout là sự kiện đầu tiên xảy ra sau khi Opening Range được hoàn thành.

CNPS 33 có hai loại:

First Bullish Breakout:

Giá đóng cửa lớn hơn Range High.

First Bearish Breakout:

Giá đóng cửa nhỏ hơn Range Low.

Điểm quan trọng nhất:

First Breakout không tạo lệnh giao dịch.

Khi xuất hiện First Bullish Breakout, bot lưu:

  • High của nến Breakout.
  • Chỉ số cây nến Breakout.
  • Trạng thái đang chờ Second Long Breakout.

Khi xuất hiện First Bearish Breakout, bot lưu:

  • Low của nến Breakout.
  • Chỉ số cây nến Breakout.
  • Trạng thái đang chờ Second Short Breakout.

Ví dụ:

  • Opening Range High = 1.900.
  • Giá đóng cửa nến hiện tại = 1.902.
  • High nến hiện tại = 1.905.

Bot ghi nhận First Bullish Breakout vì Close > 1.900.

Tuy nhiên, ngưỡng xác nhận thứ hai không phải 1.900 hay 1.902.

Bot sử dụng:

Second Breakout Level = 1.905 điểm.

Đây là sự khác biệt quan trọng giữa CNPS 33 và một chiến lược Opening Range Breakout thông thường.

2.4. Armed Setup – Trạng thái chờ phá vỡ lần hai

Sau First Breakout, CNPS 33 chuyển sang trạng thái Armed.

Nếu First Breakout theo hướng tăng:

WAIT 2ND LONG.

Nếu First Breakout theo hướng giảm:

WAIT 2ND SHORT.

Trong thời gian này, chiến lược không tiếp tục tìm First Breakout mới.

Bot chỉ theo dõi điều kiện phá cực trị của nến First Breakout theo hướng đã xác định.

Ví dụ, sau First Bullish Breakout tại High 1.905, giá có thể giảm xuống 1.898 hoặc 1.895.

Theo mã nguồn hiện tại, thiết lập Long Armed không tự động bị hủy chỉ vì giá quay xuống dưới Range High hoặc Range Low.

Bot tiếp tục chờ một cây nến sau đó đóng cửa trên 1.905, cho đến khi thiết lập hết thời gian hoặc được xử lý bởi những điều kiện khác.

Điều này có nghĩa CNPS 33 không có cơ chế hủy Armed Setup độc lập khi giá di chuyển ngược hướng.

Đồng thời, nếu trong lúc chờ Long, giá phá xuống dưới Range Low, chiến lược không tự động chuyển ngay sang Short Armed.

Hướng thiết lập chỉ được xác định lại sau khi trạng thái hiện tại được đặt lại.

2.5. Second Breakout – Lần phá vỡ xác nhận

Second Breakout là tín hiệu giao dịch chính của CNPS 33.

Second Bullish Breakout:

Close hiện tại > High của nến First Bullish Breakout.

Second Bearish Breakout:

Close hiện tại < Low của nến First Bearish Breakout.

Ngoài điều kiện về giá, bot yêu cầu Second Breakout xuất hiện trên một cây nến sau First Breakout.

Điều kiện trong mã nguồn:

bar_index > firstBreakoutBar

Do đó, nến First Breakout không thể đồng thời là nến Second Breakout của chính thiết lập đó.

Ví dụ:

  • Range High = 1.900.
  • First Breakout Close = 1.902.
  • First Breakout High = 1.905.

Một cây nến sau đó đóng cửa tại 1.906.

Vì:

1.906 > 1.905

Second Bullish Breakout được xác nhận.

Nếu những điều kiện giao dịch khác phù hợp, bot có thể mở Long.

Điểm đáng chú ý là chiến lược sử dụng Close của nến xác nhận, không chỉ High vượt ngưỡng.

Nếu giá có High đạt 1.908 nhưng đóng cửa tại 1.904, Second Bullish Breakout không được xác nhận.

2.6. Double Breakout khác Breakout Retest như thế nào?

Mặc dù đều sử dụng bước xác nhận sau phá vỡ, Double Breakout và Breakout Retest là hai phương pháp khác nhau.

Breakout Retest:

Giá phá vùng → quay lại kiểm tra vùng vừa phá → xác nhận tiếp diễn → Entry.

Double Breakout:

Giá phá vùng → lưu cực trị nến phá vùng → giá tiếp tục đóng cửa vượt cực trị đó → Entry.

Trong CNPS 33, không có điều kiện bắt buộc giá phải quay lại Range High hoặc Range Low.

Điều kiện giao dịch tập trung vào việc giá tiếp tục hình thành một mức đóng cửa mới vượt cực trị của cây nến Breakout đầu tiên.

Do đó, CNPS 33 có thể giao dịch trong những nhịp giá tăng hoặc giảm liên tục mà không cần xuất hiện Retest.

Tuy nhiên, điều kiện này cũng có thể khiến điểm vào lệnh nằm tương đối xa Opening Range.

Đây là yếu tố cần được xem xét khi sử dụng Stop Loss theo biên đối diện của Range.

2.7. Skip First Valid Setups – Bỏ qua các thiết lập đầu tiên

CNPS 33 có một tính năng đặc biệt:

Skip First Valid Setups.

Mặc định:

Skip First Valid Setups = 0.

Người dùng có thể lựa chọn:

  • 0: Không bỏ qua thiết lập nào.
  • 1: Bỏ qua thiết lập Second Breakout đầu tiên.
  • 2: Bỏ qua hai thiết lập Second Breakout đầu tiên.

Ví dụ, nếu chọn Skip = 1:

Sau khi First Breakout và Second Breakout đầu tiên được xác nhận, bot không mở vị thế.

Thay vào đó, chiến lược:

  • Tăng bộ đếm Skipped.
  • Xóa trạng thái Second Breakout đang chờ.
  • Quay lại tìm First Breakout mới.

Khi xuất hiện một chu kỳ Double Breakout tiếp theo, bot có thể giao dịch nếu các điều kiện khác hợp lệ.

Một điểm kỹ thuật quan trọng là bộ đếm Skip được xử lý trước bộ lọc Range Risk.

Vì vậy, tên gọi Valid Setups trong Settings không đồng nghĩa thiết lập đã vượt qua toàn bộ bộ lọc rủi ro và điều kiện Entry.

Trong mã nguồn, một Second Breakout có thể bị tính là Skipped ngay cả khi khoảng rủi ro của nó chưa được kiểm tra là hợp lệ.

2.8. Source Range Stop Loss – Stop Loss theo Opening Range

Khác với những chiến lược đặt Stop Loss theo một khoảng điểm cố định, CNPS 33 hỗ trợ đặt Stop Loss tại biên đối diện của Opening Range.

Với Long:

SL = Range Low − Stop Buffer.

Với Short:

SL = Range High + Stop Buffer.

Mặc định:

Stop Buffer = 0 điểm.

Ví dụ:

  • Range High = 1.900.
  • Range Low = 1.890.
  • Long Entry = 1.905.

Khi đó:

Stop Loss = 1.890.

Khoảng rủi ro ban đầu:

Risk = 1.905 − 1.890 = 15 điểm.

Điều này có nghĩa Stop Loss có thể cách xa điểm vào lệnh đáng kể, đặc biệt nếu giá đã di chuyển mạnh trong quá trình hình thành hai lần Breakout.

Vì vậy, chiến lược còn cung cấp các bộ lọc Minimum Risk và Maximum Risk để người dùng kiểm soát khoảng rủi ro trước khi giao dịch.

2.9. Reward/Risk 2,247R – Mục tiêu lợi nhuận

CNPS 33 sử dụng hệ số Reward/Risk mặc định:

Source Reward/Risk = 2,247.

Khi sử dụng Source Range RR, Take Profit được tính từ khoảng rủi ro thực tế sau khi lệnh được khớp.

Với Long:

TP = Entry Price + Initial Risk × 2,247 − Front-Run Buffer.

Với Short:

TP = Entry Price − Initial Risk × 2,247 + Front-Run Buffer.

Mặc định:

TP Front-Run Buffer = 0,8 điểm.

Điều này có nghĩa mục tiêu Take Profit được đặt gần hơn giá Entry một khoảng 0,8 điểm so với mức 2,247R lý thuyết.

Ví dụ:

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

Mục tiêu 2,247R lý thuyết:

1.900 + 10 × 2,247 = 1.922,47.

Sau khi trừ Front-Run Buffer:

TP = 1.921,67 điểm.

Tỷ lệ Reward/Risk thực tế theo mức TP đã điều chỉnh sẽ thấp hơn 2,247R.

Ngoài ra, mức giá thực thi còn phải tuân theo bước giá của hợp đồng tương lai và cơ chế xử lý lệnh.

2.10. Front-Run Buffer – Khoảng đệm trước mục tiêu

Front-Run Buffer là một khoảng điều chỉnh nhằm đặt Take Profit trước mức mục tiêu danh nghĩa.

Với Long, chiến lược trừ Buffer khỏi Take Profit.

Với Short, bot cộng Buffer vào Take Profit.

Theo cấu hình mặc định, Buffer bằng 0,8 điểm.

Một điểm đáng chú ý là Front-Run Buffer là số điểm cố định, không phải 0,8R hoặc 0,8 ATR.

Do đó, mức ảnh hưởng của Buffer đến Reward/Risk sẽ thay đổi theo khoảng rủi ro của từng giao dịch.

Ví dụ, với Risk 5 điểm, Buffer 0,8 chiếm 0,16R.

Trong khi đó, với Risk 20 điểm, Buffer 0,8 chỉ chiếm 0,04R.

Vì vậy, tỷ lệ Reward/Risk cuối cùng có thể khác nhau giữa các giao dịch dù hệ số Source Reward/Risk đều được đặt là 2,247.

Nếu Buffer khiến mục tiêu Take Profit nằm sai phía giá vào lệnh, mã nguồn có cơ chế dự phòng sử dụng lại mức Take Profit chưa trừ hoặc cộng Buffer.

3. Nguyên lý hoạt động của CNPS 33 Opening Range Double Breakout

CNPS 33 hoạt động theo quy trình:

Build Opening Range → First Breakout → Armed Setup → Second Breakout → Risk Validation → Entry → Position Management.

Bước 1: Xác định ngày giao dịch hợp lệ

Đầu tiên, bot kiểm tra ngày trong tuần theo múi giờ Asia/Ho_Chi_Minh.

Theo cấu hình mặc định, cả năm ngày từ thứ Hai đến thứ Sáu đều được cho phép.

Người dùng có thể tắt riêng từng ngày.

Nếu một ngày bị vô hiệu hóa, bot không xây dựng Opening Range mới từ dữ liệu ngày đó và không phát sinh thiết lập giao dịch mới.

Bước 2: Xây dựng Opening Range

Khi thời gian bước vào cửa sổ 09:00–09:05, chiến lược bắt đầu thu thập High và Low.

Tại cây nến đầu tiên:

  • Range High = High của nến.
  • Range Low = Low của nến.

Ở những cây nến tiếp theo nằm trong cửa sổ:

  • Range High được cập nhật bằng giá trị High lớn nhất.
  • Range Low được cập nhật bằng giá trị Low nhỏ nhất.

Khi cửa sổ kết thúc, bot khóa hai mức Range.

Sau đó:

Range Ready = True.

Looking For First Breakout = True.

Chiến lược bắt đầu tìm kiếm sự kiện phá vỡ đầu tiên.

Bước 3: Phát hiện First Breakout

Sau 09:05, bot theo dõi giá đóng cửa so với Range High và Range Low.

Nếu giá đóng cửa vượt Range High, đồng thời Long được cho phép, bot ghi nhận First Bullish Breakout.

Nếu giá đóng cửa thấp hơn Range Low và Short được cho phép, bot ghi nhận First Bearish Breakout.

First Breakout yêu cầu chiến lược đang Flat và chưa đạt giới hạn số lệnh trong ngày.

Khi sự kiện được ghi nhận, bot chuyển sang trạng thái chờ phá vỡ lần hai.

Bước 4: Lưu cực trị nến First Breakout

Với First Bullish Breakout:

First Breakout High = High của nến phá vùng.

Với First Bearish Breakout:

First Breakout Low = Low của nến phá vùng.

Bot cũng lưu chỉ số cây nến tạo First Breakout.

Những dữ liệu này không được cập nhật theo từng đỉnh hoặc đáy mới của các nến tiếp theo.

Vì vậy, ngưỡng Second Breakout được cố định từ cây nến First Breakout ban đầu.

Bước 5: Chờ Second Breakout

Khi Long Armed đang hoạt động, bot kiểm tra:

Close > First Breakout High.

Khi Short Armed đang hoạt động:

Close < First Breakout Low.

Second Breakout phải xuất hiện sau cây nến đầu tiên.

Nếu chưa đạt điều kiện, bot tiếp tục chờ.

Trong mã nguồn hiện tại không có giới hạn số nến riêng dành cho First Breakout Armed Setup, ngoài giới hạn thời gian giao dịch cuối phiên.

Điều này có nghĩa một First Breakout xuất hiện đầu phiên có thể tiếp tục được theo dõi trong thời gian dài nếu chưa có Second Breakout.

Bước 6: Xử lý Skip Setups

Khi xuất hiện Second Breakout, bot kiểm tra Skip First Valid Setups.

Nếu số thiết lập đã bỏ qua chưa đạt mức được cấu hình, bot đánh dấu thiết lập hiện tại là Skipped.

Sau đó, trạng thái được đặt lại để tìm First Breakout mới.

Nếu Skip đã hoàn tất hoặc bằng 0, chiến lược tiếp tục kiểm tra rủi ro.

Bước 7: Kiểm tra Range Risk

Trong Source Range RR, bot tính Stop Loss dự kiến theo biên Opening Range.

Với Long:

Risk = Close − (Range Low − Stop Buffer).

Với Short:

Risk = (Range High + Stop Buffer) − Close.

Risk phải lớn hơn một bước giá tối thiểu.

Nếu người dùng kích hoạt Minimum Risk hoặc Maximum Risk, khoảng rủi ro cũng phải đáp ứng những ngưỡng này.

Nếu bị từ chối vì Range Risk không hợp lệ, bot xóa thiết lập và quay lại tìm First Breakout mới.

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

Sau khi có Second Breakout và Risk hợp lệ, bot kiểm tra:

  • Chiến lược đang Flat.
  • Opening Range đã sẵn sàng.
  • Nằm trong thời gian Setup.
  • Chưa đạt Maximum Trades Per Day.
  • Cooldown đã kết thúc.
  • Hướng Long hoặc Short được phép.
  • Nến đã đóng cửa xác nhận.

Nếu tất cả điều kiện đạt yêu cầu, chiến lược phát sinh lệnh 3 hợp đồng.

Bước 9: Khởi tạo Stop Loss và Take Profit

Khi vị thế được khớp, bot ghi nhận:

  • Giá vào lệnh trung bình.
  • Stop Loss.
  • Initial Risk.
  • Take Profit.
  • Trạng thái Break Even.

Trong Source Range RR, Stop Loss sử dụng mức Range Stop đã lưu từ tín hiệu.

Take Profit được tính từ giá vào lệnh trung bình và Initial Risk sau khi khớp.

Trong Fixed Points, chiến lược sử dụng SL 5 điểm và TP 15 điểm.

Bước 10: Quản trị vị thế và tìm Setup mới

Sau khi vào lệnh, bot đặt lại trạng thái phát hiện Double Breakout về bước tìm First Breakout.

Tuy nhiên, lệnh mới chỉ có thể được mở khi chiến lược đã Flat và các điều kiện giao dịch cho phép.

Khi vị thế đóng, chiến lược ghi nhận thời điểm Exit để áp dụng Cooldown.

Nếu vẫn còn thời gian giao dịch và chưa đạt giới hạn 3 lệnh/ngày, bot có thể tiếp tục thực hiện một chu kỳ Double Breakout mới.

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

4.1. Điều kiện Long theo Double Bullish Breakout

Một tín hiệu Long được hình thành qua hai giai đoạn.

Giai đoạn 1: First Bullish Breakout.

Điều kiện gồm:

  1. Ngày giao dịch được cho phép.
  2. Opening Range đã hoàn thành.
  3. Chiến lược đang ở trạng thái tìm First Breakout.
  4. Không có vị thế đang mở.
  5. Chưa đạt Maximum Trades Per Day.
  6. Trade Direction cho phép Long.
  7. Giá đóng cửa lớn hơn Range High.
  8. Tín hiệu xuất hiện trong Setup Window.
  9. Nến đã đóng cửa.

Khi toàn bộ điều kiện hợp lệ, bot ghi nhận First Bullish Breakout.

Sau đó, chiến lược lưu High của nến này.

Giai đoạn 2: Second Bullish Breakout.

Điều kiện gồm:

  1. Long Armed đang hoạt động.
  2. First Breakout High hợp lệ.
  3. Nến hiện tại xuất hiện sau nến First Breakout.
  4. Close hiện tại lớn hơn First Breakout High.
  5. Tín hiệu xuất hiện trong Setup Window.
  6. Skip Setups không yêu cầu bỏ qua thiết lập hiện tại.
  7. Chiến lược đang Flat.
  8. Cooldown hợp lệ.
  9. Chưa vượt Maximum Trades Per Day.
  10. Range Risk hợp lệ nếu sử dụng Source Range RR.
  11. Nến đã đóng cửa xác nhận.

Khi toàn bộ điều kiện đáp ứng, bot mở Long với khối lượng mặc định 3 hợp đồng.

Ví dụ minh họa:

Opening Range:

  • Range High = 1.900.
  • Range Low = 1.890.

First Bullish Breakout:

  • Close = 1.902.
  • High = 1.905.

Bot lưu:

First Breakout High = 1.905.

Một cây nến sau:

  • High = 1.908.
  • Close = 1.906.

Vì Close vượt 1.905, Second Bullish Breakout được xác nhận.

Nếu Long Entry được khớp tại 1.906 điểm và Stop Buffer bằng 0:

Stop Loss = 1.890.

Initial Risk = 16 điểm.

Mục tiêu theo Source Range RR:

TP = 1.906 + 16 × 2,247 − 0,8.

TP = 1.941,152 điểm trước khi áp dụng bước giá.

Đây là ví dụ lý thuyết. Giá khớp thực tế trong Strategy Tester có thể khác giá đóng cửa tín hiệu.

4.2. Điều kiện Short theo Double Bearish Breakout

Với Short, chiến lược sử dụng quy trình tương ứng.

Giai đoạn 1: First Bearish Breakout.

Bot yêu cầu:

  1. Opening Range hợp lệ.
  2. Đang tìm First Breakout.
  3. Không có vị thế.
  4. Trade Direction cho phép Short.
  5. Close hiện tại thấp hơn Range Low.
  6. Thời gian và số lần giao dịch hợp lệ.
  7. Nến đã đóng cửa.

Sau đó, bot lưu:

First Breakout Low = Low của nến phá vùng.

Giai đoạn 2: Second Bearish Breakout.

Bot yêu cầu:

  1. Short Armed đang hoạt động.
  2. Nến hiện tại xuất hiện sau First Breakout.
  3. Close hiện tại thấp hơn First Breakout Low.
  4. Không bị bỏ qua theo Skip First Setups.
  5. Range Risk hợp lệ nếu dùng Source Range RR.
  6. Không có vị thế đang mở.
  7. Cooldown đã kết thúc.
  8. Chưa vượt giới hạn giao dịch.
  9. Thời gian giao dịch hợp lệ.
  10. Nến đã đóng cửa.

Khi toàn bộ điều kiện đáp ứng, bot mở Short 3 hợp đồng.

Ví dụ minh họa:

Opening Range:

  • Range High = 1.900.
  • Range Low = 1.890.

First Bearish Breakout:

  • Close = 1.888.
  • Low = 1.885.

Bot lưu:

First Breakout Low = 1.885.

Một cây nến sau đó đóng cửa tại 1.883.

Vì:

1.883 < 1.885

Second Bearish Breakout được xác nhận.

Nếu lệnh Short được khớp tại 1.883, Stop Loss mặc định theo Range là 1.900.

Khoảng rủi ro:

1.900 − 1.883 = 17 điểm.

Take Profit theo hệ số 2,247R, sau khi cộng Front-Run Buffer 0,8 điểm, sẽ được đặt phía dưới giá Entry.

4.3. Chỉ cần giá đóng cửa vượt cực trị nến đầu tiên

CNPS 33 không yêu cầu cây nến Second Breakout phải có thân lớn, Volume tăng hoặc đóng cửa gần High/Low.

Trong mã nguồn hiện tại không có các bộ lọc bắt buộc như:

  • Minimum Candle Body Ratio.
  • Relative Volume.
  • ADX.
  • RSI.
  • EMA Alignment.

Điều kiện xác nhận chính là giá đóng cửa vượt mức High hoặc Low của cây nến First Breakout.

Do đó, một cây nến có thân tương đối nhỏ vẫn có thể tạo Second Breakout nếu Close vượt ngưỡng.

Đây là đặc điểm khác biệt so với những bot sử dụng bộ lọc Momentum hoặc Candle Strength.

4.4. Second Breakout không có thời hạn riêng theo số nến

Sau First Breakout, bot tiếp tục giữ trạng thái chờ.

Ví dụ, First Bullish Breakout xuất hiện lúc 09:10.

Nếu đến 10:00 giá mới đóng cửa vượt High của nến First Breakout, tín hiệu Second Breakout vẫn có thể được chấp nhận nếu Setup chưa hết hạn và những điều kiện khác hợp lệ.

Mã nguồn không yêu cầu Second Breakout phải xuất hiện trong 3, 5 hoặc 10 nến.

Tuy nhiên, thiết lập không được duy trì vượt qua thời gian hết hạn Setup cuối phiên.

Điều này giúp chiến lược có thể nhận diện những lần phá vỡ thứ hai xảy ra muộn, nhưng cũng đồng nghĩa bot có thể chờ một mức giá đã hình thành từ khá lâu.

4.5. Không tự động đảo hướng khi Breakout thất bại

Giả sử Opening Range là 1.890–1.900.

Giá đóng cửa vượt 1.900 và tạo First Bullish Breakout.

Bot chuyển sang WAIT 2ND LONG.

Sau đó, giá quay đầu giảm xuống dưới 1.890.

Trong tình huống này, CNPS 33 không tự động xem cú phá xuống 1.890 là First Bearish Breakout mới.

Thay vào đó, bot vẫn đang theo dõi Second Bullish Breakout của thiết lập trước.

Điều này xảy ra vì chiến lược chỉ cho phép một trạng thái Armed tại một thời điểm.

Setup Long được xử lý hoặc hết hạn trước khi bot quay lại tìm một First Breakout mới theo hướng khác.

4.6. Cơ chế bỏ qua thiết lập

CNPS 33 cho phép bỏ qua tối đa hai lần Second Breakout đầu tiên bằng tham số Skip First Valid Setups.

Ví dụ:

Skip = 0: Xem xét giao dịch ngay từ Second Breakout đầu tiên.

Skip = 1: Không giao dịch Second Breakout đầu tiên, chờ chu kỳ tiếp theo.

Skip = 2: Bỏ qua hai Second Breakout đầu tiên.

Các thiết lập bị Skip không làm tăng bộ đếm Trades Today.

Tuy nhiên, chúng được ghi nhận trong Skipped Setups Today.

Một điểm quan trọng là chiến lược không lưu lại thiết lập đã Skip để mở lệnh ở những cây nến sau.

Sau khi Skip, bot đặt lại trạng thái tìm kiếm First Breakout.

4.7. Maximum Trades Per Day

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

Maximum Trades Per Day = 3.

Bot tăng bộ đếm khi gửi lệnh Entry Long hoặc Short.

Sau khi đạt 3 lần vào lệnh trong ngày, chiến lược không mở thêm giao dịch mới.

Điểm cần lưu ý là số lần Second Breakout xuất hiện không nhất thiết bằng số giao dịch thực tế.

Một Second Breakout có thể:

  • Bị Skip.
  • Bị từ chối bởi Range Risk Filter.
  • Không được giao dịch vì Cooldown.
  • Không được giao dịch vì giới hạn số lệnh.

Do đó, người dùng nên phân biệt giữa các bộ đếm First Breakout, Second Breakout, Skipped và Trades Today.

4.8. Cooldown sau thoát vị thế

Mặc định:

Cooldown Bars After Exit = 0.

Giá trị này có nghĩa bot không yêu cầu thêm nhiều nến nghỉ sau khi thoát vị thế.

Tuy nhiên, mã nguồn vẫn sử dụng điều kiện:

Current Bar Index − Last Exit Bar > 0.

Do đó, một lệnh mới không được chấp nhận ngay trên cây nến ghi nhận lần Exit trước.

Chiến lược cũng có thể phát hiện First Breakout khi đang trong thời gian Cooldown, bởi điều kiện First Breakout không trực tiếp sử dụng bộ lọc Cooldown.

Bộ lọc này được kiểm tra tại thời điểm chấp thuận Entry sau Second Breakout.

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

5.1. Exit Mode mặc định: Source Range RR

CNPS 33 sử dụng:

Exit Mode = Source Range RR.

Đây là chế độ Stop Loss theo Opening Range.

Với Long:

Stop Loss = Range Low − Stop Buffer.

Với Short:

Stop Loss = Range High + Stop Buffer.

Stop Buffer mặc định bằng 0.

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

Ví dụ:

  • Range High = 1.900.
  • Range Low = 1.890.
  • Long Entry = 1.905.

Khoảng rủi ro:

Initial Risk = 1.905 − 1.890 = 15 điểm.

Nếu Range High và Range Low cách nhau lớn, hoặc giá tiếp tục di chuyển mạnh trước Second Breakout, khoảng Stop Loss có thể rất rộng.

Đây là một trong những đặc điểm quan trọng nhất cần chú ý của CNPS 33.

5.2. Minimum và Maximum Range Risk

CNPS 33 hỗ trợ hai bộ lọc rủi ro:

Minimum Risk Points.

Maximum Risk Points.

Cả hai mặc định đều bằng 0, tức đang tắt.

Nếu người dùng đặt:

  • Minimum Risk = 3 điểm.
  • Maximum Risk = 10 điểm.

Chiến lược chỉ chấp nhận những tín hiệu có khoảng rủi ro dự kiến nằm trong phạm vi 3–10 điểm.

Ví dụ, một tín hiệu Long có:

  • Close = 1.905.
  • Range Low = 1.898.
  • Stop Buffer = 0.

Risk dự kiến là 7 điểm.

Tín hiệu đáp ứng bộ lọc.

Ngược lại, nếu Range Low = 1.890, Risk dự kiến bằng 15 điểm và tín hiệu bị loại bỏ.

Một điểm quan trọng là hai bộ lọc này chỉ được áp dụng khi Exit Mode đang là Source Range RR.

Nếu chuyển sang Fixed Points, chiến lược không sử dụng Minimum/Maximum Range Risk để loại bỏ Entry.

Ngoài ra, Risk Filter được tính từ Close của nến tín hiệu trước khi gửi lệnh.

Vì vậy, khoảng Risk thực tế sau khi khớp có thể khác do giá vào lệnh trung bình.

5.3. Stop Loss dự phòng khi Risk không hợp lệ sau khớp

Sau khi vị thế được mở, bot tính lại khoảng rủi ro từ giá khớp trung bình tới Stop Loss Range đã lưu.

Nếu khoảng Risk này không hợp lệ hoặc không lớn hơn một bước giá tối thiểu, mã nguồn sử dụng Fixed Stop Loss làm phương án dự phòng.

Mặc định:

Fallback Stop Loss = 5 điểm.

Ví dụ, nếu một vị thế Long được khớp nhưng Stop Loss Range không còn nằm thấp hơn Entry theo khoảng cách hợp lệ, bot có thể sử dụng:

SL = Entry − 5 điểm.

Trong Source Range RR, Take Profit sau đó vẫn được tính theo hệ số 2,247R và Front-Run Buffer.

Do đó, Stop Loss dự phòng không làm chiến lược tự động chuyển sang toàn bộ cấu hình Fixed Points.

5.4. Take Profit theo 2,247R

Trong Source Range RR, CNPS 33 sử dụng:

Source Reward/Risk = 2,247.

Với Long:

TP = Entry + Risk × 2,247 − 0,8 điểm.

Với Short:

TP = Entry − Risk × 2,247 + 0,8 điểm.

Ví dụ, với Long:

  • Entry = 1.900.
  • Initial Risk = 10 điểm.
  • Reward/Risk = 2,247.
  • Front-Run Buffer = 0,8.

Mục tiêu:

TP = 1.900 + 22,47 − 0,8 = 1.921,67 điểm.

Reward thực tế theo khoảng cách giá:

21,67 điểm.

Reward/Risk hiệu dụng:

21,67 / 10 = 2,167R.

Như vậy, hệ số 2,247R chỉ là hệ số cơ sở, không phải Reward/Risk cuối cùng của mọi giao dịch.

Đây là chi tiết cần được mô tả đúng khi giới thiệu CNPS 33.

5.5. Chế độ Fixed Points

Ngoài Source Range RR, CNPS 33 hỗ trợ:

Exit Mode = Fixed Points.

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

  • Fixed Stop Loss = 5 điểm.
  • Fixed Take Profit = 15 điểm.

Với Long:

SL = Entry − 5.

TP = Entry + 15.

Với Short:

SL = Entry + 5.

TP = Entry − 15.

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

15 / 5 = 3R.

Một điểm quan trọng là Fixed Points không sử dụng Range High hoặc Range Low để tính Stop Loss thực tế.

Tuy nhiên, Opening Range và cơ chế Double Breakout vẫn được sử dụng để xác định điểm vào lệnh.

Do đó, việc chuyển Exit Mode chỉ thay đổi phương pháp quản trị vị thế, không loại bỏ điều kiện hai lần phá vỡ.

5.6. TP Extension Trailing – Kéo dài lợi nhuận sau mức TP

CNPS 33 có tùy chọn:

Enable TP Extension Trailing.

Mặc định:

TP Extension = Tắt.

Khi bật, bot không sử dụng lệnh chốt lời giới hạn thông thường tại mức Active Target.

Thay vào đó, mức Target trở thành ngưỡng kích hoạt một Trailing Stop gốc của TradingView.

Thông số:

Extension Trail Distance = 1 điểm.

Ví dụ, một vị thế Long có:

  • Entry = 1.900.
  • Active Target = 1.920.
  • Extension Trail = 1 điểm.

Khi giá đạt mức kích hoạt 1.920, Trailing Stop có thể bắt đầu hoạt động theo cơ chế khớp lệnh của TradingView.

Nếu giá tiếp tục tăng, Trailing Stop có thể dịch chuyển theo hướng có lợi.

Nếu giá quay đầu, vị thế có thể đóng theo mức Trailing Stop.

Điểm quan trọng là Active Target không còn là lệnh chốt lời cố định khi TP Extension được bật.

Đó là ngưỡng bắt đầu cơ chế Trailing.

Chiến lược vẫn duy trì Stop Loss bảo vệ trước khi Trailing được kích hoạt.

Ngoài ra, TP Extension được xử lý bằng một công tắc riêng, không giới hạn chỉ trong Source Range RR.

Nếu bật tính năng này khi sử dụng Fixed Points, mức Fixed Take Profit cũng trở thành ngưỡng kích hoạt Trailing thay vì mức chốt lời cố định.

5.7. Native Trailing Stop của TradingView

CNPS 33 sử dụng strategy.exit() kết hợp:

trail_price = activeTarget

và

trail_offset = extensionTrailPoints / syminfo.mintick

Điều này có nghĩa khoảng Trailing được chuyển từ đơn vị điểm giá sang số tick trước khi gửi vào lệnh thoát.

Ví dụ, nếu:

  • Extension Trail Distance = 1 điểm.
  • Minimum Tick = 0,1 điểm.

Khoảng Trailing tương ứng:

1 / 0,1 = 10 ticks.

Đây là cách sử dụng Native Trailing Stop của TradingView.

Nó khác với phương pháp tự tính Stop Loss từ Close hoặc ATR ở mỗi cây nến.

Tuy nhiên, người dùng cần kiểm thử kỹ vì Trailing Stop phụ thuộc vào cách TradingView giả lập biến động giá và xác định thời điểm kích hoạt lệnh.

Việc giá chạm ngưỡng Activation không đảm bảo giao dịch sẽ được đóng với mức lợi nhuận bằng chính Target ban đầu.

5.8. Break Even tùy chọn

CNPS 33 hỗ trợ Break Even, nhưng mặc định đang tắt.

Thông số:

  • Use Break Even = Tắt.
  • Break Even Trigger = 1,0R.
  • Break Even Offset = 0,5 điểm.

Khi được bật, bot theo dõi giá cao nhất hoặc thấp nhất của nến để xác định thời điểm dời Stop Loss.

Với Long:

Trigger = Entry + Initial Risk × 1,0.

Khi High đạt ngưỡng, Stop Loss có thể được dời lên:

New SL = Entry + 0,5 điểm.

Với Short:

Trigger = Entry − Initial Risk × 1,0.

Khi Low đạt ngưỡng, Stop Loss có thể được dời xuống:

New SL = Entry − 0,5 điểm.

Ví dụ, một vị thế Long có:

  • Entry = 1.900.
  • Initial Risk = 10 điểm.
  • Break Even Trigger = 1R.

Khi High đạt 1.910, bot có thể dời Stop Loss lên 1.900,5.

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

Điểm đáng chú ý là CNPS 33 cho phép Break Even hoạt động trong cả Source Range RR và Fixed Points.

Đây là sự khác biệt so với những bot chỉ sử dụng Break Even trong một Exit Mode cụ thể.

Tuy nhiên, mức Stop Loss sau điều chỉnh không đảm bảo giao dịch đạt lợi nhuận ròng sau phí và trượt giá.

5.9. So sánh hai Exit Mode

Tiêu chíSource Range RRFixed Points
Stop LossBiên đối diện Opening Range5 điểm mặc định
Stop BufferCóKhông sử dụng
Take Profit2,247R có Front-Run Buffer15 điểm mặc định
Minimum/Maximum Range RiskCó thể bậtKhông áp dụng
Break EvenCó thể bậtCó thể bật
TP Extension TrailingCó thể bậtCó thể bật
Force Close cuối phiênCóCó

Theo mặc định, CNPS 33 sử dụng Source Range RR.

Tuy nhiên, Stop Loss theo biên đối diện Opening Range có thể rộng hơn đáng kể so với Fixed Points.

Vì vậy, khi so sánh hai phương pháp, nhà đầu tư không nên chỉ nhìn vào tỷ lệ Reward/Risk.

Cần đánh giá cả khoảng Stop Loss, biến động vốn, số lượng giao dịch, mức ký quỹ và giá trị tổn thất tương ứng với 3 hợp đồng.

5.10. Force Close cuối phiên

CNPS 33 sử dụng mốc:

Force Close = 14:45.

Khi cây nến có thời điểm mở trước 14:45 và thời điểm đóng đạt hoặc vượt 14:45, chiến lược kích hoạt Session End.

Nếu đang có vị thế, bot sử dụng:

strategy.close_all(immediately=true)

để yêu cầu đóng toàn bộ hợp đồng.

Đồng thời, các trạng thái đang tìm First Breakout hoặc chờ Second Breakout được tắt.

Điểm cần lưu ý là Force Close được xác định từ ranh giới thời gian của cây nến.

Vì vậy, nếu khung thời gian hoặc nguồn dữ liệu không có cây nến tương ứng đi qua mốc 14:45, thời điểm đóng vị thế mô phỏng có thể không giống kỳ vọng.

6. Hướng dẫn cài đặt và sử dụng CNPS 33 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.

CNPS 33 sử dụng Opening Range từ dữ liệu của khung thời gian biểu đồ.

Với khoảng 09:00–09:05 mặc định, M1 hoặc M5 là hai khung thời gian phù hợp để xây dựng đúng vùng giá năm phút đầu phiên.

Nếu sử dụng các khung thời gian khác, cần đánh giá lại cách cây nến giao với cửa sổ Opening Range.

Bước 2: Thêm chiến lược vào biểu đồ

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

  1. Mở Pine Editor trên TradingView.
  2. Tạo một Strategy mới.
  3. Dán mã nguồn CNPS 33 OPENING RANGE DOUBLE BREAKOUT.
  4. Lưu chiến lược.
  5. Chọn Add to chart.
  6. Kiểm tra Opening Range High và Low.
  7. Mở Strategy Tester để theo dõi kết quả giao dịch mô phỏng.

Bước 3: Cấu hình các thông số cơ bản

Thông sốMặc địnhÝ nghĩa
Strategy TimezoneAsia/Ho_Chi_MinhMúi giờ chiến lược
Range Start09:00Bắt đầu xây dựng Opening Range
Range End09:05Kết thúc xây dựng Opening Range
Last Setup14:30Mốc giới hạn thiết lập mới
Force Close14:45Đóng vị thế cuối phiên
Monday–FridayBậtCho phép giao dịch các ngày trong tuần
Trade DirectionBothLong và Short
Maximum Trades Per Day3Số lệnh tối đa mỗi ngày
Skip First Valid Setups0Số thiết lập đầu tiên được bỏ qua
Cooldown Bars After Exit0Khoảng nghỉ sau thoát
Exit ModeSource Range RRStop Loss theo Range
Source Reward/Risk2,247Hệ số TP danh nghĩa
Stop Buffer0 điểmKhoảng đệm Stop Loss
TP Front-Run Buffer0,8 điểmĐiều chỉnh mục tiêu TP
Minimum Range Risk0Tắt giới hạn Risk tối thiểu
Maximum Range Risk0Tắt giới hạn Risk tối đa
TP Extension TrailingTắtChuyển Target thành ngưỡng kích hoạt Trailing
Extension Trail Distance1 điểmKhoảng Trailing
Fixed Stop Loss5 điểmSL của Fixed Points
Fixed Take Profit15 điểmTP của Fixed Points
Use Break EvenTắtKích hoạt Break Even
Break Even Trigger1,0RNgưỡng kích hoạt
Break Even Offset0,5 điểmKhoảng dời Stop Loss
Disable SL/TP AlertsTắtCho phép cảnh báo Exit
Show Opening RangeBậtHiển thị Range
Show Armed Breakout LevelBậtHiển thị ngưỡng phá lần hai
Show Signal MarkersTắtHiển thị dấu tín hiệu
Show Active SL/TPBậtHiển thị Stop Loss và Target
Show DiagnosticsTắtHiển thị bảng trạng thái

Bước 4: Xác định Opening Range

Sau khi thêm chiến lược, người dùng cần kiểm tra:

  • Range High.
  • Range Low.
  • Range Midpoint.

CNPS 33 hiển thị Range High và Range Low bằng những đường màu xanh dương.

Range Midpoint được hiển thị bằng đường xanh nhạt hơn.

Công thức:

Range Midpoint = (Range High + Range Low) / 2.

Tuy nhiên, Range Midpoint chỉ phục vụ hiển thị.

Bot không sử dụng Range Midpoint làm điều kiện bắt buộc để tạo Long, Short hoặc xác định Take Profit.

Điều này cần được phân biệt với những chiến lược Range Trading sử dụng vùng EQ làm mục tiêu giao dịch.

Bước 5: Đọc các mức Armed Breakout

Khi First Bullish Breakout được ghi nhận, bot có thể hiển thị một đường màu xanh lá tại:

First Breakout High.

Đây là ngưỡng cần được giá đóng cửa vượt qua để tạo Second Bullish Breakout.

Với First Bearish Breakout, đường tham chiếu có màu đỏ tại:

First Breakout Low.

Nếu chưa có First Breakout hoặc trạng thái chờ đã được đặt lại, đường tương ứng không được hiển thị.

Nhờ đó, người dùng có thể quan sát bot đang chờ tín hiệu theo hướng nào.

Bước 6: Hiển thị Signal Markers

CNPS 33 hỗ trợ các dấu tín hiệu:

Thành phầnCách nhận biết
First Bullish BreakoutDấu tròn cam dưới nến, nhãn 1
First Bearish BreakoutDấu tròn cam trên nến, nhãn 1
Second Bullish EntryTam giác xanh hướng lên, nhãn 2
Second Bearish EntryTam giác đỏ hướng xuống, nhãn 2
Opening Range HighĐường xanh dương
Opening Range MidĐường xanh dương nhạt
Opening Range LowĐường xanh dương
Armed Long LevelĐường xanh lá
Armed Short LevelĐường đỏ
Active Stop LossĐường đỏ
Active TargetĐường xanh lá

Theo mặc định, Show Signal Markers đang tắt.

Để theo dõi từng bước tạo tín hiệu, người dùng nên bật tùy chọn này.

Một điểm quan trọng là dấu 1 chỉ thể hiện First Breakout.

Dấu 2 chỉ được vẽ khi Final Long hoặc Short Signal đã được chấp thuận.

Do đó, một Second Breakout bị Skip hoặc không đạt Risk Filter sẽ không xuất hiện dưới dạng Entry Marker số 2.

Bước 7: Sử dụng bảng Diagnostics

CNPS 33 cung cấp bảng Diagnostics với những thông tin:

  • Khung thời gian.
  • State.
  • Range High.
  • Range Low.
  • Second Long Breakout Level.
  • Second Short Breakout Level.
  • First Bullish Breakout Count.
  • First Bearish Breakout Count.
  • Second Bullish Breakout Count.
  • Second Bearish Breakout Count.
  • Skipped Setups.
  • Trades Today.
  • Prospective Long Risk.
  • Prospective Short Risk.
  • Active Initial Risk.
  • Exit Mode.
  • TP Extension Status.
  • Position.

Đặc biệt, cột State giúp người dùng nhận biết bot đang ở giai đoạn nào.

WAIT 1ST BREAK: Đang tìm First Breakout.

WAIT 2ND LONG: Đang chờ giá đóng cửa vượt High của nến First Bullish Breakout.

WAIT 2ND SHORT: Đang chờ giá đóng cửa phá Low của nến First Bearish Breakout.

OFF: Không ở trạng thái tìm kiếm Breakout hợp lệ.

Một điểm kỹ thuật cần lưu ý là các bộ đếm First/Second Breakout không được đặt lại trong nhánh New Trading Day của mã nguồn hiện tại.

Vì vậy, những chỉ số này có thể là số liệu tích lũy trong thời gian chạy chiến lược, không phải số tín hiệu riêng của phiên hiện tại.

Ngược lại, Trades Today và Skipped Setups Today được đặt lại khi bắt đầu ngày hoặc cửa sổ Opening Range mới.

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

CNPS 33 là TradingView Strategy nên có thể sử dụng Strategy Tester để đánh giá kết quả giao dịch mô phỏng.

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

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

Đối với CNPS 33, nên kiểm thử riêng những phương án:

Thử nghiệm 1: Source Range RR mặc định.

Thử nghiệm 2: Fixed Points SL5/TP15.

Thử nghiệm 3: Source Range RR với Maximum Range Risk được kích hoạt.

Thử nghiệm 4: Skip First Valid Setups = 1.

Thử nghiệm 5: Skip First Valid Setups = 2.

Thử nghiệm 6: Bật Break Even tại 1R.

Thử nghiệm 7: Bật TP Extension Trailing.

Thử nghiệm 8: Thay đổi Opening Range Window.

Thử nghiệm 9: So sánh giao dịch trên M1 và M5.

Thử nghiệm 10: So sánh hiệu quả khi chỉ giao dịch Long, chỉ Short hoặc Both.

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

  • Initial Capital: 100.000.000 VNĐ.
  • Khối lượng: 3 hợp đồng.
  • Commission: 10.000 VNĐ mỗi hợp đồng cho mỗi 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ử và không mô phỏng đầy đủ yêu cầu ký quỹ hoặc điều kiện thực thi giao dịch thực tế.

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

CNPS 33 hỗ trợ cảnh báo thông qua các sự kiện khớp lệnh mô phỏng trên TradingView.

Để thiết lập:

  1. Chọn Create Alert trên biểu đồ đã thêm CNPS 33.
  2. Trong Condition, chọn CNPS 33 OPENING RANGE DOUBLE BREAKOUT.
  3. Chọn chế độ cảnh báo dựa trên Order Fills.
  4. Trong Message, sử dụng {{strategy.order.alert_message}}.
  5. Chọn phương thức nhận thông báo và lưu cảnh báo.

Các thông điệp được định nghĩa trong source:

Thông điệpÝ nghĩa
ENTRY_LONG_CNPS33Mở Long sau Second Bullish Breakout
ENTRY_SHORT_CNPS33Mở Short sau Second Bearish Breakout
EXIT_LONG_TP_CNPS33Đóng Long theo Take Profit
EXIT_LONG_SL_CNPS33Đóng Long theo Stop Loss
EXIT_SHORT_TP_CNPS33Đóng Short theo Take Profit
EXIT_SHORT_SL_CNPS33Đóng Short theo Stop Loss
EXIT_LONG_BE_CNPS33Đóng Long tại Stop Loss sau Break Even
EXIT_SHORT_BE_CNPS33Đóng Short tại Stop Loss sau Break Even
EXIT_LONG_TRAIL_CNPS33Đóng Long theo TP Extension Trailing
EXIT_SHORT_TRAIL_CNPS33Đóng Short theo TP Extension Trailing
SESSION_END_CNPS33Đóng toàn bộ vị thế cuối phiên

Entry Long và Short

Cảnh báo Entry chỉ được gắn với lệnh giao dịch sau khi Second Breakout đã đáp ứng những điều kiện chấp thuận cuối cùng.

First Breakout không có một thông điệp Order Fill riêng, bởi bot chưa mở vị thế ở giai đoạn này.

Stop Loss và Take Profit

Khi TP Extension đang tắt, chiến lược sử dụng strategy.exit() với Stop Loss và Take Profit.

Khi Take Profit được khớp, thông điệp TP tương ứng được sử dụng.

Khi Stop Loss bị khớp, chiến lược sử dụng thông điệp SL.

Break Even Exit

Nếu Break Even đã được kích hoạt, thông điệp Stop Loss được chuyển sang nhóm BE.

Điều này không đồng nghĩa có một cảnh báo riêng tại thời điểm Stop Loss vừa được dời.

TP Extension Trailing

Khi TP Extension được bật, chiến lược sử dụng lệnh Trailing với ngưỡng kích hoạt tại Active Target.

Nếu vị thế đóng theo Trailing, thông điệp EXIT_LONG_TRAIL_CNPS33 hoặc EXIT_SHORT_TRAIL_CNPS33 được sử dụng.

Trong chế độ này, không còn lệnh chốt lời giới hạn tiêu chuẩn tại Active Target.

Session End

Khi Force Close được kích hoạt, bot sử dụng SESSION_END_CNPS33 để yêu cầu đóng toàn bộ vị thế.

Một điểm cần lưu ý là tùy chọn Disable SL/TP Alerts cũng được truyền vào những lệnh strategy.exit() sử dụng TP Extension.

Vì vậy, nếu bật Disable SL/TP Alerts, người dùng cần kiểm tra cả nhóm cảnh báo Trailing Exit, không chỉ SL/TP cố định.

Nếu tích hợp TradingView với hệ thống giao dịch tự động, cần bảo đảm hệ thống nhận lệnh phân biệt đúng Entry, SL, TP, Break Even, Trailing và Session End.

Việc TradingView phát cảnh báo Order Fill không đồng nghĩa lệnh tương ứng đã được khớp thành công tại công ty chứng khoán.

Kết luận

CNPS 33 OPENING RANGE DOUBLE BREAKOUT là chiến lược giao dịch phái sinh ứng dụng phương pháp Opening Range Breakout kết hợp Double Confirmation, hướng đến việc tìm kiếm tín hiệu khi giá hoàn thành hai lần phá vỡ liên tiếp theo cùng một hướng.

Khác với những bot mở lệnh ngay khi giá vượt biên vùng mở cửa, CNPS 33 chia quá trình giao dịch thành hai giai đoạn.

Đầu tiên, chiến lược xây dựng một Opening Range cố định từ 09:00 đến 09:05 theo cấu hình mặc định.

Sau đó, khi giá đóng cửa vượt Range High hoặc phá xuống dưới Range Low, bot ghi nhận First Breakout và lưu cực trị của cây nến phá vỡ.

Chỉ khi một cây nến tiếp theo đóng cửa vượt mức cực trị đã lưu, chiến lược mới ghi nhận Second Breakout và xem xét mở vị thế.

Điểm nổi bật của CNPS 33 nằm ở cơ chế hai lần xác nhận bằng giá đóng cửa, sử dụng vùng Opening Range cố định và cho phép lặp lại các chu kỳ Double Breakout trong cùng một phiên.

Về quản trị vị thế, chiến lược mặc định sử dụng Stop Loss theo biên đối diện Opening Range, Take Profit với hệ số 2,247R có điều chỉnh Front-Run Buffer 0,8 điểm và khối lượng 3 hợp đồng.

Ngoài ra, người dùng có thể chuyển sang Fixed Points SL5/TP15, kích hoạt Break Even hoặc sử dụng TP Extension Trailing để tiếp tục quản trị vị thế sau khi giá đạt ngưỡng mục tiêu.

Theo cấu hình mặc định, bot giới hạn tối đa 3 giao dịch mỗi ngày, không bỏ qua những thiết lập đầu tiên và không sử dụng Break Even hay Trailing Stop.

Tuy nhiên, một cú Double Breakout không bảo đảm thị trường sẽ tiếp tục vận động theo hướng phá vỡ. Việc chờ thêm xác nhận có thể làm giảm một số tín hiệu phá vỡ ban đầu, nhưng đồng thời cũng có thể khiến giá vào lệnh xa hơn so với Opening Range.

Đặc biệt, Stop Loss tại biên đối diện Range có thể tạo khoảng rủi ro lớn nếu vùng mở cửa rộng hoặc giá đã di chuyển xa trước khi xuất hiện Second Breakout.

Khi sử dụng CNPS 33, điều quan trọng là hiểu rõ sự khác biệt giữa First và Second Breakout, cách trạng thái Armed được duy trì, nguyên tắc tính Stop Loss theo Range và ảnh hưởng của Front-Run Buffer tới Reward/Risk thực tế.

Người dùng nên kiểm thử chiến lược trong TradingView Strategy Tester, so sánh Source Range RR với Fixed Points và đánh giá ảnh hưởng của Maximum Range Risk, Skip Setups, Break Even và TP Extension trên nhiều giai đoạn thị trường.

Theo dõi Phái Sinh Online để cập nhật thêm các 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