Hướng Dẫn Sử Dụng Bot CNPS49-DAILY OPEN cho VN30F1M
Tradingview
Mục lục
Trong giao dịch chứng khoán phái sinh, một trong những khó khăn thường gặp là xác định khi nào nên giao dịch theo xu hướng và khi nào nên tìm kiếm cơ hội từ những nhịp giá quay trở lại vùng cân bằng.
Một mức giá quan trọng có thể tạo phản ứng phục hồi trong thị trường đi ngang, nhưng cũng có thể trở thành điểm khởi đầu của một nhịp tăng hoặc giảm mạnh khi thị trường xuất hiện xu hướng.
Nếu sử dụng cùng một phương pháp giao dịch trong mọi trạng thái thị trường, nhà đầu tư có thể gặp những tình huống trái ngược.
Chẳng hạn, mua khi giá chạm hỗ trợ có thể phù hợp với thị trường dao động trong biên độ, nhưng trở nên rủi ro khi giá đang phá vỡ hỗ trợ trong một xu hướng giảm mạnh.
Ngược lại, giao dịch ngay khi giá vượt kháng cự có thể đem lại cơ hội trong thị trường có xu hướng, nhưng cũng dễ gặp những cú phá vỡ giả khi thị trường thiếu động lượng.
Một phương pháp tiếp cận là xây dựng hệ thống mức giá tham chiếu cố định trong ngày, sau đó thay đổi cách giao dịch dựa trên trạng thái xu hướng hiện tại.
Đây là nguyên lý cơ bản của CNPS 49 DAILY OPEN GRID V2 ADAPTIVE REGIME.
CNPS 49 là chiến lược giao dịch chứng khoán phái sinh được xây dựng bằng Pine Script v6 trên TradingView, sử dụng Daily Open để thiết lập Price Grid và kết hợp EMA20/50, ADX14, ATR14 để phân loại thị trường.
Thay vì dự báo trước một mức đỉnh hoặc đáy trong ngày, bot xây dựng các mức giá có khoảng cách đều nhau từ một điểm trung tâm được xác định theo giá mở cửa ngày.
Theo mặc định:
Grid Step = 10 điểm.
Các mức Grid được thiết lập phía trên và phía dưới Daily Open Center.
Ví dụ, nếu Daily Open Center bằng 1,900, các mức Grid tương ứng có thể là:
1,870 – 1,880 – 1,890 – 1,900 – 1,910 – 1,920 – 1,930.
Các mức giá này trở thành tham chiếu để đánh giá phản ứng của thị trường.
Điểm nổi bật của CNPS 49 V2 là không giao dịch tất cả những lần giá chạm Grid theo cùng một cách.
Chiến lược phân biệt hai trạng thái:
Range Regime
Khi thị trường không đáp ứng đầy đủ tiêu chí xu hướng, bot tìm kiếm tín hiệu giá quét qua một mức Grid rồi đóng cửa quay lại.
Với mức Grid nằm dưới Daily Open Center, chiến lược tìm Long Rejection.
Với mức Grid nằm trên Daily Open Center, chiến lược tìm Short Rejection.
Mục tiêu là mức Grid kế tiếp hướng về trung tâm.
Trend Regime
Khi EMA20/50, EMA Slope, ADX và EMA Separation cùng xác nhận xu hướng, chiến lược chuyển sang phương pháp Breakout Retest.
Thay vì bán hoặc mua ngược hướng ngay tại Grid, bot chờ giá phá Grid theo xu hướng, sau đó quay lại kiểm tra mức vừa vượt qua.
Nếu giá giữ được Grid và xuất hiện nến xác nhận, chiến lược có thể mở vị thế hướng tới Grid kế tiếp.
Về quản trị rủi ro, CNPS 49 sử dụng Stop Loss dựa trên High/Low của nến tín hiệu kết hợp ATR Buffer 0.15.
Mỗi giao dịch phải đáp ứng Risk dự kiến từ 2 đến 7 điểm và tỷ lệ Reward/Risk tối thiểu 1.25.
Ngoài ra, bot hỗ trợ giới hạn số giao dịch, Cooldown sau Exit, Break Even tùy chọn và Force Close cuối phiên.
Vậy Daily Open Grid được xây dựng như thế nào, cách bot phân biệt Range và Trend ra sao, hai bộ máy tín hiệu có những điều kiện gì và cơ chế Stop Loss – Take Profit theo Grid hoạt động như thế nào?
1. CNPS 49 Daily Open Grid V2 Adaptive Regime là gì?
CNPS 49 là chiến lược giao dịch sử dụng một hệ thống lưới giá theo ngày, kết hợp bộ máy xác định trạng thái thị trường để lựa chọn tín hiệu vào lệnh.
Chiến lược được tổ chức thành bốn thành phần chính.
1.1. Daily Open Grid – Hệ thống lưới giá trong ngày
CNPS 49 sử dụng giá mở cửa ngày làm cơ sở xây dựng một điểm trung tâm gọi là Center Grid.
Từ Center Grid, chiến lược tính những mức giá cách nhau một khoảng Grid Step.
Mặc định:
Grid Step = 10 điểm.
Basis Offset = 0.
Grid Lines Above/Below = 15.
Điều này tạo một hệ thống giá tham chiếu tương đối ổn định trong ngày, thay vì di chuyển liên tục theo từng cây nến như EMA hoặc VWAP.
Các mức Grid được sử dụng làm tham chiếu cho cả Entry và Take Profit.
1.2. Adaptive Regime – Phân loại trạng thái thị trường
CNPS 49 sử dụng:
- EMA20.
- EMA50.
- Độ dốc EMA20 qua 3 nến.
- ADX14.
- Khoảng cách EMA20/50 chuẩn hóa theo ATR14.
- Vị trí Close so với Center Grid.
Khi các điều kiện xác nhận xu hướng tăng đạt yêu cầu, bot xác định Bull Trend.
Khi các điều kiện xác nhận xu hướng giảm đạt yêu cầu, bot xác định Bear Trend.
Nếu không thuộc hai trạng thái trên, chiến lược xác định Range Regime.
Điểm cần lưu ý là Range Regime trong CNPS 49 được định nghĩa bằng việc không đáp ứng đầy đủ điều kiện Trend, không phải một bộ xác nhận Sideway độc lập.
1.3. Dual Signal Engine
CNPS 49 sử dụng hai bộ máy tín hiệu.
Range Rejection Engine
Tìm kiếm những cây nến xuyên qua Grid rồi đóng cửa quay trở lại phía phù hợp.
Với Long, bot yêu cầu giá quét xuống dưới Lower Grid, đóng cửa trên Grid và xuất hiện nến tăng đủ chất lượng.
Với Short, bot yêu cầu giá quét lên trên Upper Grid, đóng cửa dưới Grid và xuất hiện nến giảm đủ chất lượng.
Trend Breakout Retest Engine
Tìm kiếm một cây nến phá Grid theo xu hướng.
Sau Breakout, bot lưu mức Grid vừa bị phá và chờ Re-Entry Confirmation trong tối đa 5 nến.
Entry chỉ xuất hiện khi cây nến Retest giữ được mức Grid và đáp ứng chất lượng nến yêu cầu.
1.4. Risk & Position Management
CNPS 49 không sử dụng một Take Profit cố định 10 hoặc 15 điểm tính từ Entry.
Thay vào đó, Target được xác định theo Grid.
Với Range Rejection, mục tiêu là Grid kế tiếp hướng về Center.
Với Trend Breakout Retest, mục tiêu là Grid tiếp theo cùng hướng xu hướng.
Stop Loss được xác định từ High/Low của nến tín hiệu cộng ATR Buffer.
Bot chỉ chấp nhận những giao dịch đạt cả Risk Distance và Reward/Risk theo cấu hình.
1.5. Các thông số mặc định
| Nhóm | Thông số | Mặc định |
|---|---|---|
| Grid | Basis Offset | 0 |
| Grid | Grid Step | 10 điểm |
| Grid | Lines Above/Below | 15 |
| Regime | Fast EMA | 20 |
| Regime | Slow EMA | 50 |
| Regime | EMA Slope Lookback | 3 |
| Regime | ADX Length | 14 |
| Regime | ADX Smoothing | 14 |
| Regime | Trend ADX Threshold | 16 |
| Regime | Minimum EMA Separation | 0.08 ATR |
| Range | Use Range Rejection | Bật |
| Range | Minimum Penetration | 0.05 ATR |
| Range | Maximum Penetration | 0.60 ATR |
| Range | Minimum Body Ratio | 0.20 |
| Range | Minimum Close Location | 0.55 |
| Breakout | Use Trend Breakout Retest | Bật |
| Breakout | Breakout Minimum Body Ratio | 0.30 |
| Breakout | Retest Window | 5 nến |
| Breakout | Retest Tolerance | 0.15 ATR |
| Breakout | Retest Minimum Body Ratio | 0.15 |
| Risk | ATR Length | 14 |
| Risk | Stop Buffer | 0.15 ATR |
| Risk | Minimum Risk | 2 điểm |
| Risk | Maximum Risk | 7 điểm |
| Risk | Minimum Reward/Risk | 1.25 |
| Break Even | Sử dụng | Tắt |
| Break Even | Trigger | 1R |
| Break Even | Offset | 0.5 điểm |
| Trade | Direction | Both |
| Trade | Position Size | 3 hợp đồng |
| Trade | Maximum Trades/Day | 6 |
| Trade | Cooldown | 2 nến |
| Trade | One Trade Per Grid/Direction | Bật |
| Session | Morning | 09:00–11:30 |
| Session | Afternoon | 13:00–14:30 |
| Session | Force Close | 14:45 |
Source Code CNPS 49: CNPS49
2. Những khái niệm kỹ thuật được sử dụng trong CNPS 49
2.1. Daily Open là gì?
Daily Open là mức giá mở cửa của cây nến ngày trên nguồn dữ liệu giao dịch được chọn.
Trong CNPS 49, giá trị này được lấy qua:
request.security(syminfo.tickerid, "D", open)
Đây là dữ liệu cơ sở để xác định tâm lưới giá.
Khác với những chỉ báo sử dụng Close hoặc giá trung bình trong phiên, Daily Open là một tham chiếu được xác lập tại đầu ngày của cây nến Daily tương ứng.
Tuy nhiên, cần lưu ý Daily Open ở đây là giá mở cửa theo dữ liệu Daily của TradingView, không nhất thiết trùng với mức giá tham chiếu giao dịch được công bố bởi sở giao dịch.
2.2. Basis Offset
CNPS 49 có tham số:
Basis Offset = 0.
Tham số này được sử dụng trước và sau quá trình làm tròn Grid Center.
Công thức:
Raw Reference = Daily Open + Basis Offset.
Center Strike = Round(Raw Reference / Grid Step) × Grid Step.
Center Grid = Center Strike − Basis Offset.
Ví dụ:
- Daily Open = 1,903.
- Grid Step = 10.
- Basis Offset = 0.
Raw Reference:
1,903.
Center Strike:
Round(1,903 / 10) × 10 = 1,900.
Center Grid:
1,900.
2.3. Center Grid không nhất thiết bằng Daily Open
Đây là đặc điểm quan trọng của CNPS 49.
Bot không đơn giản đặt Grid Center bằng đúng giá mở cửa ngày.
Nó làm tròn Daily Open theo bước Grid đã thiết lập.
Ví dụ:
| Daily Open | Grid Step | Center Grid |
|---|---|---|
| 1,893 | 10 | 1,890 |
| 1,898 | 10 | 1,900 |
| 1,903 | 10 | 1,900 |
| 1,907 | 10 | 1,910 |
Các ví dụ giả định Basis Offset bằng 0.
Việc làm tròn giúp tạo hệ thống mốc giá có khoảng cách nhất quán.
2.4. Grid Step
Grid Step xác định khoảng cách giữa hai mức lưới giá liên tiếp.
Theo mặc định:
Grid Step = 10 điểm.
Nếu Center Grid bằng 1,900:
| Grid Index | Mức giá |
|---|---|
| −3 | 1,870 |
| −2 | 1,880 |
| −1 | 1,890 |
| 0 | 1,900 |
| +1 | 1,910 |
| +2 | 1,920 |
| +3 | 1,930 |
Nếu chuyển Grid Step sang 5 điểm, hệ thống lưới sẽ dày hơn.
Nếu tăng lên 20 điểm, các mức lưới nằm xa nhau hơn.
Việc thay đổi Grid Step tác động trực tiếp đến điều kiện Entry, khoảng cách Target và bộ lọc Reward/Risk.
2.5. Lower Grid và Upper Grid
CNPS 49 sử dụng vị trí Close hiện tại để xác định Grid gần nhất.
Công thức:
Relative Close = (Close − Center Grid) / Grid Step.
Lower Grid = Center Grid + Floor(Relative Close) × Grid Step.
Upper Grid = Center Grid + Ceil(Relative Close) × Grid Step.
Ví dụ:
- Center Grid = 1,900.
- Grid Step = 10.
- Close = 1,896.
Relative Close:
−0.4.
Lower Grid:
1,890.
Upper Grid:
1,900.
Vì vậy, Lower Grid và Upper Grid không phải hai đường cố định tại ±10 điểm quanh Center.
Chúng được lựa chọn dựa trên vị trí Close hiện tại.
2.6. EMA20 và EMA50
CNPS 49 sử dụng:
Fast EMA = EMA20.
Slow EMA = EMA50.
Trong đó EMA20 giúp đánh giá trạng thái giá ngắn hạn, EMA50 đóng vai trò tham chiếu chậm hơn.
Bull Trend yêu cầu:
EMA20 > EMA50.
Bear Trend yêu cầu:
EMA20 < EMA50.
Tuy nhiên, vị trí EMA chỉ là một phần trong hệ thống Regime.
2.7. EMA Slope
Bot sử dụng:
EMA Slope Lookback = 3.
Với Bull Trend:
EMA20 hiện tại > EMA20 cách 3 nến.
Với Bear Trend:
EMA20 hiện tại < EMA20 cách 3 nến.
Điểm quan trọng là source sử dụng độ dốc EMA20, không sử dụng độ dốc EMA50.
Ngoài ra, bot chỉ so sánh hai giá trị cách nhau ba nến, không yêu cầu EMA20 tăng hoặc giảm liên tục trên mọi nến trung gian.
2.8. ADX14
CNPS 49 sử dụng DMI và ADX theo:
ta.dmi(14, 14)
Theo mặc định:
Trend ADX Threshold = 16.
Điều kiện:
ADX ≥ 16.
ADX được sử dụng để đánh giá mức độ mạnh tương đối của xu hướng.
Tuy nhiên, bot không trực tiếp yêu cầu DI+ lớn hơn DI− với Long hoặc DI− lớn hơn DI+ với Short.
Hướng Trend được quyết định bởi EMA20/50, Slope và vị trí Close.
2.9. EMA Separation theo ATR
Bot tính:
EMA Separation ATR = |EMA20 − EMA50| / Max(ATR14, Minimum Tick).
Ngưỡng mặc định:
0.08 ATR.
Ví dụ:
- EMA20 = 1,904.
- EMA50 = 1,901.
- ATR14 = 5.
Khoảng cách:
3 điểm.
EMA Separation ATR:
3 / 5 = 0.60.
Vì 0.60 ≥ 0.08, điều kiện đạt.
Bộ lọc này yêu cầu hai EMA có khoảng cách tối thiểu tương đối với biến động hiện tại.
2.10. Bull Trend Regime
CNPS 49 xác định Bull Trend khi đồng thời có:
EMA20 > EMA50.
EMA20 hiện tại > EMA20 cách 3 nến.
ADX ≥ 16.
EMA Separation ATR ≥ 0.08.
Close > Center Grid.
Đây là năm nhóm điều kiện phải đồng thời đáp ứng.
Điểm quan trọng là Close phải nằm trên Center Grid.
Nếu các chỉ báo EMA và ADX cùng xác nhận tăng nhưng Close vẫn nằm dưới Center Grid, Bull Trend không được xác nhận.
2.11. Bear Trend Regime
Bear Trend yêu cầu:
EMA20 < EMA50.
EMA20 hiện tại < EMA20 cách 3 nến.
ADX ≥ 16.
EMA Separation ATR ≥ 0.08.
Close < Center Grid.
Đây là điều kiện đối xứng với Bull Trend.
2.12. Range Regime
CNPS 49 xác định:
Range Regime = NOT(Bull Trend OR Bear Trend).
Đây là một điểm quan trọng.
Bot không có một bộ tiêu chí độc lập yêu cầu ADX thấp, biên độ hẹp hoặc độ biến động giảm để kết luận Sideway.
Chỉ cần không đáp ứng đầy đủ Bull Trend hoặc Bear Trend, trạng thái được phân loại thành Range.
Do đó, Range Regime có thể bao gồm:
- Thị trường đi ngang thực sự.
- Thị trường đang chuyển xu hướng.
- Giá nằm khác phía Center Grid so với hướng EMA.
- ADX chưa đạt ngưỡng.
- EMA Separation chưa đạt.
- EMA Slope chưa đồng thuận.
Vì vậy, Range Regime là một trạng thái kỹ thuật theo định nghĩa của bot, không đồng nghĩa thị trường chắc chắn đang Sideway.
2.13. Penetration – Độ xuyên Grid
Đây là thành phần quan trọng của Range Rejection.
Với Long:
Long Penetration = Lower Grid − Low.
Với Short:
Short Penetration = High − Upper Grid.
Theo mặc định:
Minimum Penetration = 0.05 ATR.
Maximum Penetration = 0.60 ATR.
Ví dụ:
- ATR14 = 5 điểm.
Khoảng Penetration hợp lệ:
0.25–3 điểm.
Một cú xuyên Grid quá nông hoặc quá sâu sẽ không đạt bộ lọc.
2.14. Candle Body Ratio
CNPS 49 sử dụng:
Body Ratio = |Close − Open| / Max(High − Low, Minimum Tick).
Có hai ngưỡng khác nhau.
Range Rejection:
Minimum Body Ratio = 0.20.
Trend Breakout:
Minimum Body Ratio = 0.30.
Retest Confirmation:
Minimum Body Ratio = 0.15.
Như vậy, ba giai đoạn tín hiệu không sử dụng cùng một ngưỡng chất lượng nến.
2.15. Close Location
Close Location đánh giá vị trí giá đóng cửa trong biên độ nến.
Công thức:
Close Location = (Close − Low) / Candle Range.
Nếu Close nằm gần High, giá trị tiến về 1.
Nếu Close nằm gần Low, giá trị tiến về 0.
Theo mặc định:
Minimum Close Location = 0.55.
Với Range Long:
Close Location ≥ 0.55.
Với Range Short:
Close Location ≤ 0.45.
Điều này giúp chiến lược xác nhận rằng nến Rejection đóng cửa tương đối thuận lợi theo hướng giao dịch.
2.16. Breakout Event
Trong Trend Regime, bot tìm kiếm giá phá Grid theo hướng xu hướng.
Long Breakout yêu cầu:
- Bull Trend hợp lệ.
- Giá đóng cửa trước không nằm trên Breakout Upper Grid.
- Close hiện tại vượt Breakout Upper Grid.
- Nến tăng.
- Body Ratio ≥ 0.30.
- Nến đã đóng.
Short sử dụng điều kiện đối xứng.
Điểm quan trọng là Breakout Event chưa phải Final Entry.
Đây chỉ là sự kiện khởi tạo trạng thái chờ Retest.
2.17. Breakout Retest
Sau khi Breakout Event được xác nhận, bot lưu mức Grid vừa bị phá.
Trong tối đa 5 nến tiếp theo, chiến lược tìm kiếm một cây nến quay lại kiểm tra Grid.
Long yêu cầu:
Low ≤ Breakout Grid + 0.15 ATR.
Close > Breakout Grid.
Close > Open.
Body Ratio ≥ 0.15.
Short sử dụng:
High ≥ Breakout Grid − 0.15 ATR.
Close < Breakout Grid.
Close < Open.
Body Ratio ≥ 0.15.
Đây là cơ chế Breakout Retest – Hold Grid của CNPS 49.
3. Nguyên lý hoạt động của CNPS 49 V2
Quy trình tổng quát:
Daily Open → Center Grid → Adaptive Regime → Range Rejection hoặc Trend Breakout Retest → Structural Stop → RR Validation → Entry → Target Grid.
Bước 1: Lấy Daily Open
Bot lấy Open của nến Daily từ nguồn dữ liệu TradingView.
Giá trị này được sử dụng làm điểm tham chiếu cho hệ thống Grid.
Bước 2: Xác định Center Grid
Daily Open được điều chỉnh theo Basis Offset rồi làm tròn theo Grid Step.
Kết quả là Center Grid.
Bước 3: Xây dựng các Grid Levels
Từ Center Grid, bot xác định hệ thống mức giá theo bước Grid Step.
Các mức này trở thành tham chiếu cho cả Entry và Target.
Bước 4: Tính các chỉ báo xu hướng
Chiến lược tính:
- EMA20.
- EMA50.
- EMA20 Slope.
- ATR14.
- ADX14.
- EMA Separation ATR.
Bước 5: Phân loại Regime
Bot kiểm tra toàn bộ điều kiện Bull Trend và Bear Trend.
Nếu một trong hai hợp lệ, Trend Regime được xác nhận.
Nếu không, chiến lược chuyển sang Range Regime.
Bước 6: Xác định Lower/Upper Grid
Bot tính Lower Grid và Upper Grid dựa trên Close hiện tại.
Hai mức này được sử dụng chủ yếu trong Range Rejection.
Bước 7: Kiểm tra Range Rejection
Nếu Range Regime hợp lệ và Range Rejection bật, bot tìm tín hiệu giá xuyên Grid rồi quay lại.
Long chỉ được xem xét tại những Grid nằm dưới Center.
Short chỉ được xem xét tại những Grid nằm trên Center.
Bước 8: Kiểm tra Penetration
Bot tính độ xuyên Grid của High hoặc Low.
Khoảng xuyên phải nằm từ 0.05 ATR đến 0.60 ATR.
Bước 9: Xác nhận Rejection Candle
Long yêu cầu:
- Close trên Lower Grid.
- Nến tăng.
- Body Ratio ≥ 0.20.
- Close Location ≥ 0.55.
Short yêu cầu:
- Close dưới Upper Grid.
- Nến giảm.
- Body Ratio ≥ 0.20.
- Close Location ≤ 0.45.
Bước 10: Tạo Raw Rejection Signal
Nếu toàn bộ điều kiện đạt, Raw Rejection Long hoặc Short được xác nhận.
Tuy nhiên, chưa có lệnh được mở cho đến khi vượt Risk, Reward/Risk và Trade Control.
Bước 11: Kiểm tra Trend Breakout
Nếu Trend Regime hợp lệ và Breakout Retest bật, bot theo dõi sự kiện phá Grid theo hướng xu hướng.
Breakout Candle phải đạt Body Ratio tối thiểu 0.30.
Bước 12: Ghi nhận Breakout Setup
Khi Breakout Event xuất hiện, bot lưu:
- Breakout Bar Index.
- Breakout Grid Level.
- Hướng Breakout.
Đây là trạng thái chờ giao dịch.
Bước 13: Kiểm tra Breakout Active
Bot yêu cầu:
- Setup đã tồn tại.
- Nến hiện tại xuất hiện sau nến Breakout.
- Chưa vượt 5 nến.
- Trend Regime vẫn đúng hướng.
Bước 14: Theo dõi Retest
Với Long, giá cần quay lại gần hoặc xuyên xuống mức Breakout Grid, sau đó đóng cửa trên Grid.
Với Short, giá cần quay lại gần hoặc vượt lên mức Breakout Grid, sau đó đóng cửa dưới Grid.
Bước 15: Xác nhận Retest Candle
Bot yêu cầu nến đúng hướng và Body Ratio tối thiểu 0.15.
Khi đạt, Raw Breakout Retest Signal được tạo.
Bước 16: Hủy Breakout Setup không hợp lệ
Setup bị xóa nếu:
- Vượt Retest Window.
- Trend Regime không còn phù hợp.
- Close phá ngược qua Grid vượt mức Tolerance theo điều kiện của từng hướng.
Bước 17: Xác định Signal Type
Bot kết hợp hai bộ máy:
Raw Long = Range Long OR Breakout Long.
Raw Short = Range Short OR Breakout Short, với điều kiện không đồng thời có Raw Long.
Do đó, tín hiệu Long được ưu tiên nếu cả hai hướng cùng xuất hiện.
Bước 18: Xác định Structural Stop
Với Long:
Candidate Stop = Low của nến tín hiệu − ATR × 0.15.
Với Short:
Candidate Stop = High của nến tín hiệu + ATR × 0.15.
Bước 19: Xác định Take Profit theo Grid
Nếu là Range Rejection, Target được đặt tại mức Grid kế tiếp hướng về Center.
Nếu là Trend Breakout, Target được đặt tại Grid kế tiếp theo hướng Breakout.
Bước 20: Tính Risk và Reward
Long:
Risk = Close − Candidate Stop.
Reward = Candidate Target − Close.
Short:
Risk = Candidate Stop − Close.
Reward = Close − Candidate Target.
Bước 21: Kiểm tra Reward/Risk
Bot tính:
RR = Reward / Risk.
Theo mặc định:
RR ≥ 1.25.
Đồng thời:
2 ≤ Risk ≤ 7 điểm.
Bước 22: Kiểm tra Grid Freshness
Bot kiểm tra xem Grid của hướng giao dịch tương ứng có đủ khác so với Grid cuối cùng đã giao dịch trong ngày hay không.
Theo mặc định, One Trade Per Grid/Direction được bật.
Bước 23: Kiểm tra Trade Control
Bot yêu cầu:
- Đang Flat.
- Trong Entry Session.
- Cooldown hợp lệ.
- Chưa đạt 6 giao dịch/ngày.
- Trade Direction cho phép.
- Risk và RR hợp lệ.
- Grid Freshness hợp lệ.
Bước 24: Gửi Final Entry
Khi mọi điều kiện đạt, bot gửi Long hoặc Short với số hợp đồng đã thiết lập.
Theo mặc định:
3 hợp đồng.
Đồng thời, chiến lược lưu Stop, Target và loại Setup để quản trị vị thế.
Bước 25: Khởi tạo vị thế
Sau khi chiến lược nhận diện vị thế đã mở, bot lấy:
Active Entry Price = Strategy Position Average Price.
Stop và Target được lấy từ những mức giá đã lưu khi tạo tín hiệu.
Bước 26: Theo dõi lợi nhuận theo R
Bot tính Maximum Profit R từ mức High/Low thuận lợi trong thời gian giữ vị thế.
Giá trị này được sử dụng cho Break Even nếu chức năng được bật.
Bước 27: Quản trị Stop và Target
Vị thế được quản trị bằng một lệnh strategy.exit() có Stop Loss và Take Profit.
Ngoài ra, bot có thể dời Stop về gần Entry khi Break Even đạt điều kiện.
Bước 28: Force Close cuối phiên
Khi cây nến đi qua mốc 14:45, chiến lược yêu cầu đóng toàn bộ vị thế còn mở.
4. Điều kiện vào lệnh Long và Short của CNPS 49
4.1. Long theo Range Rejection
Theo mặc định, Range Long yêu cầu:
- Range Rejection đang bật.
- Range Regime hợp lệ.
- Lower Grid nằm dưới Center Grid.
- Low xuyên xuống dưới Lower Grid.
- Close quay lại trên Lower Grid.
- Close > Open.
- Body Ratio ≥ 0.20.
- Close Location ≥ 0.55.
- Penetration từ 0.05 đến 0.60 ATR.
- Nến đã đóng.
- Risk từ 2 đến 7 điểm.
- RR ≥ 1.25.
- Grid Freshness hợp lệ.
- Đang Flat và trong Entry Session.
- Cooldown, Trade Limit và Trade Direction hợp lệ.
4.2. Ví dụ Range Long
Giả sử:
- Daily Open = 1,903.
- Center Grid = 1,900.
- Grid Step = 10.
- ATR14 = 5 điểm.
- Range Regime đang hợp lệ.
Cây nến tín hiệu:
- Open = 1,891.
- High = 1,894.
- Low = 1,889.5.
- Close = 1,893.
Lower Grid được xác định tại:
1,890.
Penetration:
1,890 − 1,889.5 = 0.5 điểm.
Khoảng Penetration hợp lệ:
0.25–3 điểm.
Nến tăng:
1,893 > 1,891.
Body Ratio:
2 / 4.5 ≈ 0.44.
Close Location:
3.5 / 4.5 ≈ 0.78.
Cả hai đều đạt ngưỡng.
Structural Stop:
1,889.5 − 5 × 0.15 = 1,888.75.
Risk dự kiến:
1,893 − 1,888.75 = 4.25 điểm.
Take Profit:
Min(1,890 + 10; 1,900) = 1,900.
Reward:
1,900 − 1,893 = 7 điểm.
Reward/Risk:
7 / 4.25 ≈ 1.65.
Vì Risk 4.25 nằm trong khoảng 2–7 và RR1.65 lớn hơn 1.25, tín hiệu đạt Risk Validation.
Nếu các điều kiện còn lại hợp lệ, bot có thể gửi Long.
Đây là ví dụ giả định nhằm minh họa công thức, không phải tín hiệu giao dịch thực tế.
4.3. Short theo Range Rejection
Range Short yêu cầu:
- Range Regime hợp lệ.
- Upper Grid nằm trên Center.
- High xuyên lên trên Upper Grid.
- Close quay lại dưới Upper Grid.
- Nến giảm.
- Body Ratio ≥ 0.20.
- Close Location ≤ 0.45.
- Penetration từ 0.05 đến 0.60 ATR.
- Risk hợp lệ.
- RR tối thiểu 1.25.
- Điều kiện giao dịch chung hợp lệ.
4.4. Ví dụ Range Short
Giả sử:
- Center Grid = 1,900.
- Grid Step = 10.
- ATR14 = 5.
- Range Regime hợp lệ.
Cây nến:
- Open = 1,919.8.
- High = 1,920.4.
- Low = 1,918.5.
- Close = 1,918.7.
Upper Grid:
1,920.
Penetration:
1,920.4 − 1,920 = 0.4 điểm.
Body Ratio:
1.1 / 1.9 ≈ 0.58.
Close Location:
0.2 / 1.9 ≈ 0.11.
Điều kiện Rejection đạt.
Structural Stop:
1,920.4 + 0.75 = 1,921.15.
Risk:
1,921.15 − 1,918.7 = 2.45 điểm.
Target Grid hướng về Center:
1,910.
Reward:
1,918.7 − 1,910 = 8.7 điểm.
RR:
8.7 / 2.45 ≈ 3.55.
Nếu Session và Trade Control hợp lệ, bot có thể gửi Short.
4.5. Long theo Trend Breakout Retest
Trend Long được chia thành hai giai đoạn.
Giai đoạn A – Breakout Event
- Breakout Retest bật.
- Bull Trend hợp lệ.
- Close trước nằm tại hoặc dưới Breakout Upper Grid.
- Close hiện tại vượt lên trên Grid.
- Nến tăng.
- Body Ratio ≥ 0.30.
- Nến đã xác nhận.
Khi đạt, bot lưu Long Breakout Setup.
Giai đoạn B – Retest Confirmation
- Long Breakout Setup còn hiệu lực.
- Nến hiện tại xuất hiện sau nến Breakout.
- Chưa vượt 5 nến.
- Bull Trend vẫn hợp lệ.
- Low ≤ Breakout Level + 0.15 ATR.
- Close > Breakout Level.
- Nến tăng.
- Body Ratio ≥ 0.15.
- Risk từ 2 đến 7 điểm.
- RR ≥ 1.25.
- Grid Freshness và Trade Control hợp lệ.
4.6. Ví dụ Trend Breakout Long
Giả sử:
- Center Grid = 1,900.
- Grid Step = 10.
- Bull Trend hợp lệ.
- ATR14 = 5.
Một cây nến Breakout đóng cửa vượt Grid 1,920.
Bot lưu:
Long Break Level = 1,920.
Tại nến tiếp theo:
- Open = 1,920.5.
- High = 1,923.5.
- Low = 1,919.8.
- Close = 1,922.
Retest Tolerance:
5 × 0.15 = 0.75 điểm.
Điều kiện Touch:
Low 1,919.8 ≤ 1,920.75.
Close Hold:
1,922 > 1,920.
Body Ratio:
1.5 / 3.7 ≈ 0.41.
Đạt ngưỡng 0.15.
Structural Stop:
1,919.8 − 0.75 = 1,919.05.
Risk dự kiến:
1,922 − 1,919.05 = 2.95 điểm.
Target:
1,920 + 10 = 1,930.
Reward:
1,930 − 1,922 = 8 điểm.
RR:
8 / 2.95 ≈ 2.71.
Nếu toàn bộ điều kiện đạt, bot có thể gửi Trend Long.
4.7. Short theo Trend Breakout Retest
Với Short, giai đoạn Breakout yêu cầu:
- Bear Trend hợp lệ.
- Giá phá xuống dưới Breakout Lower Grid.
- Nến giảm.
- Body Ratio ≥ 0.30.
Sau khi Setup được tạo, bot chờ:
- High ≥ Break Level − 0.15 ATR.
- Close < Break Level.
- Nến giảm.
- Body Ratio ≥ 0.15.
- Risk và RR hợp lệ.
Target là Grid kế tiếp phía dưới.
4.8. Ví dụ Trend Breakout Short
Giả sử:
- Center Grid = 1,900.
- Bear Trend đang hợp lệ.
- Giá phá xuống dưới Grid 1,880.
- Breakout Level = 1,880.
- ATR14 = 5.
Nến Retest:
- Open = 1,879.3.
- High = 1,880.4.
- Low = 1,877.
- Close = 1,878.4.
Retest Tolerance:
0.75 điểm.
Điều kiện:
High 1,880.4 ≥ 1,879.25.
Close 1,878.4 < 1,880.
Body Ratio:
0.9 / 3.4 ≈ 0.26.
Đạt yêu cầu 0.15.
Stop:
1,880.4 + 0.75 = 1,881.15.
Risk:
1,881.15 − 1,878.4 = 2.75 điểm.
Target:
1,880 − 10 = 1,870.
Reward:
1,878.4 − 1,870 = 8.4 điểm.
RR:
8.4 / 2.75 ≈ 3.05.
Tín hiệu đạt Risk và RR mặc định.
4.9. Breakout Event không tạo Entry ngay
Đây là một đặc điểm quan trọng của CNPS 49 V2.
Khi nến phá Grid xuất hiện, bot chỉ lưu Setup.
Một Entry chỉ được xét từ cây nến tiếp theo.
Nhờ vậy, chiến lược phân biệt được sự kiện phá mức giá với tín hiệu kiểm tra lại và giữ mức giá đó.
Tuy nhiên, việc thêm bước Retest không bảo đảm loại bỏ toàn bộ Breakout giả.
4.10. Retest không yêu cầu chạm chính xác Grid
Với Long:
Low ≤ Breakout Grid + Tolerance.
Vì có Tolerance, giá có thể tiến gần Grid mà chưa chạm chính xác mức Grid và vẫn đạt điều kiện.
Ngoài ra, nếu Low xuyên sâu xuống dưới Grid nhưng Close phục hồi trên Grid, điều kiện Retest vẫn có thể hợp lệ.
Với Short, logic tương tự áp dụng phía đối diện.
Vì vậy, Retest Tolerance là vùng cho phép tiếp cận Grid, không phải giới hạn nghiêm ngặt về độ xuyên qua.
4.11. Range Rejection và Trend Breakout dùng cùng Grid nhưng khác mục tiêu
Đây là điểm đặc trưng nhất của CNPS 49.
Giả sử giá đang quanh Grid 1,920.
Nếu Range Rejection Short hợp lệ:
Target có thể là 1,910.
Nếu Trend Breakout Long và Retest hợp lệ:
Target có thể là 1,930.
Cùng một mức Grid nhưng ý nghĩa giao dịch khác nhau tùy trạng thái Regime và hướng tín hiệu.
5. CNPS 49 quản trị Stop Loss, Take Profit và Reward/Risk như thế nào?
5.1. Structural Stop Loss
CNPS 49 sử dụng Stop Loss từ nến tạo tín hiệu.
Với Long:
Stop = Low − ATR14 × 0.15.
Với Short:
Stop = High + ATR14 × 0.15.
Điểm quan trọng là source sử dụng High/Low của cây nến tín hiệu hiện tại, không bắt buộc sử dụng cực trị của toàn bộ quá trình Breakout Setup.
5.2. Stop Loss không được đặt cố định tại Grid
Mặc dù chiến lược giao dịch theo lưới giá, Stop Loss không tự động được đặt đúng tại mức Grid.
Ví dụ:
- Long Signal xuất hiện quanh Grid 1,900.
- Low nến tín hiệu = 1,898.5.
- ATR14 = 4.
Stop:
1,898.5 − 0.6 = 1,897.9.
Stop nằm dưới Low của cây nến tín hiệu, không phải tại Grid 1,900.
5.3. Minimum và Maximum Risk
Theo mặc định:
Minimum Risk = 2 điểm.
Maximum Risk = 7 điểm.
Đây là bộ lọc bắt buộc.
Nếu Risk nhỏ hơn 2 hoặc lớn hơn 7, Final Entry không được chấp thuận.
Các mức này không bị bỏ qua trong cấu hình mặc định.
5.4. Reward/Risk Validation
Ngoài giới hạn Risk, CNPS 49 yêu cầu tỷ lệ lợi nhuận tiềm năng so với rủi ro dự kiến đạt ngưỡng.
Công thức:
RR = Candidate Reward / Candidate Risk.
Mặc định:
Minimum RR = 1.25.
Nếu RR dưới 1.25, tín hiệu bị từ chối dù các điều kiện kỹ thuật đã hợp lệ.
5.5. Ví dụ tín hiệu đạt Risk nhưng không đạt RR
Giả sử:
- Long Close = 1,897.
- Candidate Stop = 1,892.
- Target = 1,900.
Risk:
5 điểm.
Reward:
3 điểm.
RR:
3/5 = 0.60.
Risk 5 điểm nằm trong giới hạn 2–7.
Tuy nhiên, RR0.60 thấp hơn 1.25.
Vì vậy:
Final Long không được chấp thuận.
Đây là bộ lọc quan trọng nhằm tránh các giao dịch có Target quá gần so với Stop.
5.6. Take Profit của Range Rejection
Với Range Long:
Target = Min(Lower Grid + Grid Step, Center Grid).
Với Range Short:
Target = Max(Upper Grid − Grid Step, Center Grid).
Target luôn hướng về Center Grid theo quy tắc của bộ máy Range.
Ví dụ:
- Center = 1,900.
- Long Rejection tại Grid 1,880.
Target:
1,890.
Nếu Long Rejection tại Grid 1,890:
Target:
1,900.
5.7. Take Profit của Trend Breakout
Với Trend Long:
Target = Breakout Level + Grid Step.
Với Trend Short:
Target = Breakout Level − Grid Step.
Ví dụ:
- Long Breakout Level = 1,920.
- Grid Step = 10.
Target:
1,930.
Target là mức Grid tiếp theo theo hướng xu hướng.
5.8. Target được lưu theo mức giá trước Entry
Khi Final Entry được xác nhận, bot lưu Pending Target.
Sau khi vị thế khớp, Active Target sử dụng mức Target đã lưu.
Điều này có nghĩa Target không được tự động tính lại từ giá khớp trung bình.
Nếu giá khớp khác Close của nến tín hiệu, Reward thực tế có thể thay đổi.
5.9. Actual RR có thể khác Candidate RR
Ví dụ:
- Long Close tín hiệu = 1,900.
- Stop = 1,895.
- Target = 1,908.
Candidate Risk:
5 điểm.
Candidate Reward:
8 điểm.
Candidate RR:
1.60.
Giả sử giá khớp trung bình bằng 1,902:
Actual Risk:
1,902 − 1,895 = 7 điểm.
Actual Reward:
1,908 − 1,902 = 6 điểm.
Actual RR:
6/7 ≈ 0.86.
Như vậy, dù Candidate RR vượt ngưỡng 1.25, Actual RR sau khớp có thể thấp hơn.
Mã nguồn không có bước kiểm tra lại RR sau khi vị thế được mở.
5.10. Take Profit không phải một tỷ lệ R cố định
CNPS 49 khác những bot đặt TP1.8R hoặc TP2R.
Ở đây, Target được xác định theo Grid.
RR là điều kiện kiểm tra trước Entry.
Vì vậy, giao dịch có thể có:
- RR1.30.
- RR1.80.
- RR2.50.
- RR3.00.
Miễn đạt Minimum RR và các điều kiện khác.
Bot không bắt buộc mọi giao dịch phải chốt ở cùng một mức R.
5.11. Break Even
CNPS 49 hỗ trợ Break Even nhưng mặc định tắt.
Thông số:
Use Break Even = False.
Trigger = 1R.
Offset = 0.5 điểm.
Khi bật, bot theo dõi Maximum Profit R và dời Stop nếu đạt điều kiện.
Với Long:
New Stop = Max(Current Stop, Entry + 0.5).
Với Short:
New Stop = Min(Current Stop, Entry − 0.5).
5.12. Maximum Profit R
CNPS 49 tính mức lợi nhuận thuận lợi theo R.
Với Long:
Profit R = (High − Entry) / Actual Initial Risk.
Với Short:
Profit R = (Entry − Low) / Actual Initial Risk.
Maximum Profit R lưu mức lớn nhất đã ghi nhận.
Giá trị này không giảm khi thị trường điều chỉnh.
5.13. Không có Dynamic Trailing độc lập
CNPS 49 V2 không có một bộ máy Trailing Stop liên tục theo EMA, ATR hay Grid.
Các phương pháp quản trị vị thế gồm:
- Structural Stop.
- Target Grid cố định.
- Break Even tùy chọn.
- Force Close cuối phiên.
Vì vậy, không nên mô tả CNPS 49 là chiến lược có hệ thống Smart Trailing Stop.
5.14. One Trade Per Grid/Direction
Theo mặc định:
One Trade Per Grid/Direction/Day = True.
Bot lưu:
- Last Long Grid.
- Last Short Grid.
Sau mỗi Entry, mức Grid tương ứng được ghi nhận.
Khi có tín hiệu tiếp theo, bot so sánh Grid mới với Grid gần nhất đã giao dịch cùng hướng.
Để được xem là Grid mới, khoảng cách phải đạt ít nhất:
0.5 × Grid Step.
Tuy nhiên, source chỉ lưu Grid gần nhất của mỗi hướng, không lưu danh sách tất cả Grid đã giao dịch trong ngày.
Vì vậy, tính năng này không bảo đảm tuyệt đối rằng một Grid sẽ chỉ được giao dịch một lần trong cả ngày nếu trước đó đã có giao dịch tại một Grid khác.
5.15. Maximum Trades Per Day
Theo mặc định:
Maximum Trades Per Day = 6.
Sau khi bot gửi một Final Entry, Trades Today tăng thêm một.
Khi số Entry đã gửi đạt 6, những giao dịch tiếp theo bị từ chối cho đến ngày mới.
Bộ đếm được đặt lại theo ngày dựa trên Timezone đã thiết lập.
5.16. Cooldown After Exit
CNPS 49 sử dụng:
Cooldown = 2 nến.
Điều kiện:
Current Bar − Last Exit Bar > 2.
Ví dụ:
- Exit được ghi nhận tại Bar 100.
- Bar 101: Chưa đạt.
- Bar 102: Chưa đạt.
- Bar 103: Đạt.
Đây là một bộ lọc đối với Final Entry.
5.17. Force Close
Bot có mốc đóng vị thế cuối phiên:
14:45.
Khi cây nến đi qua thời điểm này, chiến lược yêu cầu đóng toàn bộ vị thế đang mở bằng strategy.close_all(immediately=true).
5.18. Tổng hợp cơ chế quản trị
| Cơ chế | Mặc định | Vai trò |
|---|---|---|
| Structural Stop | Bật | High/Low nến tín hiệu |
| ATR Stop Buffer | 0.15 ATR | Đặt Stop ngoài nến |
| Minimum Risk | 2 điểm | Bộ lọc bắt buộc |
| Maximum Risk | 7 điểm | Bộ lọc bắt buộc |
| Minimum RR | 1.25 | Bộ lọc bắt buộc |
| Range Target | Grid kế tiếp về Center | Chốt lời Range |
| Trend Target | Grid kế tiếp theo xu hướng | Chốt lời Breakout |
| Break Even | Tắt | Dời Stop từ 1R |
| Dynamic Trailing | Không có | Không áp dụng |
| Maximum Trades/Day | 6 | Giới hạn Entry |
| Cooldown | 2 nến | Khoảng nghỉ sau Exit |
| Force Close | 14:45 | Đóng cuối phiên |
6. Hướng dẫn cài đặt và sử dụng CNPS 49 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 49 sử dụng Daily Open để xây dựng Grid, trong khi các chỉ báo EMA, ADX, ATR và tín hiệu nến được tính trên khung thời gian biểu đồ.
Do đó, cùng một hệ thống Grid có thể tạo tín hiệu khác nhau trên M1 và M5.
Bước 2: Thêm mã nguồn
- Mở TradingView.
- Chọn Pine Editor.
- Tạo Strategy mới.
- Dán mã nguồn CNPS49 DAILY OPEN GRID V2 ADAPTIVE REGIME.
- Lưu mã nguồn.
- Chọn Add to chart.
- Kiểm tra hệ thống Grid.
- Mở Strategy Tester.
Tên Strategy:
CNPS49 DAILY OPEN GRID V2 ADAPTIVE REGIME
Short Title:
CNPS49 GRID V2
Phiên bản:
//@version=6
Bước 3: Cấu hình Grid
| Thông số | Mặc định |
|---|---|
| Basis Offset | 0 |
| Grid Step | 10 |
| Lines Above/Below | 15 |
Grid Step quyết định khoảng cách các mức giá.
Lines Above/Below chỉ ảnh hưởng số lượng Grid được vẽ trên biểu đồ, không giới hạn bộ máy giao dịch chỉ được sử dụng những Grid đang hiển thị.
Bước 4: Cấu hình Trend Regime
| Thông số | Mặc định |
|---|---|
| Fast EMA | 20 |
| Slow EMA | 50 |
| Slope Lookback | 3 |
| ADX Length | 14 |
| ADX Smoothing | 14 |
| ADX Threshold | 16 |
| Minimum EMA Separation | 0.08 ATR |
Nhóm này quyết định khi nào bot phân loại thị trường vào Bull Trend hoặc Bear Trend.
Khi điều kiện Trend đạt, bộ máy Range Rejection không hoạt động.
Nếu các điều kiện Trend không đạt, chiến lược sử dụng Range Regime.
Bước 5: Cấu hình Range Rejection
| Thông số | Mặc định |
|---|---|
| Use Range Rejection | Bật |
| Minimum Penetration | 0.05 ATR |
| Maximum Penetration | 0.60 ATR |
| Minimum Body Ratio | 0.20 |
| Minimum Close Location | 0.55 |
Nhóm này quyết định chất lượng một cú quét Grid và đóng cửa quay lại.
Nếu tăng Minimum Penetration, bot yêu cầu giá xuyên Grid sâu hơn.
Nếu giảm Maximum Penetration, những cú xuyên sâu có thể bị loại.
Nếu tăng Minimum Close Location, Long yêu cầu Close nằm gần High hơn, trong khi Short yêu cầu Close nằm gần Low hơn.
Bước 6: Cấu hình Breakout Retest
| Thông số | Mặc định |
|---|---|
| Use Trend Breakout Retest | Bật |
| Breakout Minimum Body Ratio | 0.30 |
| Retest Window | 5 nến |
| Retest Tolerance | 0.15 ATR |
| Retest Candle Minimum Body Ratio | 0.15 |
Đây là nhóm thông số kiểm soát quá trình Breakout và xác nhận Retest.
Breakout Minimum Body Ratio được dùng trên nến phá Grid.
Retest Minimum Body Ratio được dùng trên nến Entry.
Hai ngưỡng này hoạt động độc lập.
Bước 7: Cấu hình Risk
| Thông số | Mặc định |
|---|---|
| ATR Length | 14 |
| Stop Buffer | 0.15 ATR |
| Minimum Risk | 2 điểm |
| Maximum Risk | 7 điểm |
| Minimum RR | 1.25 |
Đây là nhóm quan trọng vì tất cả tín hiệu đều phải vượt Risk và RR Validation.
Nếu tăng Grid Step, khoảng Target có thể thay đổi.
Nếu tăng Stop Buffer, Risk có thể rộng hơn.
Nếu tăng Minimum RR, số tín hiệu đạt điều kiện có thể giảm.
Bước 8: Cấu hình Break Even
| Thông số | Mặc định |
|---|---|
| Use Break Even | Tắt |
| Trigger | 1R |
| Offset | 0.5 điểm |
Khi bật, bot có thể điều chỉnh Stop theo Maximum Profit R.
Tuy nhiên, Target Grid ban đầu vẫn được giữ nguyên.
Bước 9: Cấu hình Trade Control
| Thông số | Mặc định |
|---|---|
| Trade Direction | Both |
| Position Size | 3 hợp đồng |
| Maximum Trades Per Day | 6 |
| Cooldown | 2 nến |
| One Trade Per Grid/Direction | Bật |
Trade Direction hỗ trợ Long, Short và Both.
Position Size là khối lượng cố định, không tự động điều chỉnh theo Stop Distance hoặc RR.
Bước 10: Cấu hình Session
| Thông số | Mặc định |
|---|---|
| Timezone | Asia/Ho_Chi_Minh |
| Morning Entry | 09:00–11:30 |
| Afternoon Entry | 13:00–14:30 |
| Force Close | 14:45 |
CNPS 49 đã chia riêng hai cửa sổ Entry.
Tuy nhiên, việc tạo Breakout Setup không trực tiếp yêu cầu đang trong Entry Session.
Do đó, trạng thái chờ Retest có thể được ghi nhận trước khi bot được phép gửi Final Entry.
Bước 11: Hiển thị trên biểu đồ
| Thành phần | Mặc định |
|---|---|
| Grid Lines | Bật |
| EMA20/50 | Tắt |
| Signal Markers | Tắt |
| Active Stop/Target | Bật |
| Diagnostics | Tắt |
Khi bật Grid, Center được hiển thị bằng đường màu cam.
Các Grid còn lại sử dụng màu xám.
Signal Markers được phân biệt:
R: Range Rejection.
B: Trend Breakout Retest.
Các dấu hiệu được hiển thị theo Raw Signal, không nhất thiết tương ứng với Entry đã được khớp.
Bước 12: Sử dụng Diagnostics
CNPS 49 có bảng Diagnostics gồm 2 cột × 17 hàng.
Các trường chính:
- Chart Timeframe.
- Regime.
- ADX.
- EMA Separation ATR.
- Center Grid.
- Lower Grid.
- Upper Grid.
- Range Long.
- Range Short.
- Breakout Long.
- Breakout Short.
- Long Candidate RR.
- Short Candidate RR.
- Trades Today.
- Active Setup.
- Maximum Profit R.
- Position.
Ví dụ:
Regime: BULL TREND.
ADX: 23.
Center: 1,900.
Break Long: YES.
Long RR: 2.15.
Điểm quan trọng là trạng thái Break Long bằng YES không có nghĩa Final Entry chắc chắn được gửi.
Bot còn phải kiểm tra Risk, Session, Cooldown, Trade Limit và Grid Freshness.
Bước 13: Kiểm thử Strategy Tester
Các chỉ số nên theo dõi:
- Net Profit.
- Maximum Drawdown.
- Profit Factor.
- Total Trades.
- Win Rate.
- Average Trade.
- Average Winning Trade.
- Average Losing Trade.
Các thử nghiệm đề xuất:
Thử nghiệm 1: Grid Step 10 mặc định.
Thử nghiệm 2: Grid Step 5 so với 10 và 15.
Thử nghiệm 3: Thay đổi Basis Offset.
Thử nghiệm 4: ADX16 so với ADX20 hoặc ADX25.
Thử nghiệm 5: EMA Separation 0.08 so với 0.15 ATR.
Thử nghiệm 6: Chỉ sử dụng Range Rejection.
Thử nghiệm 7: Chỉ sử dụng Trend Breakout Retest.
Thử nghiệm 8: Tăng Minimum Range Penetration.
Thử nghiệm 9: Giảm Maximum Range Penetration.
Thử nghiệm 10: Điều chỉnh Close Location.
Thử nghiệm 11: Breakout Body Ratio 0.30 so với 0.40.
Thử nghiệm 12: Retest Window 3, 5 và 8 nến.
Thử nghiệm 13: Retest Tolerance 0.15 so với 0.30 ATR.
Thử nghiệm 14: Minimum RR 1.25 so với 1.50 hoặc 2.00.
Thử nghiệm 15: Điều chỉnh Maximum Risk từ 7 điểm.
Thử nghiệm 16: Bật Break Even tại 1R.
Thử nghiệm 17: Bật/tắt One Trade Per Grid/Direction.
Thử nghiệm 18: Thay đổi Maximum Trades Per Day.
Thử nghiệm 19: Thay đổi Cooldown.
Thử nghiệm 20: So sánh M1 và M5.
Theo mã nguồn:
- Initial Capital: 100,000,000 VNĐ.
- Position Size mặc định: 3 hợp đồng.
- Commission: 10,000 VNĐ/hợp đồng/lần khớp.
- Slippage: 3 ticks.
- Pyramiding: 0.
- Process Orders On Close: Bật.
- Calculate On Order Fills: Bật.
- Fill Orders On Standard OHLC: Bật.
- Margin Long/Short: 0.
Những thông số này phục vụ mô phỏng trên TradingView, không phản ánh đầy đủ yêu cầu ký quỹ và chất lượng thực thi thực tế.
7. Cách thiết lập cảnh báo tín hiệu giao dịch
CNPS 49 hỗ trợ cảnh báo qua Order Fill Events trong TradingView.
Để thiết lập:
- Mở biểu đồ có CNPS49 DAILY OPEN GRID V2 ADAPTIVE REGIME.
- Chọn Create Alert.
- Trong Condition, chọn CNPS49.
- Chọn cảnh báo từ Order Fills.
- Trong Message, nhập
{{strategy.order.alert_message}}. - Lựa chọn phương thức nhận cảnh báo và lưu.
7.1. Cảnh báo Range Entry
| Alert Message | Ý nghĩa |
|---|---|
| ENTRY_LONG_RANGE_CNPS49_V2 | Long theo Range Rejection |
| ENTRY_SHORT_RANGE_CNPS49_V2 | Short theo Range Rejection |
Hai thông điệp được sử dụng khi Final Entry thuộc bộ máy Range.
7.2. Cảnh báo Breakout Retest Entry
| Alert Message | Ý nghĩa |
|---|---|
| ENTRY_LONG_BREAKOUT_CNPS49_V2 | Long theo Breakout Retest |
| ENTRY_SHORT_BREAKOUT_CNPS49_V2 | Short theo Breakout Retest |
Các thông điệp này phân biệt giao dịch theo xu hướng với giao dịch theo Range.
Một Breakout Event đơn thuần chưa tạo Order Fill Alert.
7.3. Cảnh báo Stop Loss
| Alert Message | Ý nghĩa |
|---|---|
| EXIT_LONG_SL_CNPS49_V2 | Long đóng theo Stop |
| EXIT_SHORT_SL_CNPS49_V2 | Short đóng theo Stop |
Các mã được sử dụng khi Break Even chưa kích hoạt.
7.4. Cảnh báo Take Profit
| Alert Message | Ý nghĩa |
|---|---|
| EXIT_LONG_TP_CNPS49_V2 | Long đóng theo Target Grid |
| EXIT_SHORT_TP_CNPS49_V2 | Short đóng theo Target Grid |
Đây là những cảnh báo khi Limit Target được khớp trong mô phỏng.
Target không nhất thiết tương ứng với 1.25R vì tỷ lệ RR thực tế phụ thuộc vị trí Entry và Stop.
7.5. Cảnh báo Break Even
| Alert Message | Ý nghĩa |
|---|---|
| EXIT_LONG_BE_CNPS49_V2 | Long đóng qua Stop sau khi Break Even kích hoạt |
| EXIT_SHORT_BE_CNPS49_V2 | Short đóng qua Stop sau khi Break Even kích hoạt |
Break Even mặc định tắt.
Nếu được bật, bot có thể chuyển sang mã cảnh báo BE sau khi Stop được điều chỉnh.
7.6. Cảnh báo Force Close
Thông điệp:
SESSION_END_CNPS49_V2
Được sử dụng khi chiến lược yêu cầu đóng toàn bộ vị thế cuối phiên.
Mốc Force Close mặc định:
14:45.
7.7. Disable Exit Alerts
CNPS 49 có tùy chọn:
Disable Exit Alerts?
Mặc định:
False.
Nếu bật, bot vô hiệu hóa cảnh báo từ các lệnh Stop Loss và Take Profit được tạo bằng strategy.exit().
Tùy chọn này không trực tiếp tắt Entry Alerts và Force Close Alerts.
7.8. Lưu ý khi tích hợp Webhook
CNPS 49 phân biệt rõ bốn loại Entry:
- Range Long.
- Range Short.
- Breakout Long.
- Breakout Short.
Đây là lợi thế khi muốn thống kê hiệu quả riêng từng bộ máy.
Tuy nhiên, các thông điệp mặc định chưa truyền đầy đủ:
- Daily Open.
- Center Grid.
- Grid Step.
- Regime.
- ADX.
- EMA Separation.
- Signal Grid.
- Candidate Stop.
- Candidate Target.
- Candidate Risk.
- Candidate Reward.
- Candidate RR.
- Actual Entry.
- Active Stop.
- Active Target.
- Khối lượng khớp.
- Thời điểm giao dịch.
Nếu muốn tích hợp với hệ thống tự động hóa, người dùng cần bổ sung thông tin thông qua TradingView Placeholders hoặc chỉnh sửa Pine Script.
Đặc biệt, nên phân biệt Candidate RR tính từ Close tín hiệu với Actual RR từ giá khớp.
Một Order Fill Alert từ TradingView không đồng nghĩa giao dịch đã được khớp tại công ty chứng khoán.
Kết luận
CNPS 49 DAILY OPEN GRID V2 ADAPTIVE REGIME là chiến lược giao dịch chứng khoán phái sinh sử dụng Daily Open làm cơ sở xây dựng hệ thống lưới giá, kết hợp EMA20/50, ADX và ATR để xác định trạng thái thị trường.
Điểm nổi bật của chiến lược là sử dụng hai phương pháp giao dịch khác nhau trên cùng một hệ thống Grid.
Trong Range Regime, bot tìm kiếm những tín hiệu giá xuyên qua Grid và quay trở lại, với mục tiêu là mức Grid kế tiếp hướng về Daily Open Center.
Trong Trend Regime, chiến lược chuyển sang tìm kiếm Breakout theo hướng EMA20/50 và ADX, sau đó chờ Retest để xác nhận khả năng giá giữ được mức Grid vừa phá.
Theo cấu hình mặc định, CNPS 49 sử dụng Grid Step 10 điểm, EMA20/50, ADX tối thiểu 16 và EMA Separation tối thiểu 0.08 ATR.
Range Rejection yêu cầu Penetration từ 0.05 đến 0.60 ATR, Candle Body Ratio tối thiểu 20% và Close Location phù hợp.
Trend Breakout yêu cầu Body Ratio tối thiểu 30%, sau đó chờ Retest trong tối đa 5 nến với Body Ratio tối thiểu 15%.
Về quản trị rủi ro, bot đặt Structural Stop dựa trên cực trị nến tín hiệu kết hợp ATR Buffer 0.15.
Take Profit không được đặt theo một tỷ lệ R cố định mà được xác định tại Grid kế tiếp tùy phương pháp giao dịch.
Tuy nhiên, tất cả tín hiệu phải đáp ứng Risk dự kiến từ 2 đến 7 điểm và Reward/Risk tối thiểu 1.25.
Chiến lược còn giới hạn tối đa 6 giao dịch/ngày, sử dụng Cooldown 2 nến sau Exit và hỗ trợ Break Even tùy chọn.
Một điểm quan trọng cần hiểu rõ là Range Regime trong CNPS 49 được định nghĩa bằng việc không đáp ứng Trend Regime, không nhất thiết đồng nghĩa thị trường đang đi ngang.
Ngoài ra, RR được kiểm tra trước khi Entry, trong khi Stop và Target được lưu theo mức giá cố định. Vì vậy, kết quả khớp thực tế có thể tạo tỷ lệ Reward/Risk khác với mức đã được xét duyệt ban đầu.
Khi sử dụng CNPS 49, người dùng cần đặc biệt chú ý đến cách xây dựng Daily Open Center, vai trò của Grid Step, điều kiện phân loại Regime, sự khác biệt giữa Range Rejection và Breakout Retest, cùng cơ chế Risk/RR Validation.
Nên kiểm thử riêng từng bộ máy, điều chỉnh Grid Step, ADX Threshold, Retest Window và Minimum RR trên nhiều trạng thái thị trường trước khi cân nhắc áp dụng vào giao dịch thực tế.
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, phương pháp Grid Trading, phân tích xu hướng, Breakout Retest và các chiến lược quản trị rủi ro 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 bảo đảm lợi nhuận trong tương lai.
Thông tin trong bài chỉ mang tính tham khảo, không phải khuyến nghị mua bán. Giao dịch phái sinh có rủi ro cao do sử dụng đòn bẩy; nhà đầu tư tự chịu trách nhiệm với quyết định của mình.





