Hướng Dẫn Sử Dụng Bot CNPS30-LIQUIDITY cho VN30F1M
TradingviewTìm hiểu Bot CNPS 30 Smart Money Liquidity OB: ba thiết lập ONE, TWO, MIDWAY, Order Block Retest, quản trị SL/TP và cách sử dụng trên TradingView.

Mục lục
Trong giao dịch chứng khoán phái sinh, việc nhận diện cấu trúc thị trường và những vùng giá có khả năng xuất hiện phản ứng là một phần quan trọng của quá trình xây dựng chiến lược.
Tuy nhiên, không phải mọi mức đỉnh hoặc đáy đều có ý nghĩa tương đương. Một số mức giá đã được thị trường kiểm tra nhiều lần, trong khi những mức khác vẫn chưa bị giá quay lại tiếp cận. Tương tự, một vùng Order Block có thể hình thành từ nhiều cấu trúc giá khác nhau và không phải vùng nào cũng đủ điều kiện để tạo tín hiệu giao dịch.
Đây là cơ sở của phương pháp kết hợp Market Structure, Untouched Liquidity và Order Block Retest, trong đó nhà giao dịch tìm kiếm những cấu trúc giá phù hợp, xác định vùng Order Block liên quan rồi chờ thị trường quay lại kiểm tra.
CNPS 30 SMART MONEY LIQUIDITY OB là chiến lược được phát triển bằng Pine Script v6 trên TradingView, ứng dụng phương pháp Smart Money Concepts để nhận diện các cấu trúc HH/HL/LH/LL, đánh giá những mức thanh khoản chưa bị kiểm tra và xây dựng các vùng Demand hoặc Supply Order Block.
Điểm nổi bật của CNPS 30 là hệ thống sử dụng ba nhóm thiết lập:
- ONE Liquidity Setup: Xác định vùng Order Block liên kết với một mức thanh khoản hợp lệ.
- TWO Liquidity Setup: Xác định vùng Order Block có hai mức thanh khoản hợp lệ, đồng thời yêu cầu khoảng cách tối thiểu giữa hai mức.
- MIDWAY Liquidity Setup: Sử dụng sự kiện Break of Structure, vùng Order Block, Swing mới hình thành và hệ thống chấm điểm chất lượng để lựa chọn thiết lập.
Sau khi vùng Order Block được tạo và duy trì trạng thái hợp lệ, chiến lược chờ lần đầu tiên biên độ giá quay lại giao với vùng trước khi xem xét mở Long hoặc Short.
Khác với phương pháp giao dịch ngay khi xuất hiện BOS hoặc CHoCH, CNPS 30 tập trung vào những vùng giá được hình thành từ cấu trúc và thanh khoản, sau đó sử dụng sự kiện First Touch làm tín hiệu đầu vào.
Bên cạnh đó, bot hỗ trợ hai phương pháp quản trị vị thế gồm Stop Loss/Take Profit cố định và Stop Loss theo Order Block kết hợp Reward/Risk.
Vậy CNPS 30 hoạt động như thế nào, ONE và TWO Liquidity khác nhau ra sao, MIDWAY được chấm điểm như thế nào và nhà đầu tư cần lưu ý gì khi sử dụng?
1. CNPS 30 SMART MONEY LIQUIDITY OB là gì?
CNPS 30 SMART MONEY LIQUIDITY OB là chiến lược giao dịch được xây dựng trên nền tảng TradingView, hướng đến việc hỗ trợ giao dịch hợp đồng tương lai chỉ số VN30 bằng các thiết lập cấu trúc giá và Order Block.
Chiến lược được phát triển dựa trên bốn thành phần chính.
Thứ nhất: Pivot Structure Detection.
Bot xác định các Pivot High và Pivot Low, sau đó tổ chức thành chuỗi cấu trúc HH, HL, LH và LL.
Những chuỗi này là nền tảng cho việc nhận diện các thiết lập ONE và TWO Liquidity.
Thứ hai: Liquidity Setup Detection.
Chiến lược đánh giá các mức thanh khoản chưa bị giá kiểm tra, kết hợp với vị trí Order Block và khoảng cách giữa những mức thanh khoản.
Từ đó, bot phân loại thiết lập thành ONE hoặc TWO.
Ngoài ra, hệ thống còn sử dụng bộ phát hiện MIDWAY dựa trên cấu trúc Swing riêng và các sự kiện BOS.
Thứ ba: Order Block Refinement và First Touch.
Sau khi phát hiện thiết lập, bot sử dụng dữ liệu Order Block từ thư viện Refiner để xác định biên vùng Supply hoặc Demand.
Chiến lược lưu vùng, theo dõi trạng thái hiệu lực và chờ giá quay lại kiểm tra.
Thứ tư: Risk Management.
Khi có tín hiệu giao dịch hợp lệ, bot quản trị vị thế bằng Fixed Points hoặc OB Structure RR, đồng thời hỗ trợ Break Even tùy chọn.
Quy trình tổng quát:
Pivot Structure → ONE / TWO / MIDWAY Liquidity → Order Block → First Touch → Entry → SL/TP.
Ví dụ, trong một xu hướng tăng, bot phát hiện chuỗi cấu trúc giá phù hợp và xác định một vùng Demand Order Block.
Nếu có một mức thanh khoản chưa bị kiểm tra đáp ứng điều kiện, vùng có thể được phân loại là ONE Liquidity Setup.
Nếu tồn tại hai mức thanh khoản hợp lệ với khoảng cách đủ lớn, vùng có thể được phân loại là TWO Liquidity Setup.
Sau khi vùng được tạo, chiến lược không mở Long ngay tại thời điểm xác định Order Block.
Bot chờ một cây nến sau thời điểm tạo vùng có biên độ giao với Order Block.
Nếu vùng chưa hết hiệu lực, tín hiệu không bị xung đột và điều kiện quản trị cho phép, bot có thể mở Long.
Với Supply Order Block, cơ chế tương tự được sử dụng để tìm kiếm tín hiệu Short.
Điểm khác biệt của CNPS 30 là nguồn gốc thiết lập Order Block có thể được phân loại thành ONE, TWO hoặc MIDWAY, giúp người dùng có thể kiểm thử từng nhóm chiến lược riêng biệt.
Theo cấu hình mặc định:
- Trade Direction: Both.
- ONE Liquidity Setup: Bật.
- TWO Liquidity Setup: Bật.
- MIDWAY Liquidity Setup: Bật.
- Trade Setup Filter: All.
- Pivot Period cho ONE/TWO: 3.
- Pivot Period cho MIDWAY: 9.
- MIDWAY Quality Mode: Defensive.
- OB Refinement: Bật, chế độ Defensive.
- OB Validity: 1.000 nến.
- Maximum Trades Per Day: 4.
- Cooldown After Exit: 1 nến.
- Stop Loss: 5 điểm.
- Take Profit: 15 điểm.
- Khối lượng: 3 hợp đồng.
Source Code CNPS 30: CNPS30
2. Các khái niệm kỹ thuật được sử dụng trong CNPS 30
2.1. Market Structure – Cấu trúc thị trường HH/HL/LH/LL
Market Structure mô tả cách thị trường hình thành các mức đỉnh và đáy qua thời gian.
Trong phương pháp Smart Money Concepts, bốn ký hiệu thường được sử dụng gồm:
HH – Higher High: Đỉnh cao hơn.
HL – Higher Low: Đáy cao hơn.
LH – Lower High: Đỉnh thấp hơn.
LL – Lower Low: Đáy thấp hơn.
Các cấu trúc này có thể được sử dụng để đánh giá quá trình phát triển xu hướng, sự điều chỉnh hoặc thay đổi hướng vận động của giá.
CNPS 30 sử dụng các hàm Pivot trên TradingView:
ta.pivothigh() ta.pivotlow()
Với cấu hình ONE/TWO mặc định:
Pivot Period = 3.
Điều đó có nghĩa mỗi Pivot cần 3 nến bên trái và 3 nến bên phải để được xác nhận.
Sau khi phát hiện Pivot, bot lưu vào ba mảng dữ liệu:
- Loại cấu trúc.
- Giá trị cấu trúc.
- Chỉ số nến hình thành cấu trúc.
Từ chuỗi dữ liệu này, bot xây dựng các trạng thái H, L, HH, HL, LH và LL.
Đặc biệt, đây không phải phép gắn nhãn HH/HL/LH/LL hoàn toàn độc lập cho từng Pivot.
Mã nguồn còn có logic điều chỉnh, thay thế hoặc bổ sung các Pivot dựa trên loại cấu trúc trước đó.
Vì vậy, chuỗi cấu trúc được sử dụng trong CNPS 30 là kết quả của thuật toán phân loại riêng, không đơn thuần là một danh sách các Pivot High và Pivot Low liên tiếp.
2.2. ONE Liquidity Setup – Thiết lập một mức thanh khoản
ONE Liquidity Setup là một trong ba nhóm thiết lập giao dịch chính của CNPS 30.
Chiến lược trước tiên tìm một mẫu chuỗi cấu trúc phù hợp.
Đối với hướng tăng, mẫu rút gọn được kiểm tra có dạng:
HH → HL → LH → HL → HH, đọc theo thứ tự cấu trúc mới nhất về quá khứ.
Đối với hướng giảm, mẫu tương ứng:
LL → LH → HL → LH → LL, cũng đọc từ mới nhất về quá khứ.
Ngoài chuỗi nhãn, mã nguồn còn so sánh những giá trị Pivot cụ thể và kiểm tra giới hạn tuổi cấu trúc.
Sau đó, bot xác định vùng Order Block thông qua thư viện Refiner.
Khi vùng OB hợp lệ, chiến lược kiểm tra các mức thanh khoản liên quan.
Một mức thanh khoản được xem là hợp lệ khi:
- Có giá trị Pivot và vị trí nến hợp lệ.
- Không vượt giới hạn dữ liệu lịch sử.
- Chưa bị giá kiểm tra theo điều kiện thuật toán.
- Nằm đúng phía tương ứng so với vùng Order Block.
Đối với Demand Order Block, mức thanh khoản tham chiếu phải nằm phía trên đỉnh vùng.
Đối với Supply Order Block, mức thanh khoản tham chiếu phải nằm phía dưới đáy vùng.
Nếu đúng một trong hai mức thanh khoản ứng viên đáp ứng điều kiện, bot có thể phân loại thiết lập là:
ONE Liquidity Setup.
Điểm cần hiểu là ONE không có nghĩa bot chỉ tồn tại một vùng Order Block trên biểu đồ.
ONE mô tả số lượng mức thanh khoản hợp lệ liên quan đến một thiết lập cụ thể.
2.3. TWO Liquidity Setup – Thiết lập hai mức thanh khoản
TWO Liquidity Setup sử dụng nền tảng phát hiện cấu trúc và Order Block tương tự ONE.
Tuy nhiên, điều kiện về thanh khoản chặt chẽ hơn.
Bot yêu cầu hai mức thanh khoản ứng viên đều hợp lệ.
Đặc biệt, hai mức cần đáp ứng điều kiện chưa bị kiểm tra và có khoảng cách tối thiểu.
Công thức:
Minimum Liquidity Gap = Max(2 × Minimum Tick, ATR50 × 0,20).
Ví dụ, nếu:
- ATR50 = 10 điểm.
- Minimum Tick = 0,1 điểm.
Khi đó:
- 2 ticks = 0,2 điểm.
- 20% ATR = 2 điểm.
Khoảng cách tối thiểu giữa hai mức thanh khoản là 2 điểm.
Nếu hai mức hợp lệ nhưng chỉ cách nhau 1 điểm, chúng không đáp ứng điều kiện TWO.
Theo logic của mã nguồn, khi hai mức không đáp ứng điều kiện TWO, chiến lược vẫn có thể phân loại thành ONE nếu ít nhất một mức thanh khoản hợp lệ và ONE Setup đang bật.
Ngược lại, khi hai mức đáp ứng đầy đủ điều kiện TWO, thiết lập được phân loại là TWO.
Điều này không có nghĩa TWO luôn tạo ra giao dịch tốt hơn ONE.
TWO chỉ thể hiện một nhóm cấu trúc có hai mức thanh khoản hợp lệ, được phân biệt bằng quy tắc của thuật toán.
Để đánh giá hiệu quả, người dùng cần kiểm thử riêng hai nhóm trong Strategy Tester.
2.4. Untouched Liquidity – Mức thanh khoản chưa bị kiểm tra
Một thành phần quan trọng trong CNPS 30 là hàm kiểm tra những mức thanh khoản chưa bị giá tiếp cận.
Đối với mức thanh khoản phía trên, thuật toán kiểm tra liệu High của các cây nến sau Pivot đã chạm hoặc vượt mức đó hay chưa.
Đối với mức thanh khoản phía dưới, thuật toán kiểm tra Low của các cây nến sau Pivot đã chạm hoặc xuyên qua mức đó hay chưa.
Nếu mức giá đã bị kiểm tra, trạng thái Untouched không còn hợp lệ.
Một điểm kỹ thuật đáng chú ý là mã nguồn thực hiện việc kiểm tra bằng dữ liệu High/Low trong lịch sử, bao gồm cả cây nến đang được xử lý.
Do đó, Untouched Liquidity trong CNPS 30 là trạng thái được xác định từ hành vi giá, không phải dữ liệu thanh khoản thực tế trong Order Book.
Chiến lược không truy xuất trực tiếp:
- Lệnh chờ mua/bán theo từng mức giá.
- Market By Order.
- Dữ liệu thanh khoản tổ chức.
- Khối lượng Stop Order thực tế.
Vì vậy, thuật ngữ Liquidity trong tên bot phản ánh cách diễn giải cấu trúc giá của chiến lược.
2.5. Demand Order Block và Supply Order Block
Order Block là vùng giá được xác định từ một cấu trúc hoặc sự kiện vận động giá cụ thể.
Trong CNPS 30, có hai hướng Order Block:
Demand Order Block: Vùng được sử dụng để tìm kiếm tín hiệu Long khi giá quay lại kiểm tra.
Supply Order Block: Vùng được sử dụng để tìm kiếm tín hiệu Short khi giá quay lại kiểm tra.
Khác với những bot tự xác định vùng bằng High/Low của một cây nến cố định, CNPS 30 sử dụng thư viện ngoài:
TFlab/OrderBlockRefiner_TradingFinder/2
Thư viện được gọi để tính toán dữ liệu vùng Demand hoặc Supply.
Sau đó, mã nguồn CNPS 30 lấy những giá trị vùng được trả về và xác định:
OB Top = Max(hai mức biên giá).
OB Bottom = Min(hai mức biên giá).
Vùng chỉ được lưu nếu:
- Top lớn hơn Bottom.
- Vị trí nến nguồn hợp lệ.
- Không vượt giới hạn tuổi Order Block.
Cần lưu ý rằng phần tính toán chi tiết bên trong thư viện Refiner không được triển khai trực tiếp trong file chiến lược CNPS 30.
Do đó, những thay đổi về cách thư viện xử lý vùng OB có thể ảnh hưởng đến vị trí các biên giá được sử dụng.
2.6. Order Block Refinement – Tinh chỉnh vùng Order Block
CNPS 30 hỗ trợ tùy chọn:
Refine OB = Bật.
Người dùng có thể lựa chọn hai chế độ:
- Defensive.
- Aggressive.
Mặc định:
OB Refinement Mode = Defensive.
Khi Refine OB được bật, thư viện OrderBlockRefiner nhận yêu cầu tinh chỉnh vùng.
Khi tắt, mã nguồn vẫn gọi thư viện nhưng truyền trạng thái Refinement Off.
Điều quan trọng là các công thức nội bộ của hai chế độ Defensive và Aggressive nằm trong thư viện bên ngoài.
Vì vậy, chỉ dựa trên file CNPS 30, không thể khẳng định chính xác hai chế độ sẽ luôn làm vùng OB hẹp hơn hoặc rộng hơn bao nhiêu.
Người dùng nên so sánh trực tiếp kết quả trên TradingView để đánh giá ảnh hưởng của chế độ Refinement.
2.7. OB Mitigation – Kiểm tra vùng Order Block
CNPS 30 cho phép lựa chọn ba mức Mitigation:
- Proximal.
- 50% OB.
- Distal.
Trong đó:
Proximal là biên gần phía giá tiếp cận vùng.
Distal là biên xa của vùng.
50% OB là trung điểm giữa Top và Bottom.
Với Demand Order Block:
- Proximal = OB Top.
- 50% OB = Midpoint.
- Distal = OB Bottom.
Với Supply Order Block:
- Proximal = OB Bottom.
- 50% OB = Midpoint.
- Distal = OB Top.
Theo cấu hình mặc định:
OB Mitigation Level = Proximal.
Tuy nhiên, CNPS 30 có một đặc điểm rất quan trọng.
Điều kiện First Touch Entry không trực tiếp sử dụng mức Mitigation đã chọn.
Bot kiểm tra lần giá giao với toàn bộ vùng OB trước, sau đó mới kiểm tra trạng thái Mitigation để vô hiệu hóa vùng nếu cần.
Vì vậy, việc chuyển từ Proximal sang 50% OB không có nghĩa bot sẽ chờ giá chạm sâu 50% vùng rồi mới tạo Entry.
Đây là điểm cần phân biệt rõ khi sử dụng chiến lược.
2.8. First Touch – Lần đầu giá quay lại Order Block
First Touch là điều kiện trung tâm để tạo tín hiệu giao dịch.
Sau khi Order Block được tạo, bot chờ một cây nến tiếp theo giao với vùng OB.
Điều kiện:
Low hiện tại ≤ OB Top.
Đồng thời:
High hiện tại ≥ OB Bottom.
Ngoài ra:
- Order Block phải đang Active.
- Vùng chưa hết hạn.
- Vùng chưa được đánh dấu Entry.
- Nến hiện tại xuất hiện sau nến tạo OB.
Khi toàn bộ điều kiện được đáp ứng, bot ghi nhận First Touch.
Với Demand Order Block, sự kiện có thể tạo Raw Bullish OB Signal.
Với Supply Order Block, sự kiện có thể tạo Raw Bearish OB Signal.
Điểm quan trọng là bot không bắt buộc nến First Touch phải là nến tăng đối với Long hoặc nến giảm đối với Short.
Chiến lược cũng không yêu cầu thêm một nến xác nhận đóng cửa vượt đỉnh hoặc đáy nến Retest.
First Touch trong CNPS 30 là sự kiện giá giao với vùng Order Block hợp lệ, không phải một mô hình nến đảo chiều hoàn chỉnh.
2.9. MIDWAY Liquidity Setup – Thiết lập thanh khoản trung gian
MIDWAY là nhóm thiết lập có cơ chế phức tạp hơn ONE và TWO.
Thay vì chỉ dựa trên một mẫu chuỗi cấu trúc, MIDWAY sử dụng một hệ thống Pivot riêng.
Mặc định:
Midway Pivot Period = 9.
Bot theo dõi các Swing High và Swing Low của chu kỳ này để xác định sự kiện Break of Structure.
Đối với Bullish MIDWAY, chiến lược yêu cầu:
- Có Pivot High và Pivot Low hợp lệ.
- Pivot Low mới hơn Pivot High.
- Giá đóng cửa tăng và vượt mức High tham chiếu.
- Thân nến tăng đạt ngưỡng tối thiểu so với ATR.
- Mức Breakout vượt ngưỡng ATR theo chế độ Quality.
Với Bearish MIDWAY, những điều kiện tương tự được áp dụng theo hướng giảm.
Khi xuất hiện BOS hợp lệ, bot sử dụng thư viện Refiner để xác định Demand hoặc Supply OB tương ứng.
Tuy nhiên, vùng MIDWAY chưa được đưa vào danh sách Order Block có thể giao dịch ngay.
Chiến lược trước tiên lưu thành một Midway Candidate.
Sau đó, bot theo dõi sự hình thành Swing mới, phản ứng giá và chất lượng của thiết lập.
Chỉ khi đạt ngưỡng điểm theo chế độ Quality, Candidate mới được chuyển thành Order Block hợp lệ.
2.10. MIDWAY Quality Modes – Ba chế độ chấm điểm
CNPS 30 cung cấp ba chế độ:
| Thông số | Aggressive | Moderate | Defensive |
|---|---|---|---|
| BOS Break Buffer | 0,10 ATR | 0,15 ATR | 0,25 ATR |
| BOS Minimum Body | 0,30 ATR | 0,45 ATR | 0,60 ATR |
| Swing Reaction | 0,25 ATR | 0,35 ATR | 0,50 ATR |
| Formation Window | 75 nến | 50 nến | 30 nến |
| Minimum Quality Score | 2/4 | 3/4 | 4/4 |
Aggressive
Cho phép ngưỡng BOS và phản ứng Swing thấp hơn, cửa sổ hình thành dài hơn và chỉ yêu cầu tối thiểu 2 điểm chất lượng.
Moderate
Sử dụng bộ ngưỡng trung gian, yêu cầu tối thiểu 3 điểm.
Defensive
Đây là chế độ mặc định.
Bot sử dụng ngưỡng BOS cao hơn, yêu cầu Swing Reaction lớn hơn, cửa sổ hình thành chỉ 30 nến và phải đạt đủ 4/4 điểm.
Hệ thống điểm MIDWAY đánh giá bốn thành phần:
- Strong BOS.
- Sufficient Swing Reaction.
- Good Order Block.
- Clean Approach.
Mỗi thành phần hợp lệ đóng góp 1 điểm.
Good Order Block được đánh giá dựa trên độ rộng vùng không vượt 1,5 ATR và khoảng cách giá đóng cửa so với vùng OB đạt ít nhất 0,9 ATR theo hướng phù hợp.
Clean Approach đánh giá việc giá chưa xuất hiện chuỗi hai nến động lượng ngược hướng liên tiếp, mỗi nến có thân tối thiểu 0,8 ATR, trong giai đoạn theo dõi Candidate.
Điểm cần hiểu là MIDWAY Score không phải xác suất thắng.
Score 4/4 chỉ có nghĩa thiết lập đã đáp ứng toàn bộ bốn tiêu chí chất lượng của thuật toán.
3. Nguyên lý hoạt động của CNPS 30 SMART MONEY LIQUIDITY OB
CNPS 30 sử dụng hai nhóm phát hiện nguồn thiết lập, sau đó đưa các vùng hợp lệ về một hệ thống Order Block chung.
Quy trình:
Pivot Detection → Liquidity Setup → OB Refinement → Active OB → First Touch → Entry → Risk Management.
Bước 1: Xây dựng chuỗi Pivot
Đầu tiên, bot tính các Pivot High và Pivot Low với chu kỳ ONE/TWO mặc định là 3.
Các mức Pivot sau đó được phân loại thành H, L, HH, HL, LH hoặc LL.
Bot duy trì chuỗi cấu trúc trong mảng dữ liệu và sử dụng các phần tử gần nhất để nhận diện những mẫu thiết lập phù hợp.
Đối với MIDWAY, chiến lược tính thêm Pivot với chu kỳ mặc định 9.
Như vậy, CNPS 30 không sử dụng duy nhất một chu kỳ Pivot cho toàn bộ hệ thống.
Bước 2: Phát hiện ONE và TWO Liquidity
Bot kiểm tra các chuỗi cấu trúc tăng hoặc giảm có đáp ứng mẫu đã lập trình hay không.
Sau đó, chiến lược xác định những mức thanh khoản ứng viên và kiểm tra trạng thái Untouched.
Nếu chỉ có một mức hợp lệ, thiết lập được phân loại là ONE.
Nếu hai mức cùng hợp lệ và khoảng cách giữa chúng đạt yêu cầu, thiết lập được phân loại là TWO.
Đối với những mẫu cấu trúc dài hơn, bot còn kiểm tra tuổi của Pivot nguồn để đảm bảo không vượt giới hạn OB Validity.
Bước 3: Phát hiện MIDWAY BOS
Song song với ONE/TWO, bot sử dụng hệ thống MIDWAY để tìm sự kiện BOS.
Với Bullish MIDWAY, giá cần đóng cửa vượt Swing High với khoảng đệm tối thiểu, đồng thời nến tăng phải có thân đủ lớn.
Với Bearish MIDWAY, chiến lược kiểm tra cú phá xuống Swing Low theo hướng giảm.
Khi có sự kiện hợp lệ, bot xác định vùng OB từ Pivot đối diện đã lưu.
Tuy nhiên, đây mới là bước tạo Candidate.
Bước 4: Chấm điểm MIDWAY Candidate
Sau khi tạo Candidate, bot tiếp tục quan sát dữ liệu giá.
Nếu giá quay lại chạm vùng Order Block trước khi Candidate được xác nhận, Candidate bị loại bỏ.
Nếu hết Formation Window, Candidate cũng bị loại bỏ.
Nếu xuất hiện một Swing mới hợp lệ, nằm tách biệt khỏi vùng OB và chưa bị kiểm tra, bot đánh giá phản ứng giá.
Sau đó, chiến lược tính điểm theo bốn nhóm:
- Strong BOS.
- Swing Reaction.
- Good OB.
- Clean Approach.
Khi đạt Minimum Score, Candidate được chuyển thành MIDWAY Order Block.
Trong cấu hình Defensive mặc định, MIDWAY cần đạt 4/4 điểm.
Bước 5: Lưu các Order Block hợp lệ
Khi ONE, TWO hoặc MIDWAY được xác nhận, chiến lược lưu vùng vào danh sách Order Block.
Mỗi vùng bao gồm:
- Hướng Long hoặc Short.
- Vị trí nến nguồn.
- Vị trí nến tạo vùng.
- Đỉnh Order Block.
- Đáy Order Block.
- Trạng thái Active.
- Trạng thái đã đánh dấu Entry.
- Loại Setup.
- Dữ liệu cấu trúc liên quan.
Mã nguồn giới hạn danh sách tối đa 100 Order Block được lưu.
Đồng thời, danh sách MIDWAY Candidate được giới hạn tối đa 24 phần tử.
Các giới hạn này dùng để quản lý dữ liệu, không có nghĩa 100 vùng đều đang hoạt động hoặc đủ điều kiện giao dịch.
Bước 6: Chờ First Touch
Sau khi Order Block được tạo, bot kiểm tra những nến tiếp theo.
Một vùng không thể tạo First Touch ngay trên chính cây nến được ghi nhận là Created Bar.
Nếu nến sau đó giao với vùng OB và vùng chưa hết hạn, chiến lược ghi nhận Raw OB First Touch.
Bot quét các vùng từ mới đến cũ và lựa chọn vùng có Created Bar mới nhất trong số các vùng đáp ứng điều kiện lọc.
Tuy nhiên, việc ghi nhận Raw Signal chưa đồng nghĩa lệnh được mở.
Bước 7: Kiểm tra điều kiện vào lệnh
Sau khi có First Touch, chiến lược tiếp tục kiểm tra:
- Đang không có vị thế.
- Hướng Long hoặc Short được cho phép.
- Đang trong thời gian giao dịch hợp lệ.
- Nến đã đóng cửa.
- Không vượt giới hạn 4 giao dịch mỗi ngày.
- Cooldown sau lần thoát trước đã kết thúc.
- Bộ lọc Setup cho phép ONE, TWO hoặc MIDWAY.
- Rủi ro dự kiến hợp lệ nếu sử dụng OB Structure RR.
- Không xuất hiện xung đột Long và Short cùng thời điểm.
Khi toàn bộ điều kiện đáp ứng, bot phát sinh lệnh với khối lượng 3 hợp đồng.
Một điểm quan trọng: First Touch được đánh dấu trước khi bot kiểm tra toàn bộ điều kiện quản trị giao dịch.
Vì vậy, một vùng có thể mất cơ hội tạo tín hiệu lần đầu dù lệnh không được mở do giới hạn thời gian, số giao dịch hoặc trạng thái vị thế.
Bước 8: Quản trị vị thế
Sau khi vào lệnh, CNPS 30 khởi tạo giá vào lệnh trung bình và các mức Stop Loss/Take Profit.
Với Fixed Points mặc định:
- SL = 5 điểm.
- TP = 15 điểm.
Với OB Structure RR:
- Stop Loss nằm ngoài biên OB có thêm Buffer.
- Take Profit được tính theo Reward/Risk 2R mặc định.
Nếu người dùng bật Break Even, bot có thể dời Stop Loss sau khi giá đi được 1R.
Ngoài ra, chiến lược yêu cầu đóng toàn bộ vị thế tại thời điểm Force Close cuối phiên.
4. Điều kiện vào lệnh Long và Short của CNPS 30
4.1. Điều kiện Long theo ONE Liquidity
Một tín hiệu Long ONE có thể hình thành khi:
- Bot xác định chuỗi cấu trúc tăng hợp lệ.
- Mẫu Pivot đáp ứng điều kiện ONE/TWO Raw Setup.
- Order Block Refiner trả về Demand OB hợp lệ.
- Vùng Demand OB có Top lớn hơn Bottom.
- Vùng chưa vượt giới hạn tuổi 1.000 nến.
- Có đúng một mức thanh khoản ứng viên hợp lệ theo cách phân loại của thuật toán.
- Mức thanh khoản nằm phía trên vùng Demand OB.
- ONE Liquidity Setup được bật.
- Vùng được đưa vào danh sách Active Order Blocks.
- Một nến sau thời điểm tạo OB quay lại giao với vùng.
- Vùng chưa bị đánh dấu Entry trước đó.
- Trade Setup cho phép ONE.
- Không có Raw Short Candidate hợp lệ gây xung đột.
- Chiến lược đang Flat.
- Thời gian, Cooldown và giới hạn giao dịch hợp lệ.
- Rủi ro hợp lệ nếu sử dụng OB Structure RR.
- Nến đã đóng cửa xác nhận.
Khi các điều kiện được đáp ứng, bot phát sinh Long.
Thông điệp Entry:
ENTRY_LONG_CNPS30_ONE
4.2. Điều kiện Short theo ONE Liquidity
Với Short, chiến lược áp dụng các điều kiện tương ứng:
- Xuất hiện chuỗi cấu trúc giảm phù hợp.
- Order Block Refiner xác định Supply OB hợp lệ.
- Vùng Supply có Top lớn hơn Bottom.
- Có một mức thanh khoản hợp lệ nằm dưới Supply OB.
- ONE Setup đang bật.
- Vùng chưa hết hạn.
- Giá quay lại giao với Supply OB trên một nến sau Created Bar.
- Vùng chưa được đánh dấu Entry.
- Bộ lọc Setup cho phép ONE.
- Không có Long Candidate đối lập cùng thời điểm.
- Điều kiện giao dịch chung hợp lệ.
- Rủi ro Stop Loss phù hợp trong chế độ OB Structure RR.
Khi toàn bộ điều kiện hợp lệ, bot tạo Short.
Thông điệp:
ENTRY_SHORT_CNPS30_ONE
4.3. Điều kiện Long theo TWO Liquidity
TWO Liquidity sử dụng nền tảng cấu trúc tương tự ONE, nhưng yêu cầu hai mức thanh khoản.
Điều kiện gồm:
- Chuỗi cấu trúc tăng được xác nhận.
- Demand OB hợp lệ.
- Có hai mức thanh khoản ứng viên chưa bị kiểm tra.
- Hai mức đều nằm phía trên Demand OB.
- Khoảng cách giữa hai mức đạt tối thiểu Max(2 ticks, 0,20 ATR50).
- TWO Liquidity Setup đang bật.
- Vùng được lưu vào danh sách Order Blocks.
- Giá lần đầu quay lại giao với vùng.
- Không có tín hiệu đối lập đồng thời.
- Các điều kiện quản trị giao dịch được đáp ứng.
Thông điệp:
ENTRY_LONG_CNPS30_TWO
Ví dụ minh họa, giả sử một vùng Demand OB có:
- OB Top = 1.900.
- OB Bottom = 1.896.
- Liquidity Level A = 1.905.
- Liquidity Level B = 1.908.
Nếu cả hai mức thanh khoản chưa bị kiểm tra và khoảng cách 3 điểm đáp ứng Minimum Liquidity Gap, bot có thể phân loại vùng là TWO Liquidity Setup.
Tuy nhiên, đây mới là điều kiện phân loại vùng.
Lệnh Long chỉ được xem xét khi giá quay lại giao với Order Block và các điều kiện giao dịch chung hợp lệ.
4.4. Điều kiện Short theo TWO Liquidity
Với Short TWO, bot yêu cầu:
- Chuỗi cấu trúc giảm hợp lệ.
- Supply OB được xác định.
- Hai mức thanh khoản chưa bị kiểm tra nằm phía dưới vùng.
- Khoảng cách hai mức đạt yêu cầu.
- TWO Setup đang bật.
- Giá lần đầu quay lại Supply OB sau thời điểm tạo vùng.
- Không có xung đột tín hiệu Long.
- Các điều kiện thời gian, vị thế và quản trị hợp lệ.
Thông điệp:
ENTRY_SHORT_CNPS30_TWO
Điểm quan trọng là TWO không bắt buộc có hai lần giá quay lại Order Block.
TWO là thiết lập có hai mức thanh khoản được thuật toán xác nhận, trong khi Entry vẫn dựa trên First Touch của vùng OB.
4.5. Điều kiện Long theo MIDWAY
MIDWAY Long yêu cầu một chuỗi xác nhận nhiều giai đoạn.
Giai đoạn 1: Bullish BOS.
Giá đóng cửa tăng, vượt Swing High và đạt điều kiện thân nến tối thiểu theo ATR50.
Giai đoạn 2: Tạo Demand OB.
Order Block Refiner trả về vùng Demand hợp lệ.
Giai đoạn 3: Tạo MIDWAY Candidate.
Bot lưu vùng, thời điểm BOS và các thuộc tính chất lượng ban đầu.
Giai đoạn 4: Chờ Swing mới.
Chiến lược yêu cầu xuất hiện Pivot Low mới sau BOS, nằm phía trên vùng OB và đáp ứng điều kiện Untouched.
Swing cần có phản ứng giá tối thiểu theo chế độ MIDWAY.
Giai đoạn 5: Chấm điểm.
Bot tính bốn thành phần:
- Strong BOS.
- Swing Reaction.
- Good OB.
- Clean Approach.
Trong Defensive, phải đạt 4/4 điểm.
Giai đoạn 6: Kích hoạt Order Block.
Sau khi Candidate hợp lệ, bot đưa vùng vào danh sách Order Block đang hoạt động.
Giai đoạn 7: First Touch Entry.
Giá quay lại giao với Demand OB lần đầu sau Created Bar.
Nếu điều kiện giao dịch hợp lệ, bot phát sinh Long.
Thông điệp:
ENTRY_LONG_CNPS30_MIDWAY
Điểm khác biệt so với ONE/TWO là MIDWAY cần thêm quá trình xác nhận chất lượng sau BOS trước khi vùng Order Block được kích hoạt.
4.6. Điều kiện Short theo MIDWAY
MIDWAY Short sử dụng quy trình tương ứng theo hướng giảm:
- Bearish BOS được xác nhận.
- Giá đóng cửa giảm với thân nến đủ lớn.
- Giá phá Swing Low theo ngưỡng ATR của chế độ MIDWAY.
- Supply OB được xác định.
- Bot tạo MIDWAY Candidate.
- Xuất hiện Pivot High mới sau BOS, nằm dưới vùng Supply OB.
- Swing mới chưa bị kiểm tra.
- Phản ứng giá đạt yêu cầu.
- Candidate đạt Minimum Quality Score.
- Vùng được chuyển thành Active Order Block.
- Giá quay lại giao với Supply OB.
- Điều kiện giao dịch hợp lệ.
Thông điệp:
ENTRY_SHORT_CNPS30_MIDWAY
4.7. Cơ chế Setup Filter
CNPS 30 cho phép lựa chọn:
- All.
- One Only.
- Two Only.
- Midway Only.
Mặc định:
Trade Setup = All.
Nếu chọn One Only, bot chỉ chấp nhận Raw Entry từ ONE Order Block.
Tương tự, Two Only chỉ sử dụng TWO, Midway Only chỉ sử dụng MIDWAY.
Tuy nhiên, Setup Filter được áp dụng trong quá trình xử lý First Touch.
Mã nguồn vẫn có thể tiếp tục phát hiện và lưu các vùng thuộc những nhóm Setup khác.
Vì vậy, việc chọn One Only không đồng nghĩa toàn bộ thuật toán phát hiện TWO và MIDWAY đều ngừng hoạt động.
4.8. Cơ chế xung đột Long và Short
CNPS 30 có thể theo dõi nhiều Demand OB và Supply OB cùng lúc.
Trong một số trường hợp, cùng một cây nến có thể giao với cả hai loại vùng.
Nếu một Raw Bullish OB First Touch và Raw Bearish OB First Touch cùng đáp ứng điều kiện ứng viên giao dịch, bot xác định:
Ambiguous Signal.
Khi đó, chiến lược không phát sinh lệnh mới.
Cơ chế này giúp tránh việc đồng thời tạo Long và Short trên cùng một cây nến.
Tuy nhiên, hai vùng đã ghi nhận First Touch vẫn có thể bị đánh dấu Entry theo logic quản lý vùng ngay cả khi không có giao dịch thực tế.
5. CNPS 30 quản trị rủi ro và thoát lệnh như thế nào?
5.1. Chế độ Fixed Points
Đây là chế độ quản trị vị thế mặc định của CNPS 30.
Thông số:
Stop Loss = 5 điểm.
Take Profit = 15 điểm.
Với Long:
SL = Entry Price − 5 điểm.
TP = Entry Price + 15 điểm.
Với Short:
SL = Entry Price + 5 điểm.
TP = Entry Price − 15 điểm.
Ví dụ, nếu mở Long tại 1.900 điểm:
- SL = 1.895.
- TP = 1.915.
Tỷ lệ Reward/Risk danh nghĩa:
15 / 5 = 3R.
Tuy nhiên, đây là tỷ lệ theo khoảng cách giá được đặt, chưa tính đầy đủ chi phí và trượt giá.
5.2. Chế độ OB Structure RR
CNPS 30 hỗ trợ phương pháp quản trị Stop Loss theo vùng Order Block.
Người dùng có thể lựa chọn:
Exit Mode = OB Structure RR.
Khi đó, Stop Loss được tham chiếu từ biên xa của vùng.
Với Long:
Structure Stop = OB Bottom − OB Stop Buffer.
Với Short:
Structure Stop = OB Top + OB Stop Buffer.
Mặc định:
OB Stop Buffer = 0,5 điểm.
Ví dụ, một vùng Demand OB có:
- OB Top = 1.900.
- OB Bottom = 1.896.
- Buffer = 0,5 điểm.
Khi đó:
Long Structure Stop = 1.895,5 điểm.
Nếu lệnh Long được khớp tại 1.900 điểm, khoảng rủi ro ban đầu là 4,5 điểm.
Đây là khoảng rủi ro được tính theo cấu trúc vùng, không phải Stop Loss cố định 5 điểm.
5.3. Take Profit theo Reward/Risk
Trong chế độ OB Structure RR, chiến lược sử dụng hệ số Reward/Risk.
Mặc định:
OB Reward/Risk = 2,0.
Với Long:
TP = Entry Price + Initial Risk × 2.
Với Short:
TP = Entry Price − Initial Risk × 2.
Ví dụ, với một lệnh Long có:
- Entry = 1.900.
- SL = 1.895,5.
- Initial Risk = 4,5 điểm.
Take Profit:
1.900 + 4,5 × 2 = 1.909 điểm.
Như vậy, chế độ OB Structure RR mặc định sử dụng mục tiêu 2R.
Đây là điểm khác với Fixed Points có tỷ lệ danh nghĩa 3R.
Không nên nhầm lẫn hai chế độ này khi hướng dẫn người dùng cài đặt chiến lược.
5.4. Maximum OB Risk
CNPS 30 hỗ trợ giới hạn khoảng rủi ro tối đa khi sử dụng OB Structure RR.
Mặc định:
Maximum OB Risk = 0.
Điều này có nghĩa bộ lọc giới hạn rủi ro tối đa đang tắt.
Nếu người dùng thiết lập Maximum OB Risk bằng 6 điểm, bot sẽ từ chối những tín hiệu có khoảng rủi ro dự kiến vượt 6 điểm.
Trong mã nguồn, khoảng rủi ro dự kiến được tính từ giá đóng cửa nến tín hiệu tới Structure Stop.
Sau khi lệnh khớp, khoảng rủi ro thực tế được tính lại từ giá vào lệnh trung bình.
Do đó, Maximum OB Risk là bộ lọc trước giao dịch, không đảm bảo tuyệt đối khoảng rủi ro sau khớp luôn nằm dưới ngưỡng đã chọn.
5.5. Stop Loss dự phòng
Nếu người dùng sử dụng OB Structure RR, chiến lược tính khoảng rủi ro từ giá vào lệnh trung bình tới mức Structure Stop đã lưu.
Trong trường hợp khoảng rủi ro này không hợp lệ hoặc không lớn hơn một tick, bot sử dụng Fixed Stop Loss làm phương án dự phòng.
Mặc định:
Fallback Risk = 5 điểm.
Sau đó, Take Profit vẫn được tính theo hệ số OB Reward/Risk.
Ví dụ, với OB Reward/Risk bằng 2,0 và Risk dự phòng 5 điểm, Take Profit sẽ cách Entry 10 điểm.
Cơ chế này khác với Fixed Points mặc định có Take Profit 15 điểm.
5.6. Break Even – Dời Stop Loss theo R
CNPS 30 hỗ trợ Break Even tùy chọn.
Mặc định:
- 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 cây nến để xác định điều kiện kích hoạt.
Với Long:
Break Even Trigger = Entry Price + Initial Risk × 1,0.
Sau khi đạt ngưỡng, Stop Loss có thể được dời lên:
New SL = Entry Price + 0,5 điểm.
Với Short:
Break Even Trigger = Entry Price − Initial Risk × 1,0.
Mức Stop Loss mới:
New SL = Entry Price − 0,5 điểm.
Ví dụ, một vị thế Long có:
- Entry = 1.900.
- Initial Risk = 5 điểm.
- Break Even Trigger = 1R.
Khi giá đạt 1.905 điểm, bot có thể dời Stop Loss lên 1.900,5.
Break Even chỉ được kích hoạt một lần cho mỗi vị thế.
Đặc biệt, CNPS 30 không yêu cầu giá đóng cửa vượt ngưỡng Break Even.
Bot sử dụng High hoặc Low của nến để xác định việc giá đã chạm mục tiêu kích hoạt.
Tuy nhiên, việc dời Stop Loss qua Entry không bảo đảm giao dịch có lợi nhuận ròng sau phí và trượt giá.
5.7. Quản trị lệnh bằng strategy.exit()
CNPS 30 sử dụng strategy.exit() để đặt Stop Loss và Take Profit cho Long hoặc Short.
Sau khi vị thế được ghi nhận, bot tính:
- Giá vào lệnh trung bình.
- Initial Risk.
- Stop Loss.
- Take Profit.
Khi Break Even được bật và kích hoạt, mức Stop Loss được cập nhật.
Chiến lược không có cơ chế tự động đóng vị thế chỉ vì xuất hiện một Order Block mới theo hướng đối lập.
Ngoài ra, mã nguồn không triển khai Time Stop theo số nến nắm giữ hoặc Trailing Stop độc lập.
Các cơ chế thoát chính là:
- Stop Loss.
- Take Profit.
- Stop Loss sau Break Even nếu được bật.
- Force Close cuối phiên.
5.8. Giới hạn số giao dịch trong ngày
Theo cấu hình mặc định:
Maximum Trades Per Day = 4.
Bot tăng bộ đếm khi phát sinh lệnh Entry Long hoặc Short.
Sau khi đạt 4 lần vào lệnh trong ngày, chiến lược không tạo thêm lệnh mới.
Điểm quan trọng là bộ đếm giao dịch trong ngày không được đặt lại khi một vị thế đóng.
Nó chỉ được đặt lại khi sang ngày giao dịch mới theo múi giờ chiến lược.
5.9. Cooldown sau thoát vị thế
Mặc định:
Cooldown Bars After Exit = 1.
Bot lưu chỉ số nến ghi nhận việc vị thế vừa đóng.
Lệnh mới chỉ được cho phép khi:
Current Bar Index − Last Exit Bar > 1.
Điều này có nghĩa chiến lược phải vượt qua một nến Cooldown sau thời điểm ghi nhận thoát vị thế.
Trên dữ liệu nến liên tiếp, cơ hội vào lệnh sớm nhất có thể được xét tại cây nến có chỉ số cách nến thoát trước đó ít nhất 2.
5.10. Force Close cuối phiên
CNPS 30 sử dụng thời gian mặc định:
- Entry Start: 09:00.
- Last Entry: 14:30.
- Force Close: 14:45.
- Timezone: Asia/Ho_Chi_Minh.
Khi cây nến đi qua mốc 14:45, chiến lược yêu cầu đóng toàn bộ vị thế bằng strategy.close_all() với immediately=true.
Một điểm cần lưu ý là cửa sổ Entry mặc định được kiểm tra theo giờ từ 09:00 đến 14:30.
Mã nguồn không có bộ lọc riêng để loại trừ khoảng nghỉ trưa.
Nếu biểu đồ có dữ liệu nến trong khoảng thời gian đó, chiến lược vẫn có thể xem xét tín hiệu.
6. Hướng dẫn cài đặt và sử dụng CNPS 30 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 30 được xây dựng để hoạt động trên khung thời gian hiện tại của biểu đồ.
Chiến lược không khóa bắt buộc vào M1 hoặc M5.
Tuy nhiên, Pivot Period, MIDWAY Formation Window, OB Validity và Cooldown đều được tính theo dữ liệu nến.
Vì vậy, việc thay đổi khung thời gian có thể làm thay đổi đáng kể cách nhận diện cấu trúc và số lượng tín hiệu giao dịch.
Bước 2: Thêm chiến lược vào biểu đồ
Nếu sử dụng mã nguồn Pine Script:
- Mở Pine Editor trên TradingView.
- Tạo một Strategy mới.
- Dán toàn bộ mã nguồn CNPS 30 SMART MONEY LIQUIDITY OB.
- Kiểm tra quyền truy cập thư viện OrderBlockRefiner.
- Lưu mã nguồn.
- Chọn Add to chart.
- Kiểm tra các vùng Order Block và tín hiệu giao dịch.
- Mở Strategy Tester để đánh giá kết quả mô phỏng.
Một điểm cần lưu ý là mã nguồn có sử dụng thư viện bên ngoài:
TFlab/OrderBlockRefiner_TradingFinder/2
Do đó, người dùng cần bảo đảm thư viện có thể được TradingView truy cập và tương thích với phiên bản mã nguồn hiện tại.
Bước 3: Cấu hình các thông số cơ bản
| Thông số | Mặc định | Ý nghĩa |
|---|---|---|
| Trade Direction | Both | Cho phép Long và Short |
| ONE Liquidity Setup | Bật | Kích hoạt thiết lập ONE |
| TWO Liquidity Setup | Bật | Kích hoạt thiết lập TWO |
| MIDWAY Liquidity Setup | Bật | Kích hoạt thiết lập MIDWAY |
| ONE/TWO Pivot Period | 3 | Chu kỳ Pivot cấu trúc |
| MIDWAY Pivot Period | 9 | Chu kỳ Pivot MIDWAY |
| MIDWAY Quality Mode | Defensive | Ngưỡng chất lượng MIDWAY |
| OB Validity Bars | 1.000 | Tuổi vùng OB tối đa |
| OB Mitigation Level | Proximal | Mức kiểm tra Mitigation |
| Refine OB | Bật | Kích hoạt Refinement |
| OB Refinement Mode | Defensive | Chế độ tinh chỉnh |
| Trade Setup | All | Cho phép mọi nhóm Setup |
| Maximum Trades Per Day | 4 | Số giao dịch tối đa mỗi ngày |
| Cooldown Bars After Exit | 1 | Khoảng nghỉ sau thoát vị thế |
| Exit Mode | Fixed Points | Phương pháp quản trị lệnh |
| Fixed Stop Loss | 5 điểm | Stop Loss cố định |
| Fixed Take Profit | 15 điểm | Take Profit cố định |
| OB Stop Buffer | 0,5 điểm | Khoảng đệm Stop theo OB |
| OB Reward/Risk | 2,0 | Take Profit theo 2R |
| Maximum OB Risk | 0 | Tắt giới hạn Risk tối đa |
| Use Break Even | Tắt | Kích hoạt Break Even |
| Break Even Trigger | 1,0R | Ngưỡng kích hoạt BE |
| Break Even Offset | 0,5 điểm | Khoảng dời SL |
| Strategy Timezone | Asia/Ho_Chi_Minh | Múi giờ |
| Entry Start | 09:00 | Thời gian bắt đầu vào lệnh |
| Last Entry | 14:30 | Thời gian vào lệnh cuối |
| Force Close | 14:45 | Đóng toàn bộ vị thế |
| Disable SL/TP Alerts | Tắt | Cho phép cảnh báo SL/TP |
Bước 4: Lựa chọn nhóm Liquidity Setup
Người dùng có thể lựa chọn bốn chế độ:
All
Cho phép giao dịch từ ONE, TWO và MIDWAY.
One Only
Chỉ cho phép giao dịch từ thiết lập ONE.
Two Only
Chỉ cho phép giao dịch từ thiết lập TWO.
Midway Only
Chỉ cho phép giao dịch từ MIDWAY.
Để kiểm thử rõ ràng, nên bắt đầu với từng nhóm riêng biệt rồi so sánh với cấu hình All.
Điều này giúp đánh giá nhóm tín hiệu nào đóng góp nhiều hơn vào kết quả giao dịch.
Bước 5: Lựa chọn MIDWAY Quality Mode
MIDWAY cung cấp ba chế độ:
Aggressive: Minimum Score 2/4.
Moderate: Minimum Score 3/4.
Defensive: Minimum Score 4/4.
Theo cấu hình mặc định, CNPS 30 sử dụng Defensive.
Người dùng có thể kiểm thử lần lượt ba chế độ trên cùng khung thời gian và giai đoạn dữ liệu.
Tuy nhiên, cần lưu ý rằng mỗi chế độ không chỉ thay đổi Minimum Score.
Nó còn điều chỉnh ngưỡng BOS Breakout, kích thước thân nến, phản ứng Swing và thời gian cho phép hình thành MIDWAY.
Vì vậy, kết quả tín hiệu giữa các Profile có thể khác nhau từ giai đoạn phát hiện BOS, không chỉ ở bước chấm điểm cuối cùng.
Bước 6: Đọc các thành phần hiển thị
CNPS 30 hỗ trợ những thành phần sau:
| Thành phần | Cách nhận biết |
|---|---|
| Demand OB Top | Đường xanh lá |
| Demand OB Bottom | Đường xanh lá nhạt |
| Supply OB Top | Đường đỏ nhạt |
| Supply OB Bottom | Đường đỏ |
| Bullish OB First Touch | Dấu tròn xanh, nhãn OB |
| Bearish OB First Touch | Dấu tròn cam, nhãn OB |
| Long Entry | Tam giác xanh hướng lên, nhãn L |
| Short Entry | Tam giác đỏ hướng xuống, nhãn S |
| Active Stop Loss | Đường đỏ |
| Active Take Profit | Đường xanh lá |
Theo cấu hình mặc định:
- Show Latest Active OB: Tắt.
- Show Raw First-Touch Signals: Tắt.
- Show Strategy Entries: Tắt.
- Show Active SL/TP: Bật.
- Show Diagnostics: Tắt.
Nếu muốn nghiên cứu tín hiệu, nên bật các tùy chọn hiển thị vùng OB và Raw First Touch.
Tuy nhiên, cần phân biệt Raw Source Signal với Strategy Entry.
Một Raw Bullish OB First Touch không đồng nghĩa lệnh Long đã được tạo.
Tín hiệu vẫn có thể bị loại bỏ vì thời gian, trạng thái vị thế, giới hạn giao dịch hoặc xung đột Long/Short.
Ngoài ra, mã nguồn CNPS 30 không tự động vẽ toàn bộ danh sách Order Block dưới dạng các hộp kéo dài.
Tùy chọn Show Latest Active OB chỉ hiển thị biên của vùng Demand và Supply đang hoạt động mới nhất.
Bước 7: Sử dụng bảng Diagnostics
CNPS 30 cung cấp bảng Diagnostics nhằm theo dõi quá trình phát hiện vùng và thực hiện giao dịch.
Khi bật Show Diagnostics, bảng hiển thị:
- Khung thời gian.
- Structure Points.
- Active OBs.
- ONE OBs.
- TWO OBs.
- MIDWAY OBs.
- Bull Touches.
- Bear Touches.
- ONE Entries.
- TWO Entries.
- MIDWAY Entries.
- Midway Mode.
- Midway Score.
- Setup Filter.
- Active Setup.
- Active Risk.
- Trades Today.
- Exit Mode.
- Position.
Một điểm hữu ích là bảng Diagnostics cho phép phân biệt số lượng Order Block được tạo và số lượng lệnh thực sự phát sinh.
Ví dụ, chiến lược có thể tạo 15 ONE Order Blocks nhưng chỉ có 4 ONE Entries vì một số vùng chưa được giá kiểm tra, bị hết hạn hoặc First Touch xuất hiện khi điều kiện giao dịch không cho phép.
Tương tự, MIDWAY có thể phát hiện nhiều Candidate nhưng chỉ những Candidate đủ chất lượng mới được chuyển thành Order Block và đóng góp vào số MIDWAY OBs.
Bước 8: Đánh giá trong Strategy Tester
CNPS 30 được xây dựng dưới dạng TradingView Strategy nên có thể sử dụng Strategy Tester để kiểm tra hiệu quả mô phỏng.
Những chỉ số quan trọng gồm:
- Net Profit.
- Max Drawdown.
- Profit Factor.
- Percent Profitable.
- Total Trades.
- Average Trade.
Đối với CNPS 30, người dùng nên kiểm thử riêng các cấu hình:
Thử nghiệm 1: ONE Only.
Thử nghiệm 2: TWO Only.
Thử nghiệm 3: MIDWAY Only – Defensive.
Thử nghiệm 4: MIDWAY Only – Moderate.
Thử nghiệm 5: MIDWAY Only – Aggressive.
Thử nghiệm 6: All Setups.
Thử nghiệm 7: Fixed Points và OB Structure RR.
Thử nghiệm 8: Có hoặc không có Break Even.
Trong mã nguồn mặc định:
- Vốn mô phỏng ban đầu: 100.000.000 VNĐ.
- Khối lượng: 3 hợp đồng.
- Phí giao dịch mô phỏng: 10.000 VNĐ mỗi hợp đồng cho mỗi lần khớp.
- Slippage: 3 ticks.
- Pyramiding: 0.
Các thông số trên phục vụ kiểm thử, không phải bảo đảm về chi phí hoặc kết quả 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 30 hỗ trợ cảnh báo qua các sự kiện khớp lệnh mô phỏng trên TradingView.
Để thiết lập:
- Chọn Create Alert trên biểu đồ đã thêm CNPS 30.
- Chọn chiến lược CNPS 30 SMART MONEY LIQUIDITY OB trong Condition.
- Chọn chế độ Order Fills.
- Trong phần Message, sử dụng
{{strategy.order.alert_message}}. - Chọn kênh nhận thông báo và lưu cảnh báo.
Các thông điệp chính trong source gồm:
| Thông điệp | Ý nghĩa |
|---|---|
| ENTRY_LONG_CNPS30_ONE | Mở Long từ ONE Setup |
| ENTRY_SHORT_CNPS30_ONE | Mở Short từ ONE Setup |
| ENTRY_LONG_CNPS30_TWO | Mở Long từ TWO Setup |
| ENTRY_SHORT_CNPS30_TWO | Mở Short từ TWO Setup |
| ENTRY_LONG_CNPS30_MIDWAY | Mở Long từ MIDWAY Setup |
| ENTRY_SHORT_CNPS30_MIDWAY | Mở Short từ MIDWAY Setup |
| EXIT_LONG_TP_CNPS30 | Đóng Long theo Take Profit |
| EXIT_LONG_SL_CNPS30 | Đóng Long theo Stop Loss |
| EXIT_SHORT_TP_CNPS30 | Đóng Short theo Take Profit |
| EXIT_SHORT_SL_CNPS30 | Đóng Short theo Stop Loss |
| EXIT_LONG_BE_CNPS30 | Đóng Long theo SL sau Break Even |
| EXIT_SHORT_BE_CNPS30 | Đóng Short theo SL sau Break Even |
| SESSION_END_CNPS30 | Đóng toàn bộ vị thế cuối phiên |
Điểm đáng chú ý là CNPS 30 phân biệt ba nhóm Entry bằng hậu tố ONE, TWO hoặc MIDWAY.
Nhờ đó, người dùng có thể xác định một giao dịch được tạo từ loại thiết lập nào.
Nếu sử dụng hệ thống lưu trữ tín hiệu, có thể phân loại lệnh theo:
- Hướng Long hoặc Short.
- Nhóm ONE/TWO/MIDWAY.
- Loại sự kiện Entry hoặc Exit.
Đối với cảnh báo Stop Loss và Take Profit, mã nguồn sử dụng strategy.exit().
Khi Break Even chưa kích hoạt, thông điệp Stop Loss thuộc nhóm SL.
Nếu Break Even đã được kích hoạt và mức Stop Loss mới bị khớp, thông điệp thuộc nhóm BE.
Tuy nhiên, không có cảnh báo riêng ngay tại thời điểm Stop Loss được dời.
Thông điệp BE được sử dụng khi lệnh Stop Loss sau điều chỉnh thực sự khớp theo mô phỏng.
Khi đến mốc Force Close, chiến lược sử dụng SESSION_END_CNPS30 để yêu cầu đóng toàn bộ vị thế.
Nếu tích hợp TradingView với hệ thống giao dịch tự động bên ngoài, người dùng cần kiểm tra cách các thông điệp này được xử lý.
Đặc biệt, việc nhận một cảnh báo Order Fill từ TradingView không đồng nghĩa lệnh tương ứng đã được thực thi thành công tại công ty chứng khoán.
Kết luận
CNPS 30 SMART MONEY LIQUIDITY OB là chiến lược giao dịch phái sinh ứng dụng phương pháp Smart Money Concepts kết hợp Market Structure, Untouched Liquidity và Order Block First Touch, tập trung vào việc nhận diện vùng giá tiềm năng sau những cấu trúc thị trường phù hợp.
Khác với những bot giao dịch trực tiếp theo BOS, CHoCH hoặc tín hiệu đảo chiều, CNPS 30 sử dụng ba nhóm thiết lập ONE, TWO và MIDWAY để xây dựng Order Block.
Trong đó, ONE và TWO được phân loại dựa trên số lượng mức thanh khoản chưa bị kiểm tra, còn MIDWAY sử dụng sự kiện BOS, Swing mới và hệ thống chấm điểm chất lượng.
Điểm nổi bật của chiến lược nằm ở khả năng kết hợp ba cơ chế phát hiện thiết lập, sử dụng Order Block Refinement và chờ First Touch để tìm kiếm tín hiệu giao dịch.
Theo cấu hình mặc định, bot giao dịch cả Long và Short, cho phép tối đa 4 lệnh mỗi ngày, sử dụng Stop Loss 5 điểm, Take Profit 15 điểm và khối lượng 3 hợp đồng.
Ngoài ra, người dùng có thể chuyển sang chế độ OB Structure RR để sử dụng Stop Loss theo biên vùng OB và Take Profit 2R, đồng thời bật Break Even để điều chỉnh Stop Loss khi giá đi được một khoảng lợi nhuận thuận chiều.
Tuy nhiên, cần hiểu rõ rằng First Touch không phải một tín hiệu đảo chiều đã được xác nhận bằng mô hình nến. Việc giá quay lại Order Block cũng không đảm bảo thị trường sẽ phản ứng theo hướng kỳ vọng.
Bên cạnh đó, các mức Untouched Liquidity trong CNPS 30 được xác định từ dữ liệu giá, không đại diện cho việc xác minh thanh khoản thực tế trong sổ lệnh.
Khi sử dụng chiến lược, điều quan trọng là hiểu sự khác biệt giữa ONE, TWO và MIDWAY, cơ chế xác nhận Order Block, cách First Touch được ghi nhận và sự khác nhau giữa Fixed Points với OB Structure RR.
Người dùng nên kiểm thử riêng từng nhóm Setup trong TradingView Strategy Tester, đánh giá tác động của MIDWAY Quality Mode và lựa chọn phương pháp quản trị rủi ro phù hợp trước khi cân nhắc áp dụng trong giao dịch thực tế.
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 Smart Money Concepts và chiến lược 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.





