Hướng Dẫn Sử Dụng Bot CNPS39-MACD cho VN30F1M
TradingviewHướng dẫn Bot CNPS 39 MACD SAR Pullback: kết hợp MACD, Parabolic SAR, EMA200, xác nhận Pullback EMA20 và quản trị Stop Loss, Take Profit 2R.

Mục lục
Trong giao dịch chứng khoán phái sinh, việc xác định đúng hướng thị trường mới chỉ là một phần của quá trình xây dựng chiến lược. Một vấn đề không kém phần quan trọng là lựa chọn thời điểm vào lệnh, đặc biệt khi giá đã di chuyển đáng kể sau khi các chỉ báo xác nhận xu hướng.
Trên những khung thời gian ngắn như M1 hoặc M5, tín hiệu giao cắt MACD và thay đổi trạng thái Parabolic SAR có thể xuất hiện ngay sau một nhịp tăng hoặc giảm mạnh. Nếu tham gia ngay tại thời điểm tín hiệu hình thành, nhà giao dịch có thể phải chấp nhận mức giá kém thuận lợi hoặc đối mặt với một nhịp điều chỉnh trước khi xu hướng tiếp tục.
Một cách tiếp cận là kết hợp nhiều chỉ báo để xác nhận xu hướng, sau đó chờ giá điều chỉnh về một vùng tham chiếu trước khi mở vị thế.
CNPS 39 V2 MACD SAR PULLBACK là chiến lược giao dịch được phát triển bằng Pine Script v6 trên TradingView, sử dụng ba thành phần kỹ thuật chính gồm EMA200, MACD và Parabolic SAR để nhận diện tín hiệu xu hướng, sau đó áp dụng cơ chế Armed Setup nhằm tìm kiếm điểm vào lệnh sau Pullback.
Điểm khác biệt của phiên bản V2 là chiến lược không giao dịch ngay khi MACD và SAR bắt đầu đồng thuận.
Thay vào đó, bot hoạt động theo quy trình:
EMA200 + MACD/SAR Agreement → Source Arm Event → Chờ Pullback → Reclaim → Xác nhận xu hướng và nến → Kiểm tra rủi ro → Entry.
Ví dụ, khi giá nằm trên EMA200, MACD Line vượt Signal Line và Parabolic SAR nằm dưới giá, chiến lược có thể ghi nhận một tín hiệu Long nguồn.
Tuy nhiên, thay vì mở Long ngay tại cây nến này, CNPS 39 kích hoạt Long Armed và chờ tối đa 10 nến để giá kiểm tra EMA20 hoặc trung điểm cây nến tạo tín hiệu.
Sau đó, nếu giá đóng cửa trở lại phía trên vùng tham chiếu, MACD và SAR vẫn đồng thuận tăng, EMA200 tiếp tục xác nhận xu hướng, nến có chất lượng phù hợp và khoảng Stop Loss nằm trong giới hạn, bot mới xem xét mở vị thế.
Đối với Short, chiến lược áp dụng logic tương ứng theo hướng giảm.
Ngoài hệ thống tín hiệu, CNPS 39 hỗ trợ bộ lọc độ dốc EMA200, ADX/DI tùy chọn, Stop Loss theo cấu trúc giá, Take Profit 2R, Break Even và giới hạn số lượng giao dịch trong ngày.
Vậy CNPS 39 hoạt động như thế nào, sự đồng thuận MACD/SAR được xác định ra sao, hai phương pháp Pullback có gì khác biệt và người dùng cần lưu ý những gì khi sử dụng chiến lược?
1. CNPS 39 V2 MACD SAR Pullback là gì?
CNPS 39 V2 MACD SAR Pullback là bot giao dịch được xây dựng dưới dạng TradingView Strategy, hướng đến việc hỗ trợ giao dịch hợp đồng tương lai chỉ số VN30 bằng phương pháp Trend Following kết hợp Pullback Confirmation.
Chiến lược được tổ chức thành bốn thành phần chính.
1.1. Source Engine – Bộ máy xác định xu hướng
CNPS 39 sử dụng ba yếu tố kỹ thuật:
- EMA200 để đánh giá vị trí giá so với xu hướng dài hạn.
- MACD để xác nhận tương quan giữa MACD Line và Signal Line.
- Parabolic SAR để đánh giá vị trí của SAR so với giá hiện tại.
Với Long, điều kiện nguồn là:
Close > EMA200.
MACD Line > MACD Signal.
Parabolic SAR < Close.
Với Short:
Close < EMA200.
MACD Line < MACD Signal.
Parabolic SAR > Close.
Tuy nhiên, chiến lược không tạo Armed Setup chỉ vì ba điều kiện này đang được duy trì.
Bot còn yêu cầu xuất hiện một sự kiện mới khi cặp MACD/SAR chuyển từ trạng thái chưa đồng thuận sang đồng thuận.
1.2. Source Arm Event – Kích hoạt thiết lập chờ
Khi cặp MACD/SAR vừa bắt đầu đồng thuận, đồng thời giá nằm đúng phía EMA200, bot có thể phát hiện một Source Arm Event.
Theo cấu hình mặc định:
Source Trigger Route = Both.
Điều này cho phép tín hiệu nguồn xuất hiện thông qua sự thay đổi của MACD hoặc SAR, miễn cặp chỉ báo đạt trạng thái đồng thuận mới.
Sau sự kiện này, bot kích hoạt Long Armed hoặc Short Armed.
Armed Setup là trạng thái chờ, chưa phải một lệnh giao dịch.
1.3. Pullback Confirmation – Tìm điểm vào lệnh
CNPS 39 hỗ trợ hai phương pháp xác định vùng Pullback:
EMA20: Sử dụng đường EMA ngắn hạn làm tham chiếu động.
Signal Candle Midpoint: Sử dụng trung điểm High–Low của cây nến tạo Source Arm Event.
Theo mặc định, chiến lược sử dụng EMA20.
Bot chờ giá chạm vùng tham chiếu với dung sai 0,20 ATR14, sau đó yêu cầu giá đóng cửa trở lại đúng phía vùng này.
Tại thời điểm đó, điều kiện EMA200, MACD, SAR, Candle Quality và các bộ lọc đang bật phải tiếp tục hợp lệ.
1.4. Risk Management – Quản trị giao dịch
CNPS 39 sử dụng Stop Loss theo cấu trúc giá.
Với Long:
SL = Lowest Low(5) − 0,10 ATR14.
Với Short:
SL = Highest High(5) + 0,10 ATR14.
Khoảng rủi ro dự kiến phải nằm trong:
2,5–7 điểm.
Take Profit mặc định:
2R.
Ngoài ra, bot hỗ trợ Break Even tùy chọn, thoát vị thế khi MACD/SAR mất đồng thuận, Time Exit và Force Close cuối phiên.
1.5. Các thông số mặc định
| Thành phần | Thiết lập |
|---|---|
| Trend EMA | EMA200 |
| MACD Fast | 12 |
| MACD Slow | 26 |
| MACD Signal | 9 |
| Parabolic SAR Start | 0,02 |
| Parabolic SAR Increment | 0,02 |
| Parabolic SAR Maximum | 0,20 |
| Source Trigger Route | Both |
| Pullback Reference | EMA20 |
| Maximum Arm Life | 10 nến |
| Pullback Tolerance | 0,20 ATR |
| EMA200 Slope Filter | Bật |
| EMA Slope Lookback | 5 nến |
| Directional Candle | Bật |
| Minimum Body Ratio | 0,35 |
| Previous High/Low Break | Tắt |
| ADX/DI Filter | Tắt |
| Minimum ADX nếu bật | 18 |
| Structural Stop Lookback | 5 nến |
| Stop Buffer | 0,10 ATR |
| Minimum Risk | 2,5 điểm |
| Maximum Risk | 7 điểm |
| Take Profit | 2R |
| Break Even | Tắt |
| MACD/SAR Pair Failure Exit | Tắt |
| Maximum Bars In Trade | 90 |
| Maximum Trades Per Day | 2 |
| Cooldown | 8 nến |
| Position Size | 3 hợp đồng |
Source Code CNPS 39: CNPS39
2. Những khái niệm kỹ thuật được sử dụng trong CNPS 39
2.1. EMA200 – Bộ lọc xu hướng dài hạn
Exponential Moving Average (EMA) là đường trung bình động hàm mũ, được tính với trọng số lớn hơn dành cho các mức giá gần hiện tại.
CNPS 39 sử dụng EMA200 làm bộ lọc xu hướng chính.
Điều kiện Long:
Close > EMA200.
Điều kiện Short:
Close < EMA200.
Nếu giá đóng cửa nằm trên EMA200, chiến lược có thể xem xét tín hiệu Long khi MACD và SAR đồng thuận.
Ngược lại, khi Close nằm dưới EMA200, bot có thể xem xét tín hiệu Short.
Điểm quan trọng là EMA200 được sử dụng ở cả hai giai đoạn:
- Khi xác định Source Arm Event.
- Khi xác nhận điều kiện Entry sau Pullback.
Vì vậy, một Source Long Event có thể xuất hiện khi giá đang trên EMA200, nhưng nếu giá giảm xuống dưới EMA200 trong quá trình Pullback, bot không mở Long cho đến khi điều kiện xu hướng được đáp ứng trở lại.
2.2. EMA200 Slope – Độ dốc xu hướng
Ngoài vị trí giá, CNPS 39 có một bộ lọc độ dốc EMA200.
Theo cấu hình mặc định:
Require EMA200 Slope = Bật.
Slope Lookback = 5 nến.
Long yêu cầu:
EMA200 hiện tại > EMA200 cách 5 nến.
Short yêu cầu:
EMA200 hiện tại < EMA200 cách 5 nến.
Ví dụ:
- EMA200 hiện tại = 1.900.
- EMA200 cách 5 nến = 1.898.
Điều kiện độ dốc Long hợp lệ.
Tuy nhiên, EMA200 Slope không yêu cầu đường EMA tăng liên tục trên tất cả 5 nến.
Bot chỉ so sánh giá trị EMA ở hai thời điểm.
Một điểm quan trọng khác là EMA Slope được kiểm tra tại giai đoạn xác nhận Pullback, không phải điều kiện bắt buộc để tạo Source Arm Event.
2.3. MACD – Moving Average Convergence Divergence
MACD là chỉ báo động lượng và xu hướng được xây dựng từ sự chênh lệch giữa hai đường EMA.
CNPS 39 sử dụng các thông số mặc định:
MACD Fast = 12.
MACD Slow = 26.
MACD Signal = 9.
Công thức:
MACD Line = EMA12 − EMA26.
Signal Line = EMA9(MACD Line).
MACD Histogram = MACD Line − Signal Line.
Trong mã nguồn, bot sử dụng hàm:
ta.macd(close, 12, 26, 9)
để tính ba giá trị.
Tuy nhiên, điều kiện giao dịch không yêu cầu Histogram phải vượt một ngưỡng cụ thể.
Bot chủ yếu sử dụng tương quan giữa MACD Line và Signal Line.
2.4. MACD Bullish và Bearish State
CNPS 39 xác định:
MACD Bullish:
MACD Line > Signal Line.
MACD Bearish:
MACD Line < Signal Line.
Ví dụ:
- MACD Line = 4,2.
- Signal Line = 3,5.
MACD được xem là Bullish.
Nếu MACD Line giảm xuống 2,8 trong khi Signal Line vẫn 3,5, trạng thái chuyển sang Bearish.
Điểm quan trọng là bot không bắt buộc MACD Line phải lớn hơn 0 để xác nhận Long.
Một MACD Line âm vẫn có thể đáp ứng điều kiện Bullish nếu nằm trên Signal Line.
Tương tự, MACD Line dương vẫn có thể ở trạng thái Bearish nếu thấp hơn Signal Line.
2.5. MACD Cross Event
Để phát hiện sự kiện giao cắt theo logic của mã nguồn, CNPS 39 sử dụng trạng thái MACD hiện tại so với nến trước.
MACD Bull Cross:
- MACD hiện tại Bullish.
- MACD nến trước chưa Bullish.
MACD Bear Cross:
- MACD hiện tại Bearish.
- MACD nến trước chưa Bearish.
Ví dụ:
Nến trước:
- MACD Line = 2,0.
- Signal Line = 2,5.
Nến hiện tại:
- MACD Line = 3,0.
- Signal Line = 2,7.
MACD chuyển từ Bearish sang Bullish.
Bot có thể ghi nhận MACD Bull Cross.
Tuy nhiên, một MACD Cross riêng lẻ chưa đủ tạo Source Arm Event.
Tại thời điểm đó, Parabolic SAR cũng phải nằm đúng phía giá và giá đóng cửa phải đáp ứng EMA200.
2.6. Parabolic SAR
Parabolic SAR là chỉ báo theo dõi xu hướng dựa trên giá cực trị và hệ số gia tốc, thường được hiển thị bằng các điểm nằm phía trên hoặc dưới đường giá.
CNPS 39 sử dụng:
SAR Start = 0,02.
SAR Increment = 0,02.
SAR Maximum = 0,20.
Chỉ báo được tính bằng:
ta.sar(0.02, 0.02, 0.20)
Điều kiện Bullish:
SAR < Close.
Điều kiện Bearish:
SAR > Close.
Ví dụ:
- Close = 1.900.
- SAR = 1.895.
SAR nằm dưới giá và được xem là Bullish.
Nếu Close = 1.900 nhưng SAR = 1.905, bot xác định trạng thái Bearish.
Điểm đáng chú ý là chiến lược so sánh SAR trực tiếp với giá đóng cửa, thay vì yêu cầu một số điểm SAR nhất định liên tiếp cùng nằm trên hoặc dưới nến.
2.7. SAR Flip Event
CNPS 39 xác định sự kiện thay đổi trạng thái SAR bằng cách kiểm tra vị trí tương đối giữa SAR và Close.
SAR Bull Flip:
- SAR hiện tại nằm dưới Close.
- Ở nến trước, SAR chưa nằm dưới Close.
SAR Bear Flip:
- SAR hiện tại nằm trên Close.
- Ở nến trước, SAR chưa nằm trên Close.
Đây là sự kiện dựa trên quan hệ giữa giá đóng cửa và đường SAR.
Nó không phải một điều kiện độc lập yêu cầu giá phá một vùng High/Low cụ thể.
2.8. MACD/SAR Pair Agreement
Đây là thành phần trung tâm của Source Engine.
Bot xác định:
Pair Up:
MACD Bullish và SAR nằm dưới Close.
Pair Down:
MACD Bearish và SAR nằm trên Close.
Nếu chỉ có một trong hai thành phần xác nhận, Pair Agreement tương ứng chưa hợp lệ.
Ví dụ:
- MACD Line > Signal Line.
- SAR < Close.
Pair Up = True.
Ngược lại:
- MACD Line > Signal Line.
- SAR > Close.
Pair Up = False.
Đồng thời Pair Down cũng không hợp lệ vì MACD chưa Bearish.
Trạng thái này được xem là chưa đồng thuận.
2.9. Pair Event – Sự kiện đồng thuận mới
CNPS 39 không liên tục kích hoạt tín hiệu chỉ vì MACD và SAR đang cùng Bullish.
Bot yêu cầu Pair Agreement vừa chuyển từ False sang True.
Pair Up Event:
Pair Up hiện tại = True, trong khi Pair Up nến trước = False.
Pair Down Event:
Pair Down hiện tại = True, trong khi Pair Down nến trước = False.
Ví dụ:
| Nến | MACD | SAR | Pair Up |
|---|---|---|---|
| A | Bearish | Bullish | False |
| B | Bullish | Bullish | True |
| C | Bullish | Bullish | True |
Tại nến B, Pair Up Event xuất hiện.
Tại nến C, Pair Up tiếp tục hợp lệ nhưng không phát sinh Pair Up Event mới.
Một điểm đặc biệt quan trọng là giá vượt EMA200 sau khi Pair Up đã được duy trì không tự động tạo Source Arm Event.
Bot cần một Pair Event mới đồng thời thỏa điều kiện EMA200.
2.10. Source Trigger Route – Ba chế độ kích hoạt
CNPS 39 cho phép lựa chọn một trong ba chế độ:
Both
Chấp nhận sự kiện Pair Agreement mới bất kể nhánh kích hoạt được phân loại từ MACD hay SAR.
MACD Cross Only
Chỉ chấp nhận Pair Event được phân loại là do MACD vừa chuyển trạng thái.
SAR Flip Only
Chỉ chấp nhận Pair Event được phân loại là nhánh SAR.
Theo cấu hình mặc định:
Both.
Cách phân loại trong mã nguồn có thứ tự ưu tiên.
Khi Pair Up Event xuất hiện, bot kiểm tra MACD Bull Cross trước.
Nếu có MACD Bull Cross:
Long Trigger = 1.
Nếu không:
Long Trigger = 2.
Short sử dụng logic tương tự.
Điều này dẫn đến một điểm kỹ thuật quan trọng:
Nếu MACD Cross và SAR Flip cùng xuất hiện trên một cây nến, mã nguồn ưu tiên phân loại sự kiện vào nhánh MACD.
Vì vậy, trong chế độ SAR Flip Only, một sự kiện đồng thời có cả MACD Cross và SAR Flip có thể không được chấp nhận.
Đây là quy tắc phân loại của bot, không phải việc hai chỉ báo bắt buộc độc lập tạo hai tín hiệu.
2.11. Armed Setup
Sau khi Source Arm Event hợp lệ, chiến lược kích hoạt trạng thái chờ.
Với Long:
Long Armed = True.
Với Short:
Short Armed = True.
Đồng thời, bot ghi nhận:
- Chỉ số nến tạo tín hiệu.
- Trung điểm High–Low của cây nến tạo tín hiệu.
- Hướng Armed.
Mặc định:
Arm Life = 10 nến.
Cây nến xác nhận Entry bắt buộc phải xuất hiện sau nến tạo Armed Setup.
2.12. EMA20 Pullback
Đây là phương pháp Pullback mặc định.
CNPS 39 tính:
Pullback EMA = EMA(Close, 20).
Sau Source Arm Event, bot tiếp tục cập nhật đường EMA20 trên từng cây nến.
Với Long, điều kiện Touch:
Low ≤ EMA20 + 0,20 ATR14.
Điều kiện Reclaim:
Close > EMA20.
Với Short:
High ≥ EMA20 − 0,20 ATR14.
Close < EMA20.
Như vậy, EMA20 là tham chiếu động thay đổi theo diễn biến giá sau khi thiết lập được kích hoạt.
2.13. Signal Candle Midpoint Pullback
Phương pháp thứ hai sử dụng trung điểm cây nến tạo Source Event.
Công thức:
Signal Midpoint = (High tín hiệu + Low tín hiệu) / 2.
Ví dụ, cây nến tạo Long Arm có:
- High = 1.910.
- Low = 1.900.
Trung điểm:
1.905.
Trong thời gian Long Armed còn hiệu lực, chiến lược sử dụng 1.905 làm vùng Pullback tham chiếu, có cộng thêm dung sai ATR khi kiểm tra Touch.
Điểm quan trọng là Midpoint không tự động thay đổi theo những cây nến xuất hiện sau đó.
Trong khi EMA20 là đường tham chiếu động, Signal Candle Midpoint là một mức giá được ghi nhận từ nến tạo Armed Setup.
2.14. Candle Quality
CNPS 39 sử dụng độ lớn thân nến để đánh giá chất lượng nến xác nhận.
Mặc định:
Minimum Body Ratio = 0,35.
Công thức:
Body Ratio = |Close − Open| / Max(High − Low, Minimum Tick).
Với Long:
- Body Ratio ≥ 35%.
- Nến tăng nếu Directional Candle bật.
Với Short:
- Body Ratio ≥ 35%.
- Nến giảm nếu Directional Candle bật.
Theo mặc định, Directional Candle đang bật.
Một điểm cần lưu ý là việc tắt Directional Candle không tự động tắt yêu cầu Body Ratio.
2.15. ADX/DI Filter
CNPS 39 hỗ trợ ADX/DI như một bộ lọc tùy chọn.
Mặc định:
Use ADX/DI Filter = Tắt.
Thông số:
- ADX Length = 14.
- ADX Smoothing = 14.
- Minimum ADX = 18.
- Require DI Direction = Bật.
Nếu kích hoạt, Long yêu cầu:
ADX ≥ 18 và DI+ > DI−.
Short yêu cầu:
ADX ≥ 18 và DI− > DI+.
Nếu Require DI Direction bị tắt, bot chỉ yêu cầu ADX đạt ngưỡng.
Tuy nhiên, theo cấu hình mặc định, ADX Filter không tham gia vào quyết định giao dịch.
3. Nguyên lý hoạt động của CNPS 39 V2 MACD SAR Pullback
Chiến lược sử dụng một quy trình gồm nhiều giai đoạn.
Source Agreement → Source Event → Armed Setup → Pullback Confirmation → Risk Validation → Final Entry → Position Management.
Bước 1: Tính các chỉ báo
Đầu tiên, CNPS 39 tính:
- EMA200.
- EMA20.
- MACD 12/26/9.
- Parabolic SAR.
- ATR14.
- ADX/DI.
Các chỉ báo được tính trên dữ liệu khung thời gian biểu đồ hiện tại.
Bước 2: Xác định trạng thái EMA200
Bot kiểm tra:
Trend Up = Close > EMA200.
Trend Down = Close < EMA200.
Nếu Close bằng EMA200, hai điều kiện trên đều không hợp lệ.
Bước 3: Xác định MACD/SAR Pair State
Bot xác định:
Pair Up = MACD Bullish và SAR dưới Close.
Pair Down = MACD Bearish và SAR trên Close.
Nếu chưa có sự đồng thuận, chiến lược chưa thể tạo Pair Event theo hướng đó.
Bước 4: Phát hiện Pair Event
Khi Pair Up chuyển từ False sang True, bot ghi nhận Pair Up Event.
Khi Pair Down chuyển từ False sang True, bot ghi nhận Pair Down Event.
Đây là điểm khác biệt giữa một trạng thái đồng thuận đang được duy trì và một sự kiện đồng thuận mới.
Bước 5: Kiểm tra Source Trigger Route
Mã nguồn phân loại Pair Event theo nhánh MACD Cross hoặc SAR Flip.
Sau đó, bot kiểm tra nhánh này có phù hợp Source Trigger Route được lựa chọn hay không.
Mặc định Both nên chấp nhận cả hai loại.
Bước 6: Tạo Source Arm Event
Long Arm được tạo khi:
- Nến đã xác nhận đóng cửa.
- Close > EMA200.
- Pair Up Event hợp lệ.
- Source Trigger Route cho phép.
Short Arm tương ứng yêu cầu:
- Close < EMA200.
- Pair Down Event hợp lệ.
- Route cho phép.
Điểm quan trọng là EMA Slope chưa được kiểm tra tại bước tạo Armed.
Bước 7: Kích hoạt Armed Setup
Khi Long Arm xuất hiện, bot:
- Kích hoạt Long Armed.
- Hủy Short Armed.
- Lưu chỉ số nến nguồn.
- Lưu Signal Candle Midpoint của hướng Long.
Short áp dụng tương ứng.
Đây chưa phải lệnh giao dịch.
Bước 8: Kiểm tra thời hạn
Mặc định:
Maximum Bars To Wait = 10.
Nếu số nến kể từ Source Event vượt 10, thiết lập bị hủy.
Ví dụ:
- Arm được tạo tại Bar 100.
- Các Bar 101–110 nằm trong thời hạn.
- Đến Bar 111, thiết lập hết hạn.
Bot không tạo Entry trên chính cây nến 100.
Bước 9: Kiểm tra điều kiện vô hiệu hóa
Long Armed bị hủy do đảo chiều khi:
Close < EMA200 và Pair Down đang hợp lệ.
Short Armed bị hủy khi:
Close > EMA200 và Pair Up đang hợp lệ.
Điểm quan trọng là chiến lược không tự động hủy Long Armed ngay khi chỉ MACD chuyển Bearish hoặc chỉ SAR chuyển lên trên Close.
Armed Setup có thể tiếp tục tồn tại trong trạng thái chưa đồng thuận.
Tuy nhiên, tại thời điểm Entry, MACD và SAR phải đồng thuận trở lại theo hướng đang chờ.
Bước 10: Xác định vùng Pullback
Nếu chọn EMA20:
Bot sử dụng EMA20 hiện tại.
Nếu chọn Signal Candle Midpoint:
Bot sử dụng trung điểm nến tạo Armed.
Dung sai được tính:
Tolerance = ATR14 × 0,20.
Bước 11: Kiểm tra Touch và Reclaim
Long yêu cầu:
- Low chạm ngưỡng tham chiếu có dung sai.
- Close nằm trên tham chiếu.
Short yêu cầu:
- High chạm ngưỡng tham chiếu có dung sai.
- Close nằm dưới tham chiếu.
Hai điều kiện được kiểm tra trên cây nến đang xét.
Bot không có một trạng thái ghi nhớ Pullback Touch độc lập từ nhiều nến trước.
Bước 12: Xác nhận Source State
Tại thời điểm Entry, Long yêu cầu:
- Close > EMA200.
- MACD > Signal.
- SAR < Close.
Short yêu cầu các điều kiện đối lập.
Vì vậy, Armed Setup có thể được duy trì khi sự đồng thuận tạm thời mất, nhưng Final Entry vẫn phải có Source State đầy đủ.
Bước 13: Kiểm tra EMA200 Slope
Theo mặc định, Long yêu cầu EMA200 hiện tại cao hơn EMA200 cách 5 nến.
Short yêu cầu EMA200 thấp hơn giá trị cách 5 nến.
Nếu độ dốc không đáp ứng, Raw Setup bị từ chối.
Bước 14: Kiểm tra Candle Quality và ADX
Bot kiểm tra:
- Nến tăng hoặc giảm theo hướng giao dịch.
- Body Ratio ≥ 35%.
- Previous High/Low Break nếu bật.
- ADX/DI nếu bật.
Nếu tất cả điều kiện đạt, bot xác nhận Raw V2 Setup.
Bước 15: Xác định Stop Loss và Risk
Bot tính Stop Loss theo cực trị 5 nến kết hợp 0,10 ATR.
Sau đó, Risk dự kiến được tính từ Close đến Stop.
Chỉ thiết lập có Risk từ 2,5 đến 7 điểm mới vượt qua Risk Filter.
Bước 16: Kiểm tra điều kiện giao dịch chung
Bot yêu cầu:
- Đang Flat.
- Hướng giao dịch được phép.
- Nằm trong cửa sổ Entry.
- Nến đóng trước Force Close.
- Cooldown hợp lệ.
- Chưa vượt 2 giao dịch/ngày.
- Nến đã xác nhận.
Khi toàn bộ điều kiện đạt, chiến lược tạo Final Entry.
Bước 17: Gửi lệnh và quản trị vị thế
Khi Long hoặc Short được chấp thuận, bot gửi lệnh với khối lượng 3 hợp đồng.
Stop Loss cấu trúc được lưu trước khi gửi lệnh.
Sau khi khớp, bot sử dụng giá vào lệnh trung bình để tính Initial Risk thực tế và Take Profit 2R.
Vị thế tiếp tục được quản trị bằng Stop Loss, Take Profit, Break Even tùy chọn, Pair Failure Exit tùy chọn, Time Exit và Force Close.
4. Điều kiện vào lệnh Long và Short của CNPS 39
4.1. Long – MACD/SAR Bullish Agreement + Pullback
Long có hai giai đoạn.
Giai đoạn A: Source Long Arm
Bot yêu cầu:
- Close > EMA200.
- MACD Line > Signal Line.
- Parabolic SAR < Close.
- Pair Up vừa chuyển từ False sang True.
- Source Trigger Route hợp lệ.
- Nến đã đóng cửa xác nhận.
Khi đáp ứng, bot kích hoạt Long Armed.
Giai đoạn B: Pullback Long Confirmation
Bot yêu cầu:
- Long Armed còn hiệu lực.
- Nến xác nhận xuất hiện sau nến tạo Armed.
- Chưa vượt Arm Life 10 nến.
- Low ≤ Pullback Reference + 0,20 ATR.
- Close > Pullback Reference.
- Close > EMA200.
- MACD Line > Signal Line.
- SAR < Close.
- EMA200 tăng so với 5 nến trước nếu Slope Filter bật.
- Body Ratio ≥ 35%.
- Nến tăng nếu Directional Candle bật.
- Close > High nến trước nếu Previous Break bật.
- ADX/DI phù hợp nếu bộ lọc được bật.
- Structural Risk từ 2,5 đến 7 điểm.
- Không có vị thế đang mở.
- Chưa vượt 2 giao dịch/ngày.
- Cooldown và thời gian Entry hợp lệ.
Khi toàn bộ điều kiện đạt, bot có thể mở Long.
4.2. Ví dụ Long minh họa
Giả sử VN30F1M có:
- Close nằm trên EMA200.
- MACD Line vừa vượt Signal Line.
- Parabolic SAR nằm dưới Close.
Bot xác nhận Pair Up Event và kích hoạt Long Armed.
Sau ba nến, giá quay lại EMA20.
Dữ liệu cây nến xác nhận:
- EMA20 = 1.900.
- ATR14 = 10 điểm.
- Open = 1.901.
- High = 1.906.
- Low = 1.899.
- Close = 1.905.
- EMA200 = 1.890.
- MACD > Signal.
- SAR < Close.
Dung sai Pullback:
0,20 × 10 = 2 điểm.
Điều kiện Touch:
Low ≤ EMA20 + 2.
1.899 ≤ 1.902 → Hợp lệ.
Điều kiện Reclaim:
Close > EMA20.
1.905 > 1.900 → Hợp lệ.
Body Ratio:
(1.905 − 1.901) / (1.906 − 1.899) = 4/7 ≈ 0,57.
Nến đạt yêu cầu 0,35 và có hướng tăng.
Giả sử Lowest Low 5 nến gần nhất = 1.899.
Stop Buffer:
0,10 × 10 = 1 điểm.
Stop Loss dự kiến:
1.899 − 1 = 1.898.
Prospective Risk:
1.905 − 1.898 = 7 điểm.
Khoảng Risk bằng mức tối đa cho phép, vì vậy bộ lọc Risk đạt yêu cầu.
Nếu EMA Slope, Session, Cooldown và các điều kiện khác đều hợp lệ, chiến lược có thể mở Long.
Giả sử lệnh khớp tại 1.905:
- Entry = 1.905.
- SL = 1.898.
- Initial Risk = 7 điểm.
- TP 2R = 1.919.
Đây là ví dụ minh họa công thức, không phải tín hiệu giao dịch thực tế.
4.3. Short – MACD/SAR Bearish Agreement + Pullback
Short sử dụng quy trình tương ứng.
Giai đoạn A: Source Short Arm
Bot yêu cầu:
- Close < EMA200.
- MACD Line < Signal Line.
- SAR > Close.
- Pair Down vừa chuyển từ False sang True.
- Source Trigger Route hợp lệ.
- Nến đã xác nhận đóng cửa.
Sau đó, chiến lược kích hoạt Short Armed.
Giai đoạn B: Pullback Short Confirmation
Điều kiện:
- Short Armed còn hiệu lực.
- Nến hiện tại xuất hiện sau nến tạo Arm.
- Thiết lập chưa hết hạn.
- High ≥ Pullback Reference − 0,20 ATR.
- Close < Pullback Reference.
- Close < EMA200.
- MACD Line < Signal Line.
- SAR > Close.
- EMA200 có độ dốc giảm nếu được yêu cầu.
- Body Ratio ≥ 35%.
- Nến giảm nếu Directional Candle bật.
- Close < Low nến trước nếu Previous Break bật.
- ADX/DI hợp lệ nếu được bật.
- Risk từ 2,5 đến 7 điểm.
- Điều kiện giao dịch chung hợp lệ.
Nếu tất cả điều kiện đạt, bot mở Short.
4.4. Ví dụ Short minh họa
Giả sử MACD và SAR vừa chuyển sang đồng thuận giảm khi giá nằm dưới EMA200.
Bot kích hoạt Short Armed.
Sau đó, thị trường hồi lên EMA20.
Dữ liệu nến xác nhận:
- EMA20 = 1.900.
- ATR14 = 10.
- Open = 1.902.
- High = 1.903.
- Low = 1.896.
- Close = 1.898.
- MACD < Signal.
- SAR > Close.
Dung sai:
0,20 × 10 = 2 điểm.
Điều kiện Touch:
High ≥ EMA20 − 2.
1.903 ≥ 1.898 → Hợp lệ.
Reclaim:
1.898 < 1.900 → Hợp lệ.
Body Ratio:
(1.902 − 1.898) / (1.903 − 1.896) = 4/7 ≈ 0,57.
Giả sử Highest High trong 5 nến gần nhất bằng 1.903.
Stop Buffer = 1 điểm.
Stop Loss dự kiến:
1.903 + 1 = 1.904.
Risk:
1.904 − 1.898 = 6 điểm.
Nếu lệnh Short được khớp tại 1.898:
- Entry = 1.898.
- SL = 1.904.
- Risk = 6 điểm.
- TP 2R = 1.886.
4.5. EMA20 và Signal Candle Midpoint khác nhau như thế nào?
Đây là một trong những lựa chọn quan trọng nhất của CNPS 39.
| Đặc điểm | EMA20 | Signal Candle Midpoint |
|---|---|---|
| Vùng tham chiếu | EMA20 hiện tại | Trung điểm nến Source Event |
| Có thay đổi theo nến? | Có | Không, trong cùng Arm |
| Tính từ dữ liệu nào? | Close của 20 nến | High/Low nến tạo Arm |
| Có ATR Tolerance? | Có | Có |
| Cần Reclaim? | Có | Có |
EMA20 Pullback sử dụng đường trung bình ngắn hạn di chuyển theo giá.
Signal Candle Midpoint sử dụng mức giá được ghi nhận từ cây nến kích hoạt tín hiệu nguồn.
Ví dụ, nến tạo Long Arm có High = 1.910 và Low = 1.900.
Midpoint = 1.905.
Nếu EMA20 sau vài nến đã tăng lên 1.908, hai phương pháp sẽ sử dụng vùng Pullback khác nhau.
Do đó, việc chuyển Pullback Reference có thể làm thay đổi đáng kể số lượng giao dịch và vị trí Entry.
4.6. Pullback Touch không giới hạn độ xuyên qua vùng
CNPS 39 sử dụng điều kiện Touch một phía.
Với Long:
Low ≤ Reference + Tolerance.
Với Short:
High ≥ Reference − Tolerance.
Điều này có nghĩa Long không bị loại chỉ vì Low xuyên sâu xuống dưới EMA20 hoặc Signal Midpoint.
Tương tự, Short không bị loại chỉ vì High vượt xa phía trên vùng tham chiếu.
Tuy nhiên, bot vẫn yêu cầu giá đóng cửa trở lại đúng phía Reference và khoảng Stop Loss cấu trúc hợp lệ.
Vì vậy, việc giá xuyên sâu qua vùng Pullback có thể ảnh hưởng đến Structural Risk, dù điều kiện Touch vẫn đạt.
4.7. Touch và Reclaim có thể xảy ra trên cùng một nến
CNPS 39 không bắt buộc nến Touch và nến Reclaim phải tách biệt.
Một cây nến Long có thể:
- Low chạm EMA20.
- Close nằm trên EMA20.
- MACD và SAR vẫn Bullish.
- EMA200 Slope hợp lệ.
- Candle Quality hợp lệ.
Khi đó, Raw Long Setup có thể được xác nhận ngay khi nến đóng cửa.
Điều kiện thời gian bắt buộc là nến này phải xuất hiện sau nến tạo Armed.
4.8. Armed Setup có thể tiếp tục tồn tại khi tín hiệu tạm thời suy yếu
Giả sử Long Armed đã được kích hoạt.
Sau đó MACD Line giảm xuống dưới Signal Line, nhưng SAR vẫn nằm dưới Close và giá chưa tạo trạng thái đối lập đầy đủ.
Long Armed chưa nhất thiết bị hủy.
Nếu trước khi Arm Life hết hạn, MACD trở lại Bullish và những điều kiện khác hợp lệ, chiến lược có thể tiếp tục xem xét Long.
Tuy nhiên, bot không được mở Long khi MACD và SAR chưa đồng thuận tăng trở lại.
Điểm này giúp phân biệt cơ chế duy trì trạng thái chờ với điều kiện bắt buộc tại Entry.
4.9. Một Armed Setup có thể tạo nhiều Raw Setups
Khi Armed Setup còn hiệu lực, bot tiếp tục đánh giá Pullback ở các cây nến tiếp theo.
Nếu Raw Long Setup hợp lệ nhưng Risk vượt giới hạn hoặc chiến lược đang trong Cooldown, lệnh có thể bị từ chối.
Trong trường hợp này, Long Armed không nhất thiết bị xóa.
Nếu các điều kiện trở nên phù hợp ở những nến sau, bot có thể tiếp tục xem xét Entry từ cùng Armed Setup, miễn chưa hết hạn hoặc gặp điều kiện hủy.
Đây là đặc điểm khác với chiến lược chỉ xét một lần rồi loại bỏ hoàn toàn thiết lập.
4.10. Source Trigger Route không ảnh hưởng trực tiếp đến Reclaim
Một điểm cần phân biệt là Source Trigger Route chỉ kiểm tra loại sự kiện dùng để kích hoạt Armed Setup.
Khi Long Armed đã tồn tại, bot không yêu cầu một MACD Cross hoặc SAR Flip mới để vào lệnh.
Tại thời điểm Pullback Confirmation, chiến lược chỉ yêu cầu MACD và SAR đang đồng thuận theo hướng tương ứng.
Vì vậy:
Source Trigger Route quyết định khi nào được tạo Arm.
Pullback Confirmation quyết định khi nào được phép Entry.
5. CNPS 39 quản trị rủi ro và thoát lệnh như thế nào?
5.1. Stop Loss theo cấu trúc giá
CNPS 39 sử dụng Structural Stop Loss.
Mặc định:
ATR Length = 14.
Structure Stop Lookback = 5 nến.
Stop Buffer = 0,10 ATR.
Với Long:
Stop = Lowest Low(5) − ATR14 × 0,10.
Với Short:
Stop = Highest High(5) + ATR14 × 0,10.
Điểm quan trọng là cực trị được tính trên 5 cây nến gần nhất tại thời điểm xác nhận Entry.
Bot không sử dụng High/Low của toàn bộ quá trình Armed nếu quá trình này kéo dài hơn 5 nến.
5.2. Risk Filter 2,5–7 điểm
Trước khi tạo Entry, bot tính:
Long Risk = Close − Long Stop.
Short Risk = Short Stop − Close.
Sau đó yêu cầu:
2,5 ≤ Risk ≤ 7.
Ví dụ:
- Risk 2 điểm: Không hợp lệ.
- Risk 4 điểm: Hợp lệ.
- Risk 7 điểm: Hợp lệ.
- Risk 8 điểm: Không hợp lệ.
Bộ lọc này được sử dụng để loại những tín hiệu có khoảng Stop Loss dự kiến nằm ngoài phạm vi.
Tuy nhiên, Risk Filter không điều chỉnh khối lượng giao dịch theo độ rộng Stop Loss.
Bot mặc định sử dụng 3 hợp đồng cho mỗi Entry.
5.3. Stop Loss được lưu trước khi gửi lệnh
CNPS 39 lưu giá Structural Stop trước khi gọi strategy.entry().
Ví dụ:
- Close tín hiệu = 1.900.
- Prospective Stop = 1.895.
- Risk dự kiến = 5 điểm.
Khi Final Long Signal hợp lệ, bot lưu:
Pending Stop = 1.895.
Nếu lệnh khớp tại 1.901, chiến lược vẫn giữ Active Stop tại 1.895.
Khi đó:
Initial Risk thực tế = 1.901 − 1.895 = 6 điểm.
Take Profit được tính từ khoảng Risk thực tế này.
Đây là cơ chế giữ Stop theo mức giá cấu trúc, không phải cố định khoảng cách Risk từ Close của nến tín hiệu.
5.4. Risk thực tế có thể vượt ngưỡng tối đa
Điều kiện Risk 2,5–7 điểm được kiểm tra trước khi gửi lệnh.
Sau khi khớp, bot tính lại Initial Risk từ giá vào lệnh trung bình và Stop đã lưu.
Nếu giá khớp khác Close tín hiệu, Risk thực tế có thể vượt 7 điểm.
Ví dụ:
- Risk dự kiến = 6,5 điểm.
- Giá khớp Long cao hơn Close tín hiệu 1 điểm.
Risk thực tế:
7,5 điểm.
Mã nguồn không có bước kiểm tra lại giới hạn Maximum Risk để hủy vị thế trong trường hợp này.
Đây là điểm cần lưu ý khi kiểm thử giao dịch tự động.
5.5. Stop Loss dự phòng
Nếu Stop đã lưu không hợp lệ hoặc nằm sai phía Entry, bot sử dụng Stop dự phòng.
Với Long:
Fallback Stop = Entry − Minimum Risk Points.
Với Short:
Fallback Stop = Entry + Minimum Risk Points.
Mặc định:
Minimum Risk Points = 2,5.
Ví dụ, nếu Long khớp tại 1.900 nhưng Pending Stop không hợp lệ, bot có thể đặt:
Fallback Stop = 1.897,5.
Cần phân biệt đây là cơ chế xử lý Stop không hợp lệ, không phải giới hạn tự động toàn bộ giao dịch về Risk tối đa 7 điểm.
5.6. Take Profit 2R
CNPS 39 mặc định sử dụng:
Reward/Risk = 2,0.
Với Long:
TP = Entry + Initial Risk × 2.
Với Short:
TP = Entry − Initial Risk × 2.
Ví dụ:
- Long Entry = 1.900.
- Stop Loss = 1.895.
- Initial Risk = 5 điểm.
Take Profit:
1.900 + 5 × 2 = 1.910.
Tỷ lệ Reward/Risk danh nghĩa là 2R.
Tuy nhiên, kết quả thực tế còn phụ thuộc vào giá khớp, chi phí, trượt giá và những điều kiện thoát sớm.
5.7. Break Even
CNPS 39 hỗ trợ Break Even nhưng mặc định đang tắt.
Thông số:
Break Even Trigger = 1,25R.
Break Even Offset = 0,5 điểm.
Với Long:
Trigger = Entry + Initial Risk × 1,25.
Khi High đạt ngưỡng:
New Stop = Max(Current Stop, Entry + 0,5).
Với Short:
Trigger = Entry − Initial Risk × 1,25.
Khi Low đạt ngưỡng:
New Stop = Min(Current Stop, Entry − 0,5).
Ví dụ:
- Long Entry = 1.900.
- Initial Risk = 4 điểm.
Trigger:
1.900 + 4 × 1,25 = 1.905.
Khi High đạt 1.905, bot có thể dời Stop Loss lên 1.900,5.
Break Even được kích hoạt tối đa một lần cho mỗi vị thế.
Điểm quan trọng là bot sử dụng High/Low để kiểm tra ngưỡng, không bắt buộc Close phải vượt ngưỡng.
5.8. MACD/SAR Pair Failure Exit
CNPS 39 có một tùy chọn:
Exit If MACD + SAR Pair Fails.
Mặc định:
Tắt.
Nếu bật, bot có thể đóng Long khi:
Pair Up không còn hợp lệ.
Với Short:
Pair Down không còn hợp lệ.
Ví dụ, đang Long với:
- MACD Line > Signal Line.
- SAR < Close.
Nếu MACD giảm xuống dưới Signal Line nhưng SAR vẫn nằm dưới Close, Pair Up trở thành False.
Khi Pair Failure Exit được bật, bot có thể yêu cầu đóng Long sau khi nến hợp lệ đóng cửa.
Điểm quan trọng là không cần cả MACD và SAR đồng thời chuyển sang Bearish.
Chỉ cần sự đồng thuận theo hướng vị thế đang giữ không còn tồn tại là có thể kích hoạt Exit.
Đây là cơ chế thoát khác với điều kiện vô hiệu hóa Armed Setup.
5.9. Pair Failure Exit không yêu cầu EMA200 đảo hướng
Một điểm đáng chú ý là điều kiện thoát Pair Failure không trực tiếp kiểm tra giá đã cắt ngược EMA200 hay chưa.
Với Long, điều kiện là:
Không còn Pair Up.
Với Short:
Không còn Pair Down.
Do đó, một vị thế Long có thể bị đóng theo Pair Failure khi MACD hoặc SAR không còn phù hợp, ngay cả khi giá vẫn nằm trên EMA200.
Ngược lại, nếu giá cắt xuống EMA200 nhưng Pair Up vẫn hợp lệ, điều kiện Pair Failure riêng chưa nhất thiết được kích hoạt.
5.10. Time Exit
CNPS 39 sử dụng:
Maximum Bars In Trade = 90.
Nếu số nến từ Active Entry Bar đạt hoặc vượt 90, chiến lược yêu cầu đóng toàn bộ vị thế.
Nếu đặt Maximum Bars In Trade bằng 0, tính năng này bị tắt.
Một điểm cần lưu ý là Time Exit phụ thuộc vào số nến của khung thời gian biểu đồ.
90 nến M1 và 90 nến M5 tương ứng những khoảng thời gian khác nhau.
Ngoài ra, Stop Loss, Take Profit hoặc Force Close có thể kết thúc giao dịch trước khi đạt ngưỡng 90 nến.
5.11. Force Close cuối phiên
CNPS 39 sử dụng:
Force Close = 14:45.
Khi một cây nến bắt đầu trước 14:45 và đóng tại hoặc sau mốc này, bot kích hoạt Force Close.
Chiến lược thực hiện:
- Hủy Long Armed.
- Hủy Short Armed.
- Xóa Arm Bar.
- Xóa Signal Candle Midpoint.
- Yêu cầu đóng toàn bộ vị thế đang mở.
Mã nguồn sử dụng:
strategy.close_all(immediately=true)
Thời điểm khớp mô phỏng phụ thuộc vào ranh giới nến và dữ liệu TradingView.
5.12. Tổng hợp các cơ chế thoát lệnh
| Phương pháp | Mặc định | Cơ chế |
|---|---|---|
| Structural Stop Loss | Bật | High/Low 5 nến + ATR Buffer |
| Take Profit | Bật | 2R |
| Break Even | Tắt | Dời Stop tại 1,25R |
| MACD/SAR Pair Failure Exit | Tắt | Cặp chỉ báo mất đồng thuận |
| Time Exit | Bật | 90 nến |
| Force Close | Bật | 14:45 |
CNPS 39 không sử dụng Trailing Stop độc lập theo Parabolic SAR đang di chuyển.
Stop Loss ban đầu được giữ theo mức giá cấu trúc đã lưu, trừ trường hợp Break Even được kích hoạt.
6. Hướng dẫn cài đặt và sử dụng CNPS 39 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 39 sử dụng dữ liệu trên khung thời gian biểu đồ hiện tại.
Các tham số:
- EMA200.
- MACD 12/26/9.
- Parabolic SAR.
- Arm Life.
- ATR14.
- Structure Stop Lookback.
- Cooldown.
- Maximum Bars In Trade.
đều được tính dựa trên dữ liệu nến.
Vì vậy, kết quả trên M1 có thể khác đáng kể so với M5.
Bước 2: Thêm mã nguồn vào Pine Editor
Nếu sử dụng mã nguồn Pine Script:
- Mở TradingView.
- Chọn Pine Editor.
- Tạo một Strategy mới.
- Dán mã nguồn CNPS39 V2 MACD SAR PULLBACK.
- Lưu mã nguồn.
- Chọn Add to chart.
- Kiểm tra các đường EMA và tín hiệu nếu bật hiển thị.
- Mở Strategy Tester.
Tên chiến lược:
CNPS39 V2 MACD SAR PULLBACK
Tên rút gọn:
CNPS39 V2 MSTF
Phiên bản:
//@version=6
Bước 3: Cấu hình Source Engine
| Thông số | Mặc định |
|---|---|
| Trend EMA Length | 200 |
| MACD Fast | 12 |
| MACD Slow | 26 |
| MACD Signal | 9 |
| SAR Start | 0,02 |
| SAR Increment | 0,02 |
| SAR Maximum | 0,20 |
| Source Trigger Route | Both |
Source Trigger Route cho phép lựa chọn Both, MACD Cross Only hoặc SAR Flip Only.
Khi so sánh các Route, nên giữ nguyên các thông số khác để đánh giá sự khác biệt về số lượng Armed Setup và Entry.
Bước 4: Cấu hình Pullback
| Thông số | Mặc định |
|---|---|
| Pullback Reference | EMA20 |
| Pullback EMA Length | 20 |
| Maximum Bars To Wait | 10 |
| Pullback Tolerance x ATR | 0,20 |
Nếu sử dụng Signal Candle Midpoint, độ dài EMA20 không còn quyết định mức tham chiếu Pullback chính.
Tuy nhiên, bot vẫn tính EMA20 trong mã nguồn.
Bước 5: Cấu hình Entry Quality
| Thông số | Mặc định |
|---|---|
| Require EMA200 Slope | Bật |
| EMA Slope Lookback | 5 |
| Require Directional Candle | Bật |
| Minimum Body Ratio | 0,35 |
| Require Previous High/Low Break | Tắt |
| Use ADX/DI Filter | Tắt |
| ADX Length | 14 |
| Minimum ADX | 18 |
| Require DI Direction | Bật |
Những tham số này được sử dụng khi xác nhận Raw Setup sau Pullback.
Điểm quan trọng là EMA200 Slope không phải điều kiện bắt buộc để tạo Source Arm Event.
Bước 6: Cấu hình Risk Management
| Thông số | Mặc định |
|---|---|
| ATR Length | 14 |
| Structure Stop Lookback | 5 |
| Stop Buffer x ATR | 0,10 |
| Minimum Risk Points | 2,5 |
| Maximum Risk Points | 7 |
| Take Profit R | 2,0 |
| Use Break Even | Tắt |
| Break Even Trigger | 1,25R |
| Break Even Offset | 0,5 |
| Exit If MACD/SAR Pair Fails | Tắt |
| Maximum Bars In Trade | 90 |
Khi sử dụng Risk Filter, cần nhớ rằng bot kiểm tra Risk dự kiến trước Entry.
Actual Risk sau khi khớp có thể thay đổi do giá vào lệnh thực tế.
Bước 7: Cấu hình Session và Trade Control
| Thông số | Mặc định |
|---|---|
| Timezone | Asia/Ho_Chi_Minh |
| Morning Start | 09:05 |
| Morning End | 11:20 |
| Afternoon Start | 13:05 |
| Last Entry | 14:20 |
| Force Close | 14:45 |
| Maximum Trades Per Day | 2 |
| Cooldown After Exit | 8 nến |
| Trade Direction | Both |
Bot sử dụng thời gian mở nến để xét cửa sổ Entry.
Ngoài ra, thời điểm đóng nến phải trước Force Close.
Armed Setup có thể hình thành ngoài cửa sổ Entry, nhưng Final Entry vẫn phải đáp ứng điều kiện phiên.
Bước 8: Đọc các thành phần trên biểu đồ
CNPS 39 hỗ trợ hiển thị:
| Thành phần | Mô tả |
|---|---|
| EMA200 | Đường xanh dương |
| Pullback EMA | Đường cam |
| Parabolic SAR | Các điểm xanh/đỏ |
| Long Armed | Dấu tròn xanh, chữ A |
| Short Armed | Dấu tròn đỏ, chữ A |
| Long Entry | Tam giác xanh, chữ L |
| Short Entry | Tam giác đỏ, chữ S |
| Active Stop Loss | Đường đỏ |
| Active Take Profit | Đường xanh lá |
Theo mặc định:
- Show EMA200: Bật.
- Show Pullback EMA: Tắt.
- Show SAR: Tắt.
- Show Arm Markers: Tắt.
- Show Entry Markers: Tắt.
- Show Active SL/TP: Bật.
- Show Diagnostics: Tắt.
Khi bật Diagnostics, bot hiển thị:
- Trend.
- MACD Bull.
- SAR Bull.
- Armed State.
- Pullback Reference.
- Candle Body Ratio.
- EMA Slope Long/Short.
- ADX.
- Prospective Long Risk.
- Prospective Short Risk.
- Source Arm Counts.
- Raw Setup Counts.
- Final Entry Counts.
- Active Risk.
- Target R.
- Trigger Mode.
- Trades Today.
- Position.
Các bộ đếm Source Arm, Raw Setup và Final Entry giúp đánh giá mức độ chọn lọc qua từng giai đoạn.
Tuy nhiên, chúng là những bộ đếm tích lũy trong quá trình chạy Strategy, không phải số liệu riêng của phiên hiện tại.
Bước 9: Đánh giá trong Strategy Tester
CNPS 39 hỗ trợ kiểm thử lịch sử bằng TradingView Strategy Tester.
Những chỉ số cần theo dõi:
- Net Profit.
- Maximum Drawdown.
- Profit Factor.
- Percent Profitable.
- Total Trades.
- Average Trade.
Để nghiên cứu chiến lược, có thể thực hiện:
Thử nghiệm 1: Source Trigger Route = Both.
Thử nghiệm 2: MACD Cross Only.
Thử nghiệm 3: SAR Flip Only.
Thử nghiệm 4: Pullback EMA20.
Thử nghiệm 5: Signal Candle Midpoint.
Thử nghiệm 6: EMA200 Slope bật và tắt.
Thử nghiệm 7: Thay đổi Arm Life 10 nến.
Thử nghiệm 8: Thay đổi Pullback Tolerance.
Thử nghiệm 9: Bật Previous High/Low Break.
Thử nghiệm 10: Bật ADX/DI Filter với ngưỡng 18.
Thử nghiệm 11: Bật Break Even tại 1,25R.
Thử nghiệm 12: Bật MACD/SAR Pair Failure Exit.
Thử nghiệm 13: Thay đổi Maximum Risk Points.
Thử nghiệm 14: Thay đổi Stop Structure Lookback và ATR Buffer.
Theo mã nguồn:
- Initial Capital: 100.000.000 VNĐ.
- Khối lượng: 3 hợp đồng.
- Commission: 10.000 VNĐ/hợp đồng/lần khớp.
- Slippage: 3 ticks.
- Pyramiding: 0.
- Process Orders On Close: Bật.
- Calculate On Order Fills: Bật.
- Fill Orders On Standard OHLC: Bật.
- Margin Long/Short: 0.
Các thông số trên phục vụ mô phỏng trong Strategy Tester.
Chúng không phản ánh đầy đủ yêu cầu ký quỹ, thanh khoản hoặc giá khớp thực tế của thị trường phái sinh.
7. Cách thiết lập cảnh báo tín hiệu giao dịch
CNPS 39 hỗ trợ cảnh báo thông qua Order Fill Events trên TradingView.
Để thiết lập:
- Mở biểu đồ có CNPS39 V2 MACD SAR PULLBACK.
- Chọn Create Alert.
- Trong Condition, chọn Strategy CNPS39.
- Chọn chế độ Order Fills.
- Trong Message, nhập
{{strategy.order.alert_message}}. - Chọn phương thức nhận thông báo và lưu cảnh báo.
7.1. Cảnh báo Entry
| Thông điệp | Ý nghĩa |
|---|---|
| ENTRY_LONG_CNPS39_V2 | Mở Long sau Pullback Confirmation |
| ENTRY_SHORT_CNPS39_V2 | Mở Short sau Pullback Confirmation |
Cần lưu ý rằng Source Arm Event chưa phải giao dịch.
Vì vậy, những sự kiện kích hoạt Armed Setup không tự động tạo Order Fill Alert.
7.2. Cảnh báo Stop Loss và Take Profit
| Thông điệp | Ý nghĩa |
|---|---|
| EXIT_LONG_TP_CNPS39_V2 | Đóng Long theo Take Profit |
| EXIT_LONG_SL_CNPS39_V2 | Đóng Long theo Stop Loss |
| EXIT_SHORT_TP_CNPS39_V2 | Đóng Short theo Take Profit |
| EXIT_SHORT_SL_CNPS39_V2 | Đóng Short theo Stop Loss |
Bot sử dụng strategy.exit() để đặt Stop Loss và Take Profit.
Các thông điệp này được liên kết với những sự kiện khớp lệnh thoát tương ứng.
7.3. Cảnh báo Break Even
| Thông điệp | Ý nghĩa |
|---|---|
| EXIT_LONG_BE_CNPS39_V2 | Long đóng theo Stop Loss sau Break Even |
| EXIT_SHORT_BE_CNPS39_V2 | Short đóng theo Stop Loss sau Break Even |
Khi Break Even được kích hoạt, mã thông điệp Stop Loss được chuyển sang nhóm BE.
Tuy nhiên, đây không phải thông báo được gửi 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 thực sự khớp trong mô phỏng.
7.4. Cảnh báo Pair Failure Exit
| Thông điệp | Ý nghĩa |
|---|---|
| PAIR_FAIL_LONG_CNPS39_V2 | Đóng Long khi MACD/SAR mất đồng thuận |
| PAIR_FAIL_SHORT_CNPS39_V2 | Đóng Short khi MACD/SAR mất đồng thuận |
Hai thông điệp này chỉ được sử dụng nếu Pair Failure Exit đang bật và điều kiện thoát hợp lệ.
Theo cấu hình mặc định, tính năng này tắt.
7.5. Cảnh báo Time Exit và Session End
| Thông điệp | Ý nghĩa |
|---|---|
| TIME_EXIT_CNPS39_V2 | Đóng vị thế sau giới hạn số nến |
| SESSION_END_CNPS39_V2 | Đóng toàn bộ vị thế cuối phiên |
Time Exit mặc định sử dụng 90 nến.
Session End sử dụng Force Close 14:45.
7.6. Disable SL/TP Alerts
CNPS 39 có tham số:
Disable SL/TP Alerts.
Mặc định:
Tắt.
Khi bật, chiến lược 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().
Tuy nhiên, tham số này không tự động vô hiệu hóa cảnh báo từ Pair Failure Exit, Time Exit hoặc Session End.
Vì vậy, nếu kết nối Webhook với hệ thống giao dịch bên ngoài, cần phân biệt các loại thông điệp đóng vị thế.
7.7. Những lưu ý khi tích hợp Webhook
Các thông điệp của CNPS 39 phân biệt được:
- Mở Long.
- Mở Short.
- Đóng theo TP.
- Đóng theo SL.
- Đóng theo Break Even.
- Đóng khi MACD/SAR mất đồng thuận.
- Đóng theo Time Exit.
- Đóng cuối phiên.
Tuy nhiên, Alert Message mặc định chưa bao gồm đầy đủ:
- Giá vào lệnh.
- Giá Stop Loss.
- Giá Take Profit.
- Khối lượng thực tế đã khớp.
- Source Trigger Route của tín hiệu.
- Pullback Reference.
- Khung thời gian.
- Thời điểm phát cảnh báo.
Nếu muốn tích hợp hệ thống giao dịch tự động, người dùng cần bổ sung dữ liệu phù hợp qua TradingView Placeholder hoặc chỉnh sửa mã nguồn.
Ngoài ra, một Order Fill Alert của TradingView không đồng nghĩa lệnh thực tế đã được khớp tại công ty chứng khoán.
Hệ thống nhận cảnh báo cần kiểm tra trạng thái lệnh và vị thế thực tế một cách độc lập.
Kết luận
CNPS 39 V2 MACD SAR PULLBACK là chiến lược giao dịch phái sinh kết hợp EMA200, MACD và Parabolic SAR để xác định trạng thái xu hướng, đồng thời sử dụng cơ chế Armed Setup để tìm kiếm điểm vào lệnh sau Pullback.
Điểm nổi bật của chiến lược nằm ở việc tách biệt thời điểm các chỉ báo bắt đầu đồng thuận và thời điểm mở vị thế thực tế.
Khi MACD Line và Signal Line xác nhận cùng hướng với Parabolic SAR, đồng thời giá đóng cửa nằm đúng phía EMA200, bot có thể kích hoạt Source Arm Event.
Sau đó, chiến lược chờ tối đa 10 nến để giá điều chỉnh về EMA20 hoặc trung điểm cây nến tín hiệu.
Tại thời điểm xác nhận, bot yêu cầu giá đóng cửa trở lại đúng phía vùng Pullback, MACD/SAR vẫn đồng thuận, EMA200 có vị trí và độ dốc phù hợp, đồng thời cây nến đáp ứng những điều kiện chất lượng tối thiểu.
Về quản trị vị thế, CNPS 39 sử dụng Stop Loss theo cấu trúc High/Low 5 nến kết hợp ATR Buffer và chỉ chấp nhận những thiết lập có Risk dự kiến từ 2,5 đến 7 điểm.
Take Profit mặc định là 2R, trong khi Break Even và Pair Failure Exit là các tính năng tùy chọn.
Bot cũng giới hạn tối đa 2 giao dịch mỗi ngày, Cooldown 8 nến sau Exit và đóng toàn bộ vị thế tại thời điểm Force Close cuối phiên.
Tuy nhiên, việc chờ Pullback không đồng nghĩa chiến lược luôn có điểm vào lệnh thuận lợi hơn hoặc tỷ lệ thắng cao hơn so với giao dịch trực tiếp khi MACD/SAR đồng thuận.
Trong những xu hướng mạnh, thị trường có thể tiếp tục vận động mà không quay về vùng Pullback trong thời gian chờ.
Ngược lại, một nhịp Pullback có thể phát triển thành đảo chiều, khiến vị thế bị Stop Loss ngay cả khi tín hiệu MACD/SAR trước đó đã được xác nhận.
Vì vậy, khi sử dụng CNPS 39, điều quan trọng là hiểu rõ cách MACD/SAR Pair Event hình thành, sự khác biệt giữa MACD Cross Only và SAR Flip Only, cơ chế Armed Setup, hai phương pháp Pullback và quy tắc xác định Structural Stop Loss.
Người dùng nên kiểm thử riêng từng Source Trigger Route, so sánh EMA20 với Signal Candle Midpoint, đánh giá tác động của EMA Slope và ADX/DI, đồng thời kiểm tra hiệu quả các phương pháp thoát lệnh trong TradingView Strategy Tester.
Theo dõi Phái Sinh Online để cập nhật thêm hướng dẫn sử dụng bot giao dịch phái sinh, kiến thức phân tích kỹ thuật và chiến lược giao dịch trên TradingView.
Lưu ý: Nội dung chỉ mang tính chất hướng dẫn 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.





