Hướng Dẫn Sử Dụng Bot CNPS32-TRENDLINE cho VN30F1M
TradingviewHướng dẫn Bot CNPS 32 Trendline Break V2: giao dịch phá vỡ Trendline, lọc động lượng AO, Stop Loss ATR, Take Profit 2R và Trailing Stop trên TradingView.

Mục lục
Trong giao dịch chứng khoán phái sinh, đường xu hướng (Trendline) là một công cụ phân tích kỹ thuật thường được sử dụng để xác định các mức hỗ trợ, kháng cự động và đánh giá sự thay đổi trong hành vi giá.
Đặc biệt, khi thị trường liên tục hình thành những đỉnh thấp dần hoặc đáy cao dần, các đường Trendline có thể giúp nhà đầu tư nhận diện những khu vực giá đang chịu áp lực bán hoặc được hỗ trợ bởi lực mua.
Tuy nhiên, không phải mọi lần giá vượt qua đường xu hướng đều tạo ra một cơ hội giao dịch hiệu quả. Những cú phá vỡ thiếu động lượng, xuất hiện trong giai đoạn thị trường giằng co hoặc không có sự đồng thuận của các yếu tố kỹ thuật khác có thể nhanh chóng chuyển thành phá vỡ giả.
CNPS 32 V2 TRENDLINE BREAK PRO CLEAN là chiến lược giao dịch được phát triển bằng Pine Script v6 trên TradingView, sử dụng các Pivot High và Pivot Low đã xác nhận để tự động xây dựng đường hỗ trợ và kháng cự, sau đó tìm kiếm tín hiệu Long hoặc Short khi giá đóng cửa phá vỡ Trendline với khoảng đệm ATR.
Điểm nổi bật của CNPS 32 nằm ở việc chiến lược không yêu cầu người dùng vẽ Trendline thủ công. Bot tự động lựa chọn hai Pivot High thấp dần để hình thành đường kháng cự giảm hoặc hai Pivot Low cao dần để hình thành đường hỗ trợ tăng.
Khi giá phá vỡ một đường Trendline hợp lệ, chiến lược tiếp tục kiểm tra bộ lọc động lượng dựa trên Awesome Oscillator (AO) tùy chỉnh. Ngoài ra, người dùng có thể kích hoạt thêm EMA, ADX và Volume để tăng điều kiện xác nhận trước khi giao dịch.
Phiên bản V2 còn tập trung cải thiện cơ chế quản lý Trendline trên biểu đồ. Thay vì lưu lại nhiều đường xu hướng trong quá khứ, chiến lược chỉ duy trì tối đa một đường kháng cự và một đường hỗ trợ đang được quản lý tại mỗi thời điểm. Những đường đã phá vỡ hoặc hết hạn sẽ được xóa theo các quy tắc riêng.
Bên cạnh cơ chế vào lệnh, CNPS 32 sử dụng hệ thống quản trị vị thế động gồm:
- Stop Loss mặc định theo 1,5 ATR.
- Take Profit theo Reward/Risk 2R.
- Break Even khi giá đạt 1R.
- ATR Trailing Stop bắt đầu tại 1,5R.
- Khoảng cách Trailing Stop bằng 2 ATR.
- Giới hạn tối đa 3 giao dịch mỗi ngày.
- Cooldown 5 nến sau khi thoát vị thế.
Vậy CNPS 32 Trendline Break Pro Clean hoạt động như thế nào, điều kiện nào xác nhận phá vỡ Trendline và cơ chế Stop Loss động có những đặc điểm gì cần lưu ý?
1. CNPS 32 V2 Trendline Break Pro Clean là gì?
CNPS 32 V2 Trendline Break Pro Clean là chiến lược giao dịch được xây dựng trên TradingView, hướng đến việc giao dịch hợp đồng tương lai chỉ số VN30 thông qua các sự kiện phá vỡ đường hỗ trợ và kháng cự động.
Chiến lược sử dụng bốn thành phần chính.
Thứ nhất: Automatic Trendline Detection.
Bot tự động nhận diện Pivot High và Pivot Low, sau đó lựa chọn những cặp Pivot đáp ứng điều kiện hình thành Trendline.
- Hai Pivot High liên tiếp có mức giá thấp dần tạo đường kháng cự giảm.
- Hai Pivot Low liên tiếp có mức giá cao dần tạo đường hỗ trợ tăng.
Thứ hai: ATR-Buffered Trendline Breakout.
Chiến lược không chỉ kiểm tra việc giá đóng cửa vượt đường xu hướng mà còn yêu cầu khoảng phá vỡ tối thiểu theo ATR.
Với Long, Close phải nằm phía trên đường kháng cự cộng một khoảng ATR Buffer.
Với Short, Close phải nằm phía dưới đường hỗ trợ trừ một khoảng ATR Buffer.
Thứ ba: Momentum Confirmation.
Sau khi xuất hiện Trendline Break, bot kiểm tra hướng thay đổi của Awesome Oscillator tùy chỉnh.
Ngoài AO, người dùng có thể bật thêm EMA100, ADX và Relative Volume để lọc tín hiệu.
Thứ tư: Dynamic Risk Management.
Sau khi vào lệnh, chiến lược quản trị vị thế bằng Stop Loss theo ATR hoặc cấu trúc Swing, mục tiêu Reward/Risk, Break Even và Trailing Stop.
Quy trình tổng quát:
Confirmed Pivots → Trendline Formation → ATR Breakout → Momentum Confirmation → Entry → Dynamic Risk Management.
Ví dụ, thị trường liên tục hình thành hai Swing High thấp dần.
Bot sử dụng hai mức này để xây dựng một đường kháng cự giảm.
Khi giá đóng cửa vượt đường kháng cự cùng khoảng đệm 0,10 ATR, chiến lược ghi nhận Raw Bullish Breakout.
Tuy nhiên, bot chưa chắc chắn mở Long.
Để tín hiệu được chấp nhận, AO đã làm mượt phải đang tăng so với cây nến trước. Nếu các bộ lọc EMA, ADX hoặc Volume đang bật, chúng cũng phải đáp ứng điều kiện tương ứng.
Sau đó, chiến lược kiểm tra trạng thái vị thế, thời gian giao dịch, số lệnh trong ngày và Cooldown.
Chỉ khi toàn bộ điều kiện hợp lệ, bot mới phát sinh lệnh Long.
Điểm khác biệt của CNPS 32 là mỗi đường Trendline chỉ được sử dụng cho một sự kiện phá vỡ, sau đó chuyển sang trạng thái đã phá vỡ và không tiếp tục tạo những tín hiệu mới từ cùng đường đó.
Theo cấu hình mặc định:
- Giao dịch cả Long và Short.
- Pivot Length: 5.
- Minimum Bars Between Pivots: 8.
- Maximum Line Age: 150 nến.
- Breakout Buffer: 0,10 ATR.
- Momentum Filter: Bật.
- EMA, ADX và Volume Filter: Tắt.
- Reverse On Opposite Signal: Tắt.
- Exit Mode: Source Dynamic.
- Stop Loss: 1,5 ATR.
- Take Profit: 2R.
- Break Even: 1R.
- Trailing Stop bắt đầu tại 1,5R.
- Trailing Distance: 2 ATR.
- Maximum Trades Per Day: 3.
- Cooldown: 5 nến.
- Khối lượng: 3 hợp đồng.
Source Code CNPS 32:CNPS32
2. Các khái niệm kỹ thuật được sử dụng trong CNPS 32
2.1. Pivot High và Pivot Low – Các điểm xoay của thị trường
Pivot High và Pivot Low là những mức giá được xác định thông qua việc so sánh các cây nến lân cận.
Trong CNPS 32, bot sử dụng hai hàm:
ta.pivothigh() ta.pivotlow()
Mặc định:
Pivot Length = 5.
Điều này có nghĩa mỗi Pivot cần đủ 5 nến bên trái và 5 nến bên phải để được xác nhận.
Pivot High được sử dụng để tìm kiếm những đỉnh thấp dần.
Pivot Low được sử dụng để tìm kiếm những đáy cao dần.
Một điểm quan trọng là Pivot không được xác nhận ngay tại cây nến tạo đỉnh hoặc đáy.
Với Pivot Length bằng 5, chiến lược cần chờ thêm 5 nến phía bên phải trước khi xác nhận điểm xoay.
Do đó, Trendline có thể chỉ xuất hiện trên biểu đồ sau khi hai điểm Pivot đã hoàn tất quá trình xác nhận.
Đây là đặc điểm cần được hiểu đúng khi đánh giá tín hiệu trong Strategy Tester.
2.2. Descending Resistance Trendline – Đường kháng cự giảm
Đường kháng cự giảm được xây dựng từ hai Pivot High liên tiếp có giá trị thấp dần.
CNPS 32 yêu cầu:
Pivot High 2 < Pivot High 1.
Ngoài ra, hai Pivot phải cách nhau ít nhất một khoảng nến nhất định.
Mặc định:
Minimum Bars Between Pivots = 8.
Điều kiện:
Pivot 2 Bar − Pivot 1 Bar ≥ 8.
Ví dụ:
- Pivot High thứ nhất: 1.910 điểm.
- Pivot High thứ hai: 1.904 điểm.
- Khoảng cách: 12 nến.
Vì Pivot thứ hai thấp hơn Pivot thứ nhất và khoảng cách đủ lớn, bot có thể xây dựng một đường kháng cự giảm.
Đường Trendline được tính bằng phương trình tuyến tính đi qua hai điểm Pivot.
Trendline Slope = (Price 2 − Price 1) / (Bar 2 − Bar 1).
Giá trị đường kháng cự tại cây nến hiện tại được tính từ Pivot thứ hai và độ dốc đã xác định.
Điểm quan trọng là chiến lược sử dụng hai Pivot High được ghi nhận gần nhất, không tự động tìm cặp đỉnh tốt nhất trong toàn bộ lịch sử để tối ưu đường kháng cự.
Nếu Pivot High mới xuất hiện nhưng không thấp hơn Pivot trước, đường kháng cự cũ bị xóa và cặp Pivot mới không tạo được Resistance Trendline hợp lệ.
2.3. Ascending Support Trendline – Đường hỗ trợ tăng
Đối với hỗ trợ, chiến lược sử dụng hai Pivot Low liên tiếp có mức giá cao dần.
Điều kiện:
Pivot Low 2 > Pivot Low 1.
Khoảng cách hai Pivot:
Bar 2 − Bar 1 ≥ Minimum Pivot Span.
Mặc định:
Minimum Pivot Span = 8 nến.
Ví dụ:
- Pivot Low thứ nhất: 1.880 điểm.
- Pivot Low thứ hai: 1.886 điểm.
- Khoảng cách: 15 nến.
Bot có thể xây dựng một đường hỗ trợ tăng từ hai Pivot này.
Khi đường được tạo, nó được kéo dài về phía bên phải để tiếp tục theo dõi tương tác của giá.
Nếu giá đóng cửa phá xuống dưới đường hỗ trợ cùng khoảng ATR Buffer hợp lệ, chiến lược có thể phát hiện Raw Bearish Breakout.
Tương tự kháng cự, CNPS 32 chỉ sử dụng hai Pivot Low gần nhất đang được lưu.
Bot không duy trì đồng thời nhiều đường hỗ trợ lịch sử để chọn ra đường có nhiều lần chạm nhất.
2.4. ATR Breakout Buffer – Khoảng đệm xác nhận phá vỡ
Average True Range (ATR) là chỉ báo phản ánh mức biến động trung bình của giá trong một chu kỳ.
CNPS 32 sử dụng:
ATR Length = 14.
Mặc định:
Break Buffer = 0,10 ATR.
Điều kiện xác nhận phá vỡ kháng cự:
Close > Resistance Level + ATR × 0,10.
Điều kiện xác nhận phá vỡ hỗ trợ:
Close < Support Level − ATR × 0,10.
Ví dụ:
- Resistance Level hiện tại = 1.900.
- ATR14 = 10 điểm.
- Break Buffer = 0,10.
Khi đó:
Breakout Threshold = 1.900 + 1 = 1.901 điểm.
Để tạo Raw Bullish Breakout, giá đóng cửa phải lớn hơn 1.901 điểm.
Nếu Close chỉ bằng 1.900,5, điều kiện chưa đạt.
Ngược lại, với đường hỗ trợ tại 1.890 và ATR14 bằng 10:
Breakdown Threshold = 1.890 − 1 = 1.889 điểm.
Giá đóng cửa cần thấp hơn 1.889 để tạo Raw Bearish Breakout.
Điểm đáng chú ý là điều kiện sử dụng giá đóng cửa và so sánh trực tiếp với ngưỡng, không bắt buộc phải có một giao cắt được lập trình riêng bằng ta.crossover() hoặc ta.crossunder().
2.5. Trendline Freshness – Giới hạn tuổi đường xu hướng
CNPS 32 không duy trì một đường Trendline vô thời hạn.
Mặc định:
Maximum Line Age = 150 nến.
Tuổi đường được tính từ cây nến của Pivot thứ hai.
Điều kiện hợp lệ:
Current Bar Index − Pivot 2 Bar ≤ 150.
Nếu vượt quá 150 nến, đường được xem là hết hạn.
Nếu đường chưa bị phá vỡ, chiến lược:
- Xóa hình vẽ Trendline.
- Đặt trạng thái Valid thành False.
- Không tiếp tục sử dụng đường đó để tìm kiếm Breakout.
Điều này có nghĩa một đường kháng cự hoặc hỗ trợ có thể bị loại bỏ dù giá chưa từng phá qua nó.
Cơ chế giới hạn tuổi giúp bot tránh tiếp tục giao dịch từ những đường xu hướng đã hình thành quá lâu so với phạm vi được cấu hình.
2.6. Clean Trendline Management – Quản lý đường xu hướng
Một đặc điểm nổi bật của phiên bản V2 là cách quản lý số lượng đường Trendline trên biểu đồ.
CNPS 32 chỉ duy trì:
Một đường Resistance hiện tại.
Một đường Support hiện tại.
Khi Pivot High mới được xác nhận, chiến lược xóa đường Resistance cũ trước khi đánh giá cặp Pivot High mới.
Tương tự, khi Pivot Low mới xuất hiện, đường Support cũ được xóa.
Đối với đường đã bị phá:
- Đường ngừng kéo dài sang phải.
- Chuyển sang màu xám.
- Chuyển sang nét chấm.
- Được giữ lại trong một số nến giới hạn.
- Sau đó bị xóa.
Mặc định:
Broken Line Display Bars = 2.
Nếu người dùng tắt Briefly Show Broken Trendline, hình vẽ sẽ được xóa ngay khi điều kiện phá vỡ được xử lý.
Điểm quan trọng là việc xóa đường chỉ ảnh hưởng đến hình vẽ, không có nghĩa mọi trạng thái giao dịch liên quan được đặt lại ngay lập tức.
Trong mã nguồn, các trạng thái Valid, Broken và thời điểm Breakout được quản lý riêng với đối tượng hình vẽ.
2.7. Awesome Oscillator Momentum – Bộ lọc động lượng
CNPS 32 sử dụng một biến thể tính toán Awesome Oscillator để đánh giá hướng thay đổi của động lượng.
Mã nguồn tính:
AO Raw = SMA(HL2, 5) − EMA(HL2, 34).
Sau đó làm mượt:
AO Value = EMA(AO Raw, 5).
Trong đó:
HL2 = (High + Low) / 2.
Các tham số mặc định:
- AO Fast = 5.
- AO Slow = 34.
- AO Smoothing = 5.
Một điểm quan trọng là đây là công thức AO tùy chỉnh của CNPS 32.
Nó không hoàn toàn giống Awesome Oscillator tiêu chuẩn thường sử dụng SMA5 trừ SMA34 của Median Price.
Trong CNPS 32, thành phần chậm là EMA34 và kết quả tiếp tục được làm mượt bằng EMA5.
Điều kiện Momentum Long:
AO hiện tại > AO nến trước.
Điều kiện Momentum Short:
AO hiện tại < AO nến trước.
Bot kiểm tra hướng thay đổi của AO, không bắt buộc AO phải lớn hơn 0 đối với Long hoặc nhỏ hơn 0 đối với Short.
Ví dụ, AO có thể vẫn âm nhưng đang tăng từ −3 lên −2.
Khi đó, điều kiện Long Momentum vẫn được đáp ứng.
Ngược lại, AO có thể vẫn dương nhưng giảm từ 4 xuống 3.
Khi đó, điều kiện Short Momentum có thể hợp lệ.
Đây là điểm quan trọng để tránh giải thích sai bộ lọc động lượng.
2.8. EMA Trend Filter – Bộ lọc xu hướng
CNPS 32 hỗ trợ bộ lọc EMA để đánh giá vị trí giá so với xu hướng trung bình.
Mặc định:
EMA Length = 100.
Trend Filter EMA = Tắt.
Nếu người dùng bật:
Với Long:
Close > EMA100.
Với Short:
Close < EMA100.
Nếu giá đóng cửa không nằm đúng phía EMA, tín hiệu Breakout không được chấp nhận.
Điểm đáng chú ý là EMA Filter chỉ kiểm tra vị trí giá đóng cửa so với EMA.
Mã nguồn không yêu cầu EMA100 đang có độ dốc tăng hoặc giảm.
Do đó, EMA Filter không phải một bộ lọc xác nhận độ dốc xu hướng, mà là bộ lọc vị trí giá so với đường trung bình.
2.9. ADX Filter – Bộ lọc sức mạnh xu hướng
CNPS 32 sử dụng DMI/ADX để bổ sung điều kiện về sức mạnh xu hướng.
Mã nguồn:
ta.dmi(14, 14)
Mặc định:
ADX Threshold = 18.
ADX Filter = Tắt.
Khi bật, chiến lược yêu cầu:
ADX > 18.
ADX được sử dụng chung cho cả Long và Short.
Đặc biệt, bot không yêu cầu:
- DI+ > DI− đối với Long.
- DI− > DI+ đối với Short.
Mặc dù hàm DMI có trả về DI+ và DI−, điều kiện vào lệnh của CNPS 32 chỉ sử dụng ADX.
Vì vậy, bộ lọc này đánh giá sức mạnh xu hướng, không trực tiếp xác định hướng giao dịch.
2.10. Relative Volume Filter – Bộ lọc khối lượng
CNPS 32 hỗ trợ kiểm tra khối lượng hiện tại so với khối lượng trung bình của 20 nến.
Mặc định:
Volume Filter = Tắt.
Volume Multiplier = 1,20.
Công thức:
Volume Average = SMA(Volume, 20).
Khi bật, điều kiện hợp lệ là:
Current Volume > Volume Average × 1,20.
Ví dụ:
Nếu khối lượng trung bình 20 nến là 10.000 hợp đồng, khối lượng nến hiện tại cần lớn hơn 12.000 hợp đồng để vượt bộ lọc.
Đây là điều kiện khối lượng tương đối.
Nó không yêu cầu một mức Volume cố định giống nhau cho mọi khung thời gian.
Một chi tiết kỹ thuật cần lưu ý là khi Volume Average chưa có giá trị hợp lệ, mã nguồn giữ volumeOK = true.
Vì vậy, bộ lọc không tự động từ chối tín hiệu trong trường hợp dữ liệu trung bình khối lượng chưa sẵn sàng.
3. Nguyên lý hoạt động của CNPS 32 V2 Trendline Break Pro Clean
Chiến lược hoạt động theo quy trình:
Pivot Detection → Trendline Construction → Breakout Detection → Momentum Filters → Trade Approval → Dynamic Exit.
Bước 1: Phát hiện Pivot
Bot liên tục tính Pivot High và Pivot Low với Pivot Length mặc định bằng 5.
Khi xuất hiện một Pivot High mới, chiến lược cập nhật hai Pivot High gần nhất.
Tương tự, khi xuất hiện Pivot Low mới, bot cập nhật hai Pivot Low gần nhất.
Những điểm Pivot này được sử dụng để đánh giá điều kiện xây dựng đường xu hướng.
Bước 2: Xây dựng đường Resistance
Nếu hai Pivot High mới nhất có mức giá thấp dần và cách nhau tối thiểu 8 nến, chiến lược xác định Resistance Trendline.
Sau đó, bot tính độ dốc và giá trị đường kháng cự theo từng cây nến.
Khi tạo đường mới, chiến lược còn kiểm tra các giá đóng cửa gần nhất so với phần kéo dài của Trendline.
Nếu phát hiện giá đã đóng cửa phía trên đường trong phạm vi kiểm tra này, đường có thể được đánh dấu Broken ngay khi tạo.
Điều này giúp hạn chế việc sử dụng một đường kháng cự đã bị giá vượt qua trước khi hoàn tất xác nhận Pivot.
Tuy nhiên, sự kiện đánh dấu Broken tại thời điểm xây dựng không đồng nghĩa chiến lược phát sinh Raw Breakout Entry.
Bước 3: Xây dựng đường Support
Với hai Pivot Low cao dần, bot xây dựng Support Trendline.
Quy trình tương tự Resistance:
- Xác định hai Pivot Low.
- Kiểm tra khoảng cách tối thiểu.
- Tính độ dốc.
- Kéo dài đường sang phải.
- Kiểm tra việc đường đã bị giá đóng cửa xuyên qua trong giai đoạn gần đây hay chưa.
Nếu không đáp ứng điều kiện, Support Trendline mới không được công nhận.
Bước 4: Kiểm tra tuổi đường xu hướng
Sau khi xây dựng, bot liên tục kiểm tra Maximum Line Age.
Nếu đường đã quá 150 nến kể từ Pivot thứ hai và chưa bị phá, chiến lược xóa đường và đặt trạng thái không hợp lệ.
Chỉ những đường còn hiệu lực mới được sử dụng trong bước Breakout Detection.
Bước 5: Phát hiện Raw Breakout
Với Resistance:
Raw Break Up = Close > Resistance + 0,10 ATR.
Với Support:
Raw Break Down = Close < Support − 0,10 ATR.
Ngoài điều kiện giá, chiến lược yêu cầu:
- Trendline đang hợp lệ.
- Đường chưa bị Broken.
- Chưa hết tuổi.
- Cây nến đã đóng cửa xác nhận.
Nếu đáp ứng, bot ghi nhận sự kiện Raw Break.
Bước 6: Đánh dấu Trendline đã phá vỡ
Ngay khi Raw Break xuất hiện, chiến lược cập nhật trạng thái Broken của đường tương ứng.
Sau đó, hình vẽ được chuyển sang màu xám và nét chấm.
Một điểm đặc biệt quan trọng là Trendline được đánh dấu đã phá trước khi các bộ lọc AO, EMA, ADX và Volume được áp dụng.
Ví dụ, giá phá đường kháng cự nhưng AO không đang tăng.
Trong trường hợp này:
- Raw Break Up vẫn được ghi nhận.
- Resistance Trendline vẫn bị đánh dấu Broken.
- Long Signal không được xác nhận.
- Đường đã Broken không tiếp tục tạo một tín hiệu mới ở những nến sau.
Do đó, CNPS 32 không chờ AO xác nhận ở một cây nến muộn hơn rồi mới giao dịch lại cùng đường Trendline.
Đây là khác biệt quan trọng so với các chiến lược có trạng thái chờ Breakout Confirmation.
Bước 7: Kiểm tra bộ lọc Momentum
Sau Raw Break, bot kiểm tra hướng thay đổi của AO.
Với Long:
AO hiện tại > AO nến trước.
Với Short:
AO hiện tại < AO nến trước.
Nếu Momentum Filter đang bật và AO không phù hợp, tín hiệu không được chấp nhận.
Tiếp theo, chiến lược kiểm tra EMA, ADX và Volume nếu các bộ lọc này được bật.
Trong cấu hình mặc định, chỉ có Momentum Filter đang hoạt động.
Bước 8: Kiểm tra điều kiện vào lệnh
Sau khi hình thành Qualified Signal, bot kiểm tra:
- Hướng giao dịch được cho phép.
- Đang trong thời gian vào lệnh.
- Thời điểm đóng nến trước Force Close.
- Chưa vượt 3 giao dịch/ngày.
- Cooldown 5 nến đã hoàn thành.
- Trạng thái vị thế phù hợp.
- Không có tín hiệu Long và Short xung đột.
- Nến đã đóng cửa xác nhận.
Mặc định, Reverse On Opposite Signal đang tắt.
Vì vậy, bot chỉ mở lệnh mới khi không có vị thế đang nắm giữ.
Bước 9: Ước tính khoảng rủi ro
Trước khi tạo lệnh, chiến lược tính khoảng Stop Loss theo chế độ quản trị đang sử dụng.
Trong Source Dynamic mặc định:
Initial Risk = 1,5 ATR.
Nếu người dùng chuyển Source Stop Mode sang Swing, chiến lược tính khoảng rủi ro từ cấu trúc High/Low gần nhất và ATR Padding.
Ngoài ra, khoảng rủi ro được giới hạn tối thiểu bằng 0,5 ATR.
Giá trị Risk được lưu để sử dụng khi vị thế được khớp.
Bước 10: Mở vị thế và quản trị động
Sau khi lệnh được khớp, bot ghi nhận giá vào lệnh trung bình và thiết lập Stop Loss/Take Profit.
Trong Source Dynamic mặc định:
- SL ban đầu cách Entry 1,5 ATR.
- TP cách Entry 3 ATR, tương đương 2R.
- Break Even được kích hoạt tại 1R.
- Trailing Stop bắt đầu tại 1,5R.
- Trailing Distance bằng 2 ATR.
Khi vị thế đóng, chiến lược xóa trạng thái quản trị của giao dịch cũ và ghi nhận thời điểm thoát để bắt đầu Cooldown.
4. Điều kiện vào lệnh Long và Short của CNPS 32
4.1. Điều kiện Long theo Resistance Breakout
Một tín hiệu Long hợp lệ được hình thành khi:
- Có hai Pivot High đã xác nhận.
- Pivot High thứ hai thấp hơn Pivot High thứ nhất.
- Hai Pivot cách nhau tối thiểu 8 nến.
- Resistance Trendline được xây dựng hợp lệ.
- Đường chưa bị đánh dấu Broken.
- Tuổi đường không vượt 150 nến.
- Close hiện tại lớn hơn Resistance Level cộng 0,10 ATR.
- Cây nến đã đóng cửa xác nhận.
- Nếu Momentum Filter bật, AO hiện tại lớn hơn AO nến trước.
- Nếu EMA Filter bật, Close nằm trên EMA100.
- Nếu ADX Filter bật, ADX lớn hơn 18.
- Nếu Volume Filter bật và Volume Average hợp lệ, Volume hiện tại lớn hơn SMA20 × 1,20.
- Trade Direction cho phép Long.
- Thời gian vào lệnh hợp lệ.
- Chưa vượt giới hạn 3 giao dịch/ngày.
- Cooldown đã hoàn thành.
- Không có Short Candidate xung đột.
- Trạng thái vị thế cho phép mở Long.
Khi toàn bộ điều kiện hợp lệ, bot phát sinh lệnh Long với khối lượng 3 hợp đồng.
Ví dụ minh họa:
Hai Pivot High hình thành tại:
- Pivot 1: 1.910 điểm.
- Pivot 2: 1.905 điểm.
- Khoảng cách: 10 nến.
Bot xây dựng đường kháng cự giảm.
Tại một cây nến sau đó:
- Resistance Level = 1.900.
- ATR14 = 10.
- Break Buffer = 1 điểm.
- Close = 1.903.
- AO tăng so với nến trước.
Nếu các điều kiện giao dịch khác hợp lệ, chiến lược có thể mở Long.
Với Source Dynamic mặc định và ATR tại thời điểm tín hiệu bằng 10 điểm:
Risk Distance = 15 điểm.
Take Profit Distance = 30 điểm.
Các mức giá thực tế được xác định từ giá vào lệnh trung bình sau khi lệnh khớp.
4.2. Điều kiện Short theo Support Breakdown
Đối với Short, chiến lược sử dụng các điều kiện tương ứng:
- Có hai Pivot Low đã xác nhận.
- Pivot Low thứ hai cao hơn Pivot Low thứ nhất.
- Khoảng cách hai Pivot tối thiểu 8 nến.
- Support Trendline hợp lệ.
- Đường chưa bị Broken.
- Đường chưa hết hạn.
- Close hiện tại thấp hơn Support Level trừ 0,10 ATR.
- Nến đã đóng cửa.
- AO hiện tại thấp hơn AO nến trước nếu Momentum Filter bật.
- Close nằm dưới EMA100 nếu EMA Filter bật.
- ADX vượt 18 nếu ADX Filter bật.
- Volume vượt mức yêu cầu nếu Volume Filter bật và dữ liệu trung bình hợp lệ.
- Trade Direction cho phép Short.
- Điều kiện phiên giao dịch hợp lệ.
- Chưa đạt giới hạn giao dịch/ngày.
- Cooldown hợp lệ.
- Không có Long Candidate đối lập.
- Trạng thái vị thế cho phép mở Short.
Khi các điều kiện được đáp ứng, bot phát sinh Short với khối lượng 3 hợp đồng.
Ví dụ minh họa:
Hai Pivot Low được ghi nhận tại:
- Pivot 1: 1.880.
- Pivot 2: 1.886.
- Khoảng cách: 12 nến.
Bot xây dựng đường hỗ trợ tăng.
Tại thời điểm Breakdown:
- Support Level = 1.892.
- ATR = 8.
- Break Buffer = 0,8 điểm.
- Close = 1.890.
- AO giảm so với nến trước.
Nếu các bộ lọc khác hợp lệ, chiến lược có thể tạo Short.
4.3. Raw Breakout và Qualified Signal khác nhau thế nào?
CNPS 32 phân biệt hai giai đoạn:
Raw Breakout: Giá đóng cửa vượt ngưỡng Trendline và đường chưa bị phá.
Qualified Signal: Raw Breakout đồng thời đáp ứng những bộ lọc xác nhận đang bật.
Ví dụ, nếu giá vượt kháng cự nhưng AO đang giảm:
- Raw Break Up = True.
- Long Momentum OK = False.
- Long Signal = False.
Chiến lược không tạo lệnh Long.
Tuy nhiên, đường Resistance vẫn bị đánh dấu Broken.
Điểm này đặc biệt quan trọng khi đánh giá số lần phá vỡ Trendline so với số giao dịch thực tế.
4.4. Không có cơ chế chờ Retest
Khác với những chiến lược Breakout Retest, CNPS 32 không yêu cầu giá quay lại kiểm tra Trendline sau khi phá vỡ.
Bot cũng không lưu một thiết lập Breakout để chờ xác nhận ở những nến tiếp theo.
Tín hiệu giao dịch được đánh giá tại chính cây nến xuất hiện Raw Breakout.
Nếu các bộ lọc không đạt trên cây nến đó, chiến lược không tự động thử lại cùng Trendline khi AO hoặc Volume trở nên phù hợp ở một thời điểm sau.
Do đó, CNPS 32 thuộc nhóm Breakout Confirmation, không phải Breakout Retest.
4.5. Reverse On Opposite Signal
CNPS 32 hỗ trợ tùy chọn:
Reverse On Opposite Signal = Tắt.
Đây là cấu hình mặc định.
Khi tắt, chiến lược yêu cầu đang Flat để mở lệnh mới.
Ví dụ, nếu đang giữ Long và xuất hiện Short Signal, bot không tự động đóng Long để mở Short.
Nếu bật Reverse On Opposite Signal:
- Khi đang Short, bot có thể mở Long nếu có Qualified Long Signal hợp lệ.
- Khi đang Long, bot có thể mở Short nếu có Qualified Short Signal hợp lệ.
Trong trường hợp này, lệnh strategy.entry() theo hướng đối lập có thể tạo giao dịch đảo chiều theo cơ chế của TradingView.
Tuy nhiên, tín hiệu đảo chiều vẫn phải đáp ứng điều kiện thời gian, Cooldown, giới hạn giao dịch và những bộ lọc khác.
Điều này có nghĩa bật Reverse không đảm bảo mọi tín hiệu đối lập đều thực sự đảo chiều vị thế.
4.6. Conflict Protection – Chống tín hiệu xung đột
CNPS 32 có cơ chế kiểm tra:
Long Candidate và Short Candidate đồng thời.
Nếu cả hai cùng đúng trên một cây nến, chiến lược xác định Conflict.
Khi đó:
- Final Long Signal = False.
- Final Short Signal = False.
Bot không phát sinh lệnh giao dịch mới.
Điều quan trọng là các đường Trendline tạo Raw Break có thể đã được đánh dấu Broken trước khi đến bước Conflict Protection.
Vì vậy, xung đột tín hiệu có thể khiến bot bỏ qua cả hai giao dịch mà không sử dụng lại hai đường đã phá ở những nến tiếp theo.
4.7. Giới hạn giao dịch trong ngày
Theo cấu hình mặc định:
Maximum Trades Per Day = 3.
Bot tăng bộ đếm khi phát sinh lệnh Entry Long hoặc Short.
Sau khi đạt giới hạn, chiến lược không tiếp tục mở lệnh mới trong ngày.
Tuy nhiên, Raw Breakout vẫn được phát hiện và Trendline vẫn có thể bị đánh dấu Broken.
Điều này có nghĩa những tín hiệu xuất hiện sau khi đạt giới hạn giao dịch không được lưu lại để sử dụng vào ngày tiếp theo.
4.8. Cooldown sau thoát vị thế
CNPS 32 sử dụng:
Cooldown Bars After Exit = 5.
Bot lưu chỉ số nến khi phát hiện vị thế trước đó vừa chuyển sang Flat.
Điều kiện mở lệnh mới:
Current Bar Index − Last Exit Bar > 5.
Với dữ liệu nến liên tiếp, chiến lược chỉ có thể chấp nhận một lệnh mới từ cây nến cách nến ghi nhận thoát vị thế tối thiểu 6 đơn vị chỉ số nến.
Trong thời gian Cooldown, các Raw Breakout vẫn có thể xảy ra và làm đường Trendline chuyển sang Broken, dù bot không tạo lệnh.
5. CNPS 32 quản trị rủi ro và thoát lệnh như thế nào?
5.1. Source Dynamic – Chế độ quản trị mặc định
CNPS 32 sử dụng:
Exit Mode = Source Dynamic.
Chế độ này kết hợp nhiều cơ chế quản trị:
- Initial Stop Loss.
- Take Profit theo R.
- Break Even.
- ATR Trailing Stop.
- Time Exit tùy chọn.
- Force Close cuối phiên.
Theo mặc định, Stop Loss được tính từ ATR tại thời điểm xuất hiện tín hiệu giao dịch.
Sau khi lệnh khớp, chiến lược sử dụng khoảng Risk đã lưu để đặt mức Stop Loss và Take Profit từ giá vào lệnh trung bình.
Điểm quan trọng là Stop Loss được tính từ Risk Distance, không phải luôn cố định tại giá ATR Stop hoặc Swing Stop tham chiếu ban đầu.
5.2. ATR Stop Loss mặc định 1,5 ATR
Mặc định:
Source Stop Mode = ATR.
ATR Stop Multiplier = 1,5.
Với Long:
Risk Distance = ATR × 1,5.
Initial Stop = Entry Price − Risk Distance.
Với Short:
Initial Stop = Entry Price + Risk Distance.
Ví dụ:
Nếu ATR14 = 8 điểm:
Risk Distance = 8 × 1,5 = 12 điểm.
Với Long khớp tại 1.900 điểm:
Stop Loss = 1.888.
Với Short khớp tại 1.900 điểm:
Stop Loss = 1.912.
Điều này có nghĩa khoảng Stop Loss của bot thay đổi theo trạng thái biến động thị trường.
Nếu ATR tăng, Stop Loss có thể rộng hơn.
Nếu ATR giảm, khoảng Stop Loss có thể nhỏ hơn.
Tuy nhiên, ATR Stop là phương pháp xác định khoảng rủi ro, không đảm bảo vị thế luôn được khớp tại Stop Loss trong điều kiện biến động mạnh.
5.3. Swing Stop Loss tùy chọn
Ngoài ATR Stop, CNPS 32 hỗ trợ:
Source Stop Mode = Swing.
Mặc định:
- Swing Lookback = 10 nến.
- Swing Stop Padding = 0,25 ATR.
Với Long:
Swing Stop Reference = Lowest Low(10) − 0,25 ATR.
Với Short:
Swing Stop Reference = Highest High(10) + 0,25 ATR.
Bot tính khoảng cách từ giá đóng cửa tín hiệu đến Swing Stop Reference.
Tuy nhiên, chiến lược còn áp dụng giới hạn tối thiểu:
Minimum Risk Distance = 0,5 ATR.
Vì vậy:
Final Risk Distance = Max(Structure Risk, 0,5 ATR).
Điểm quan trọng là sau khi lệnh khớp, Stop Loss được đặt từ giá vào lệnh trung bình cộng hoặc trừ khoảng Risk Distance đã lưu.
Do đó, nếu giá khớp khác giá đóng cửa tín hiệu, Stop Loss thực tế có thể không trùng hoàn toàn với mức Swing Stop Reference ban đầu.
5.4. Take Profit mặc định 2R
CNPS 32 có tùy chọn:
Use Take Profit = Bật.
Take Profit R = 2,0.
Trong Source Dynamic:
Với Long:
Take Profit = Entry Price + Initial Risk × 2.
Với Short:
Take Profit = Entry Price − Initial Risk × 2.
Ví dụ, với Long:
- Entry = 1.900.
- Initial Risk = 10 điểm.
- Stop Loss = 1.890.
Take Profit:
1.900 + 10 × 2 = 1.920 điểm.
Tỷ lệ Reward/Risk danh nghĩa là 1:2.
Nếu người dùng tắt Use Take Profit trong Source Dynamic, bot không đặt mục tiêu TP cố định theo R.
Khi đó, vị thế tiếp tục được quản lý bởi Stop Loss, Break Even, Trailing Stop và các điều kiện thoát khác.
5.5. Break Even tại 1R
CNPS 32 mặc định bật Break Even.
Thông số:
- Use Break Even = Bật.
- Break Even Trigger = 1,0R.
- Break Even Offset = 0 điểm.
Với Long:
Trigger = Entry + Initial Risk × 1,0.
Khi High đạt ngưỡng, Stop Loss có thể được dời lên:
Entry + Break Even Offset.
Với Short:
Trigger = Entry − Initial Risk × 1,0.
Khi Low đạt ngưỡng, Stop Loss có thể được dời xuống:
Entry − Break Even Offset.
Ví dụ:
- Long Entry = 1.900.
- Initial Risk = 10 điểm.
- Break Even Trigger = 1R.
Khi giá chạm 1.910 điểm, bot có thể dời Stop Loss về 1.900 điểm.
Mặc định, Offset bằng 0 nên mức Stop Loss mới chính là giá vào lệnh.
Một điểm đáng chú ý là Break Even được kích hoạt dựa trên High hoặc Low của nến, không yêu cầu giá đóng cửa vượt ngưỡng.
Tuy nhiên, trong mã nguồn, quá trình cập nhật động không chạy trên cây nến vừa được xác định là New Position.
Vì vậy, Stop Loss không được dời về Break Even ngay trong nhánh khởi tạo vị thế mới.
5.6. ATR Trailing Stop – Dừng lỗ bám theo giá
CNPS 32 mặc định bật ATR Trailing Stop.
Thông số:
- Use ATR Trailing Stop = Bật.
- Trail Starts At R = 1,5.
- Trail Distance = 2 ATR.
Với Long, Trailing Stop bắt đầu được kích hoạt khi:
High ≥ Entry + Initial Risk × 1,5.
Khi đã kích hoạt, bot tính:
Candidate Trail = Close − ATR × 2.
Stop Loss được cập nhật:
New Stop = Max(Current Stop, Candidate Trail).
Với Short:
Low ≤ Entry − Initial Risk × 1,5.
Khi kích hoạt:
Candidate Trail = Close + ATR × 2.
Stop Loss được cập nhật:
New Stop = Min(Current Stop, Candidate Trail).
Điểm quan trọng là CNPS 32 sử dụng giá đóng cửa để tính mức Trailing Stop mới, không sử dụng High cao nhất kể từ khi vào lệnh hoặc Low thấp nhất để tính trực tiếp mức Trail.
High/Low chỉ được sử dụng để kiểm tra điều kiện kích hoạt Trailing.
Sau khi Trailing đã bật, bot tiếp tục điều chỉnh Stop Loss theo Close và ATR của từng nến.
Với Long, Stop Loss không được phép hạ xuống.
Với Short, Stop Loss không được phép nâng lên.
Điều này giúp đường Stop Loss chỉ dịch chuyển theo hướng có lợi hơn.
5.7. Ví dụ kết hợp Break Even và Trailing Stop
Giả sử một vị thế Long được khớp tại:
Entry = 1.900 điểm.
ATR tại thời điểm tín hiệu:
ATR = 10 điểm.
Khoảng rủi ro ban đầu:
1,5 ATR = 15 điểm.
Stop Loss ban đầu:
1.885 điểm.
Take Profit 2R:
1.930 điểm.
Ngưỡng Break Even 1R:
1.915 điểm.
Ngưỡng kích hoạt Trailing 1,5R:
1.922,5 điểm.
Quy trình quản trị:
Giai đoạn 1 – Vị thế mới
Bot đặt SL tại 1.885 và TP tại 1.930.
Giai đoạn 2 – Giá đạt 1R
Khi High đạt 1.915, Break Even có thể được kích hoạt và Stop Loss được dời lên 1.900.
Giai đoạn 3 – Giá đạt 1,5R
Khi High đạt 1.922,5, Trailing Stop bắt đầu hoạt động.
Giả sử tại thời điểm cập nhật:
- Close = 1.923.
- ATR hiện tại = 9.
Candidate Trail:
1.923 − 2 × 9 = 1.905 điểm.
Vì mức này cao hơn Stop Loss 1.900, bot có thể nâng Stop Loss lên 1.905.
Giai đoạn 4 – Giá tiếp tục tăng
Nếu giá tiếp tục đóng cửa cao hơn, mức Trailing Stop có thể tiếp tục được nâng lên.
Nếu giá giảm, Stop Loss không được hạ xuống.
Ví dụ trên chỉ minh họa công thức quản trị. Giá khớp và thứ tự thực thi trong Strategy Tester còn phụ thuộc vào dữ liệu nến và mô hình khớp lệnh.
5.8. Chế độ Fixed Points
CNPS 32 hỗ trợ:
Exit Mode = Fixed Points.
Mặc định:
- Fixed Stop Loss = 5 điểm.
- Fixed Take Profit = 15 điểm.
Với Long:
SL = Entry − 5.
TP = Entry + 15.
Với Short:
SL = Entry + 5.
TP = Entry − 15.
Tỷ lệ Reward/Risk danh nghĩa:
15 / 5 = 3R.
Đặc biệt, khi sử dụng Fixed Points, những cơ chế Break Even và ATR Trailing Stop trong mã nguồn hiện tại không được áp dụng, dù các tùy chọn tương ứng vẫn đang bật trong Settings.
Lý do là phần cập nhật Break Even và Trailing Stop được giới hạn bởi điều kiện:
exitMode == "Source Dynamic"
Vì vậy, người dùng không nên mặc định rằng Fixed Points sẽ đồng thời có Trailing Stop động.
Ngoài ra, tùy chọn Use Take Profit chỉ quyết định việc có đặt TP theo R trong Source Dynamic; Fixed Points vẫn sử dụng Fixed Take Profit.
5.9. Time Exit – Thoát theo số nến
CNPS 32 có tính năng:
Maximum Bars In Trade.
Mặc định:
Maximum Bars In Trade = 0.
Giá trị 0 có nghĩa tính năng đang tắt.
Nếu người dùng thiết lập giá trị lớn hơn 0, bot sẽ theo dõi số nến kể từ thời điểm ghi nhận vị thế mới.
Khi:
Bars In Trade ≥ Maximum Bars In Trade
chiến lược sử dụng strategy.close_all() để yêu cầu đóng vị thế.
Ví dụ, nếu Maximum Bars In Trade được đặt là 20, bot có thể yêu cầu đóng vị thế khi đã trải qua 20 đơn vị chỉ số nến kể từ Active Entry Bar.
Đây là Time Exit theo số nến, không phải thời gian thực tính bằng phút.
5.10. Force Close cuối phiên
CNPS 32 sử dụng:
- Entry Start: 09:00.
- Last Entry: 14:30.
- Force Close: 14:45.
- Timezone: Asia/Ho_Chi_Minh.
Điều kiện Force Close được kích hoạt khi cây nến bắt đầu trước 14:45 và thời điểm đóng nến đạt hoặc vượt mốc này.
Nếu đang có vị thế, bot yêu cầu đóng toàn bộ bằng:
strategy.close_all(immediately=true)
Một điểm cần lưu ý là cửa sổ Entry được kiểm tra từ 09:00 đến 14:30 theo thời điểm mở nến, đồng thời Close của nến phải trước 14:45.
Mã nguồn không tách riêng khung giờ nghỉ trưa. Nếu nguồn dữ liệu có nến trong khoảng nghỉ, chiến lược vẫn có thể kiểm tra tín hiệu trong cửa sổ thời gian đã thiết lập.
6. Hướng dẫn cài đặt và sử dụng CNPS 32 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 32 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 cố định vào M1 hoặc M5.
Tuy nhiên, những tham số như Pivot Length, Minimum Pivot Span, Maximum Line Age và Cooldown đều được tính theo số nến.
Vì vậy, cùng một cấu hình có thể tạo ra những Trendline và thời điểm Breakout khác nhau khi thay đổi khung thời gian.
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 32 V2 TRENDLINE BREAK PRO CLEAN.
- Lưu mã nguồn.
- Chọn Add to chart.
- Kiểm tra các đường Resistance và Support.
- Mở Strategy Tester để đánh giá kết quả giao dịch.
Bước 3: Cấu hình các thông số cơ bản
| Thông số | Mặc định | Ý nghĩa |
|---|---|---|
| Pivot Length | 5 | Chu kỳ xác nhận Pivot |
| Minimum Bars Between Pivots | 8 | Khoảng cách Pivot tối thiểu |
| Maximum Line Age | 150 | Tuổi Trendline tối đa |
| ATR Length | 14 | Chu kỳ ATR |
| Break Buffer x ATR | 0,10 | Khoảng đệm phá Trendline |
| Show Current Trendlines | Bật | Hiển thị đường xu hướng |
| Show Broken Trendline | Bật | Hiển thị đường vừa phá |
| Broken Line Display Bars | 2 | Số nến giữ hình vẽ đã phá |
| Trade Direction | Both | Cho phép Long và Short |
| Reverse On Opposite Signal | Tắt | Đảo chiều vị thế |
| Momentum Filter | Bật | Lọc tín hiệu bằng AO |
| AO Fast | 5 | Chu kỳ AO nhanh |
| AO Slow | 34 | Chu kỳ AO chậm |
| AO Smoothing | 5 | Chu kỳ làm mượt AO |
| EMA Trend Filter | Tắt | Bật lọc xu hướng EMA |
| EMA Length | 100 | Chu kỳ EMA |
| ADX Filter | Tắt | Bật lọc ADX |
| ADX Threshold | 18 | Ngưỡng ADX |
| Volume Filter | Tắt | Bật lọc Volume |
| Volume Multiplier | 1,20 | Hệ số so với SMA Volume20 |
| Exit Mode | Source Dynamic | Quản trị vị thế động |
| Source Stop Mode | ATR | Stop theo ATR hoặc Swing |
| ATR Stop Multiplier | 1,50 | Khoảng Stop tính theo ATR |
| Swing Lookback | 10 | Chu kỳ tìm High/Low cấu trúc |
| Swing Stop Padding | 0,25 ATR | Khoảng đệm cấu trúc |
| Use Take Profit | Bật | Bật TP theo R |
| Take Profit R | 2,0 | Mục tiêu TP |
| Use Break Even | Bật | Bật Break Even |
| Break Even Trigger | 1,0R | Ngưỡng kích hoạt BE |
| Break Even Offset | 0 điểm | Khoảng dời Stop |
| Use ATR Trailing Stop | Bật | Bật Trailing Stop |
| Trail Starts At R | 1,5R | Ngưỡng bắt đầu Trail |
| Trail Distance | 2 ATR | Khoảng cách Trailing |
| Fixed Stop Loss | 5 điểm | Stop cho Fixed Points |
| Fixed Take Profit | 15 điểm | TP cho Fixed Points |
| Maximum Bars In Trade | 0 | Tắt Time Exit |
| Maximum Trades Per Day | 3 | Giới hạn lệnh/ngày |
| Cooldown Bars After Exit | 5 | Khoảng nghỉ sau thoát |
| Entry Start | 09:00 | 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 vị thế cuối phiên |
| Disable SL/TP Alerts | Tắt | Cho phép cảnh báo SL/TP |
Bước 4: Kiểm tra các đường Trendline
Theo cấu hình mặc định:
- Resistance Trendline có màu đỏ.
- Support Trendline có màu xanh teal.
- Đường đã Broken chuyển sang màu xám, nét chấm.
- Đường Broken được xóa sau khoảng hiển thị đã thiết lập.
Khi xuất hiện Pivot mới, đường tương ứng trước đó bị thay thế.
Vì vậy, việc một Trendline biến mất không nhất thiết có nghĩa đường đã bị giá phá vỡ.
Nó có thể biến mất do:
- Xuất hiện Pivot mới.
- Cặp Pivot mới không còn đáp ứng điều kiện.
- Đường đã vượt giới hạn tuổi.
- Đường đã Broken và hết thời gian hiển thị.
Bước 5: Bật các bộ lọc xác nhận
Để nghiên cứu hiệu quả của CNPS 32, người dùng có thể kiểm thử:
Cấu hình A: Momentum Filter mặc định.
Cấu hình B: Momentum + EMA100.
Cấu hình C: Momentum + ADX18.
Cấu hình D: Momentum + Volume 1,20.
Cấu hình E: Kết hợp cả bốn bộ lọc.
Tuy nhiên, cần nhớ rằng Raw Breakout được đánh dấu đã phá trước khi các bộ lọc được áp dụng.
Vì vậy, bật thêm bộ lọc có thể khiến nhiều sự kiện Breakout bị loại bỏ ngay tại nến phá vỡ mà không có cơ hội được xét lại.
Bước 6: Đọc tín hiệu trên biểu đồ
CNPS 32 hỗ trợ các thành phần:
| Thành phần | Cách nhận biết |
|---|---|
| Resistance Trendline | Đường đỏ |
| Support Trendline | Đường xanh teal |
| Broken Trendline | Đường xám, nét chấm |
| Long Break Signal | Tam giác xanh hướng lên, nhãn L |
| Short Break Signal | Tam giác đỏ hướng xuống, nhãn S |
| Trend EMA | Đường cam |
| Active Stop Loss | Đường đỏ |
| Active Take Profit | Đường xanh lá |
Theo mặc định:
- Show Current Trendlines: Bật.
- Show Entry Signal Markers: Tắt.
- Show Trend EMA: Tắt.
- Show Active SL/TP: Bật.
- Show Diagnostics: Tắt.
Một điểm đặc biệt là EMA chỉ được vẽ khi Show Trend EMA và EMA Filter đều được bật.
Nếu người dùng bật Show Trend EMA nhưng vẫn để EMA Filter tắt, đường EMA sẽ không xuất hiện theo điều kiện Plot hiện tại.
Bước 7: Sử dụng bảng Diagnostics
CNPS 32 cung cấp bảng Diagnostics với các thông tin:
- Khung thời gian.
- Resistance Level.
- Support Level.
- Số Resistance Lines được tạo.
- Số Support Lines được tạo.
- AO Value.
- Trạng thái Momentum.
- ADX.
- Raw Breakout Long.
- Raw Breakout Short.
- Số tín hiệu Entry Long.
- Số tín hiệu Entry Short.
- Active Risk.
- Trạng thái Break Even.
- Trạng thái Trailing Stop.
- Exit Mode.
- Reverse On Opposite Signal.
- Cooldown.
- Trades Today.
- Position.
Bảng này hữu ích khi người dùng muốn hiểu tại sao một đường Trendline bị phá nhưng không có giao dịch.
Ví dụ, bot có thể ghi nhận Raw Breakout Long tăng thêm một lần nhưng Entries Long không thay đổi.
Nguyên nhân có thể do AO không phù hợp, các bộ lọc bổ sung không đạt, ngoài giờ giao dịch, đang giữ vị thế hoặc đã vượt giới hạn số lệnh.
Ngoài ra, bộ đếm Entries Long/Short trong Diagnostics thực chất được tăng khi Final Signal hợp lệ, trong khi điều kiện tạo lệnh cũng sử dụng Final Signal này.
Bước 8: Đánh giá trong Strategy Tester
CNPS 32 được phát triển dưới dạng TradingView Strategy nên hỗ trợ kiểm thử lịch sử.
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 32, nên kiểm thử riêng:
Thử nghiệm 1: Momentum Filter mặc định.
Thử nghiệm 2: Momentum kết hợp EMA100.
Thử nghiệm 3: Momentum kết hợp ADX và Volume.
Thử nghiệm 4: Source Dynamic ATR Stop.
Thử nghiệm 5: Source Dynamic Swing Stop.
Thử nghiệm 6: Fixed Points SL5/TP15.
Thử nghiệm 7: Source Dynamic không sử dụng Trailing Stop.
Thử nghiệm 8: So sánh Break Even bật và tắt.
Thử nghiệm 9: Thay đổi Break Buffer từ 0,10 ATR sang các giá trị khác.
Thử nghiệm 10: So sánh Maximum Line Age và Pivot Length.
Theo cấu hình trong mã nguồn:
- Initial Capital: 100.000.000 VNĐ.
- Khối lượng: 3 hợp đồng.
- Commission: 10.000 VNĐ mỗi hợp đồng cho mỗi lần khớp.
- Slippage: 3 ticks.
- Pyramiding: 0.
- Process Orders On Close: Bật.
- Calculate On Order Fills: Bật.
Ngoài ra, mã nguồn sử dụng fill_orders_on_standard_ohlc=true và thiết lập Margin Long/Short bằng 0.
Những thiết lập mô phỏng này cần được đánh giá cẩn thận vì không đồng nghĩa các yêu cầu ký quỹ hoặc cơ chế thực thi thực tế đã được tái hiện đầy đủ.
7. Cách thiết lập cảnh báo tín hiệu giao dịch
CNPS 32 hỗ trợ cảnh báo thông qua các sự kiện khớp lệnh mô phỏng của TradingView.
Để thiết lập:
- Chọn Create Alert trên biểu đồ có CNPS 32.
- Trong mục Condition, chọn CNPS 32 V2 TRENDLINE BREAK PRO CLEAN.
- Chọn cảnh báo dựa trên Order Fills.
- Trong 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 trong source gồm:
| Thông điệp | Ý nghĩa |
|---|---|
| ENTRY_LONG_CNPS32_V2 | Mở Long khi phá Resistance |
| ENTRY_SHORT_CNPS32_V2 | Mở Short khi phá Support |
| EXIT_LONG_TP_CNPS32_V2 | Đóng Long theo Take Profit |
| EXIT_LONG_SL_CNPS32_V2 | Đóng Long theo Stop Loss |
| EXIT_SHORT_TP_CNPS32_V2 | Đóng Short theo Take Profit |
| EXIT_SHORT_SL_CNPS32_V2 | Đóng Short theo Stop Loss |
| EXIT_LONG_BE_CNPS32_V2 | Đóng Long theo Stop Loss sau Break Even |
| EXIT_SHORT_BE_CNPS32_V2 | Đóng Short theo Stop Loss sau Break Even |
| TIME_EXIT_CNPS32_V2 | Đóng vị thế theo giới hạn số nến |
| SESSION_END_CNPS32_V2 | Đóng vị thế cuối phiên |
Entry Alert
Thông điệp Entry được phát sinh khi lệnh Long hoặc Short được khớp theo cơ chế TradingView.
Tuy nhiên, mã nguồn không tự động đưa vào nội dung cảnh báo giá Trendline, giá vào lệnh, ATR, Stop Loss hoặc Take Profit.
Nếu người dùng muốn thông báo chứa đầy đủ những dữ liệu này, cần bổ sung vào mã nguồn hoặc sử dụng cấu trúc cảnh báo phù hợp.
Take Profit Alert
Khi lệnh Take Profit được khớp, chiến lược sử dụng thông điệp TP tương ứng.
Stop Loss Alert
Khi Stop Loss bị khớp và Break Even chưa kích hoạt, bot sử dụng thông điệp SL.
Break Even Exit
Sau khi Break Even được kích hoạt, nếu Stop Loss điều chỉnh bị khớp, thông điệp được phân loại thành BE.
Điểm quan trọng là thông điệp BE phản ánh trạng thái Break Even đã được kích hoạt, không nhất thiết giá thoát thực tế chính xác tại Entry.
Trailing Stop
Mã nguồn không có thông điệp riêng cho việc Trailing Stop được kích hoạt hoặc cập nhật.
Nếu Trailing Stop khiến Stop Loss mới bị khớp, cảnh báo được xử lý qua nhóm Stop Loss, hoặc BE nếu trạng thái Break Even đã được kích hoạt.
Vì vậy, không nên mặc định EXIT_LONG_BE_CNPS32_V2 luôn đồng nghĩa một lệnh vừa đóng chính xác tại giá hòa vốn.
Time Exit
Khi Maximum Bars In Trade lớn hơn 0 và điều kiện được đáp ứng, bot sử dụng thông điệp TIME_EXIT_CNPS32_V2.
Session End
Khi Force Close cuối phiên được kích hoạt, chiến lược sử dụng SESSION_END_CNPS32_V2.
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 khả năng đồng bộ trạng thái Stop Loss, đặc biệt khi Break Even và Trailing Stop cùng đang hoạt động.
Việc TradingView phát cảnh báo không đồng nghĩa lệnh tương ứng đã được khớp thành công tại công ty chứng khoán.
Kết luận
CNPS 32 V2 Trendline Break Pro Clean là chiến lược giao dịch phái sinh ứng dụng phương pháp Automatic Trendline Detection kết hợp ATR-Buffered Breakout và Momentum Confirmation, hướng đến việc tìm kiếm cơ hội khi thị trường phá vỡ các đường hỗ trợ hoặc kháng cự động.
Khác với những chiến lược yêu cầu người dùng tự vẽ đường xu hướng, CNPS 32 tự động xây dựng Resistance Trendline từ hai Pivot High thấp dần và Support Trendline từ hai Pivot Low cao dần.
Khi giá đóng cửa phá vỡ một Trendline hợp lệ với khoảng ATR Buffer, chiến lược tiếp tục kiểm tra AO Momentum và các bộ lọc EMA, ADX hoặc Volume nếu được kích hoạt.
Điểm nổi bật của phiên bản V2 nằm ở khả năng quản lý Trendline gọn gàng, chỉ duy trì tối đa một đường hỗ trợ và một đường kháng cự, đồng thời tự động xóa các đường đã phá hoặc hết hạn.
Bên cạnh cơ chế tạo tín hiệu, CNPS 32 tích hợp hệ thống quản trị vị thế Source Dynamic với Stop Loss mặc định 1,5 ATR, Take Profit 2R, Break Even tại 1R và Trailing Stop bắt đầu từ 1,5R với khoảng cách 2 ATR.
Ngoài ra, người dùng có thể lựa chọn Swing Stop hoặc chuyển sang Fixed Points với Stop Loss 5 điểm, Take Profit 15 điểm.
Theo cấu hình mặc định, chiến lược giao dịch cả Long và Short, giới hạn tối đa 3 lệnh mỗi ngày, sử dụng Cooldown 5 nến sau thoát vị thế và không tự động đảo chiều khi xuất hiện tín hiệu đối lập.
Tuy nhiên, một cú phá Trendline không đảm bảo giá sẽ tiếp tục vận động theo hướng phá vỡ. Tương tự, việc bổ sung nhiều bộ lọc có thể làm giảm số lượng tín hiệu nhưng không tự động đảm bảo cải thiện tỷ lệ thắng.
Khi sử dụng CNPS 32, điều quan trọng là hiểu rõ cách Trendline được xây dựng, sự khác biệt giữa Raw Breakout và Qualified Signal, cơ chế tiêu thụ đường xu hướng và phương pháp quản trị Stop Loss động.
Người dùng nên kiểm thử chiến lược trong TradingView Strategy Tester, so sánh các bộ lọc xác nhận và đánh giá riêng hiệu quả của ATR Stop, Swing Stop, Break Even và Trailing Stop trên nhiều giai đoạn thị trường.
Theo dõi Phái Sinh Online để cập nhật thêm các hướng dẫn sử dụng bot giao dịch phái sinh, phương pháp phân tích kỹ thuật 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.





