Hướng Dẫn Sử Dụng Bot CNPS43-ORB cho VN30F1M
TradingviewHướng dẫn Bot CNPS 43 ORB Smart Trail: giao dịch phá vùng giá mở cửa, quản trị Stop Loss theo ATR, Structural Swing và Smart Trailing 3 cấp độ.

Mục lục
Trong giao dịch chứng khoán phái sinh, những phút đầu tiên của phiên giao dịch thường được nhà đầu tư quan tâm bởi đây là giai đoạn thị trường hình thành vùng dao động ban đầu và bắt đầu phản ánh sự tương tác giữa lực mua và lực bán.
Khi giá thoát khỏi vùng dao động này, thị trường có thể xuất hiện một nhịp biến động theo hướng phá vỡ. Tuy nhiên, không phải mọi cú Breakout đều phát triển thành một xu hướng đủ dài để tạo lợi nhuận.
Ngay cả khi xác định đúng hướng thị trường, việc quản trị vị thế sau khi vào lệnh vẫn là một vấn đề quan trọng.
Nếu đặt Take Profit quá gần, nhà giao dịch có thể thoát vị thế trước khi thị trường hình thành một xu hướng lớn. Ngược lại, nếu giữ Stop Loss quá xa, phần lợi nhuận đã hình thành có thể bị thu hẹp đáng kể khi giá đảo chiều.
Một phương pháp tiếp cận là kết hợp Opening Range Breakout (ORB) với hệ thống Trailing Stop có khả năng điều chỉnh khoảng cách bảo vệ theo mức lợi nhuận mà giao dịch đã đạt được.
CNPS 43 ORB SMART TRAIL là chiến lược được xây dựng bằng Pine Script v6 trên TradingView, sử dụng vùng giá mở cửa 09:00–09:15 để xác định tín hiệu phá vỡ, sau đó quản trị vị thế bằng hệ thống Step-Down ATR Trailing Stop kết hợp Structural Swing Trailing.
Điểm nổi bật của CNPS 43 là chiến lược không sử dụng Take Profit cố định.
Thay vào đó, bot thay đổi mức độ bám sát giá của Stop Loss theo ba giai đoạn:
- Dưới 1R: ATR Trailing sử dụng khoảng cách 3 ATR.
- Từ 1R đến dưới 2R: ATR Trailing thu hẹp còn 2 ATR.
- Từ 2R trở lên: ATR Trailing tiếp tục thu hẹp còn 1 ATR.
Trong đó, R là đơn vị rủi ro ban đầu được xác định từ giá đóng cửa của nến tín hiệu và khoảng Initial Risk.
Ngoài ATR Trailing, chiến lược sử dụng High/Low cấu trúc trong 5 nến gần nhất để tạo thêm một mức Stop tham chiếu.
Với Long, bot lựa chọn mức Stop cao hơn giữa ATR Trail và Structural Trail, đồng thời không hạ Stop Loss đã được nâng trước đó.
Với Short, nguyên tắc tương ứng được áp dụng theo hướng ngược lại.
Đặc biệt, chiến lược còn có cơ chế đóng vị thế khi xuất hiện một cây nến đảo chiều có thân lớn hơn ATR theo hệ số cấu hình.
Quy trình tổng quát:
Opening Range → OR Width Validation → Breakout → Initial Risk → Smart ATR + Structural Trail → Reversal Exit hoặc Force Close.
Theo cấu hình mặc định, CNPS 43 sử dụng Opening Range 15 phút đầu phiên, ATR14, Initial Stop tối thiểu 1,5 ATR và Structural Swing Lookback 5 nến.
Vậy Opening Range được tính như thế nào, điều kiện nào tạo Long hoặc Short, cơ chế Step-Down ATR Trailing hoạt động ra sao và nhà giao dịch cần lưu ý những gì khi sử dụng CNPS 43?
1. CNPS 43 ORB Smart Trail là gì?
CNPS 43 ORB Smart Trail là bot giao dịch được phát triển 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 theo phương pháp Opening Range Breakout kết hợp quản trị vị thế động.
Chiến lược gồm bốn thành phần chính.
1.1. Opening Range Engine
Opening Range là vùng giá được xây dựng từ High cao nhất và Low thấp nhất trong một khoảng thời gian đầu phiên.
Theo mặc định:
Opening Range Window = 09:00–09:15.
Trong khoảng thời gian này, bot liên tục cập nhật:
Opening Range High = High cao nhất của các nến thuộc OR.
Opening Range Low = Low thấp nhất của các nến thuộc OR.
Sau khi kết thúc khoảng thời gian Opening Range, bot khóa hai mức giá này.
Các mức OR High và OR Low trở thành tham chiếu cho tín hiệu Breakout.
1.2. OR Width Validation
CNPS 43 không giao dịch mọi Opening Range.
Chiến lược sử dụng bộ lọc độ rộng OR để loại những vùng dao động có biên độ quá lớn so với giá thị trường.
Theo mặc định:
Maximum OR Width = 0,50%.
Công thức:
OR Width % = (OR High − OR Low) / Close hiện tại × 100.
Nếu OR Width vượt 0,50%, chiến lược không cho phép Entry tại cây nến đang xét.
Điểm cần lưu ý là mẫu số sử dụng Close hiện tại. Vì vậy, tỷ lệ OR Width có thể thay đổi trong phiên dù OR High và OR Low đã được khóa.
1.3. Opening Range Breakout
Sau khi OR được khóa và xác nhận hợp lệ, CNPS 43 tìm kiếm tín hiệu giá đóng cửa vượt ra ngoài vùng mở cửa.
Với Long:
Close > Opening Range High.
Với Short:
Close < Opening Range Low.
Chiến lược yêu cầu nến đã đóng cửa xác nhận, đồng thời đáp ứng điều kiện thời gian, trạng thái vị thế và giới hạn giao dịch theo hướng.
Một điểm quan trọng là bot sử dụng trạng thái giá đóng cửa nằm ngoài OR, không bắt buộc một sự kiện Crossover/Crossunder mới.
1.4. Smart Trailing Stop
Sau khi vị thế được mở, CNPS 43 sử dụng hệ thống Stop Loss động thay vì Take Profit cố định.
Smart Trailing gồm ba yếu tố:
Initial Stop: Xác định khoảng rủi ro ban đầu.
Step-Down ATR Trail: Thay đổi khoảng cách Trailing theo mức Maximum Profit R.
Structural Swing Trail: Kết hợp High/Low của 5 nến gần nhất để lựa chọn mức Stop bảo vệ.
Ngoài ra, bot có thể đóng vị thế sớm khi xuất hiện một cây nến đảo chiều đủ lớn.
1.5. Thông số mặc định
| Nhóm | Thông số | Mặc định |
|---|---|---|
| Opening Range | OR Window | 09:00–09:15 |
| Opening Range | Maximum Width | 0,50% |
| ATR Risk | ATR Length | 14 |
| ATR Risk | Initial Stop Multiplier | 1,5 |
| Smart Trail | Dưới 1R | 3 ATR |
| Smart Trail | Từ 1R đến dưới 2R | 2 ATR |
| Smart Trail | Từ 2R trở lên | 1 ATR |
| Structural Trail | Swing Lookback | 5 nến |
| Reversal Exit | Candle Body Multiplier | 1,0 ATR |
| Trade | Direction | Both |
| Trade | Position Size | 3 hợp đồng |
| Trade | Long mỗi ngày | Tối đa 1 |
| Trade | Short mỗi ngày | Tối đa 1 |
| Session | Last Entry | 14:30 |
| Session | Force Close | 14:45 |
| Display | Show Opening Range | Bật |
| Display | Show Active Stop | Bật |
| Display | Show Entry Signals | Tắt |
| Display | Show Diagnostics | Tắt |
Source Code CNPS 43: CNPS43
2. Những khái niệm kỹ thuật được sử dụng trong CNPS 43
2.1. Opening Range Breakout là gì?
Opening Range Breakout, viết tắt ORB, là phương pháp giao dịch dựa trên việc giá thoát ra khỏi vùng dao động được hình thành trong một khoảng thời gian đầu phiên.
Ví dụ, trong 15 phút đầu tiên:
- Giá cao nhất đạt 1.910.
- Giá thấp nhất đạt 1.900.
Khi đó:
OR High = 1.910.
OR Low = 1.900.
Sau khi vùng giá được hoàn tất, nhà giao dịch có thể theo dõi khả năng giá vượt lên trên OR High hoặc giảm xuống dưới OR Low.
Tuy nhiên, Breakout chỉ phản ánh sự thay đổi vị trí giá so với vùng mở cửa, không đảm bảo xu hướng tiếp diễn.
2.2. Cách CNPS 43 xây dựng Opening Range
CNPS 43 sử dụng Input Session:
0900-0915
Chiến lược kiểm tra các cây nến thuộc khoảng thời gian này theo múi giờ:
Asia/Ho_Chi_Minh
Trong thời gian Opening Range, bot liên tục cập nhật High và Low.
Ví dụ trên biểu đồ M5:
| Nến | High | Low |
|---|---|---|
| 09:00–09:05 | 1.905 | 1.900 |
| 09:05–09:10 | 1.908 | 1.902 |
| 09:10–09:15 | 1.910 | 1.903 |
Kết quả:
Opening Range High = 1.910.
Opening Range Low = 1.900.
Sau khi sang cây nến nằm ngoài OR Window, bot khóa các giá trị đã thu thập.
Từ thời điểm đó, OR High và OR Low không tiếp tục cập nhật theo giá mới trong cùng ngày.
2.3. Opening Range Width
Độ rộng Opening Range được xác định:
OR Width = OR High − OR Low.
Tuy nhiên, CNPS 43 không so sánh trực tiếp OR Width với một số điểm cố định.
Bot chuyển độ rộng sang phần trăm so với Close hiện tại.
Công thức:
OR Width % = OR Width / Close × 100.
Ví dụ:
- OR High = 1.910.
- OR Low = 1.902.
- Close = 1.915.
OR Width:
1.910 − 1.902 = 8 điểm.
OR Width %:
8 / 1.915 × 100 ≈ 0,42%.
Vì 0,42% thấp hơn 0,50%, vùng OR đạt điều kiện về độ rộng tại thời điểm xét.
Nếu OR Width % lớn hơn 0,50%, bot không tạo Entry.
2.4. OR Width không được cố định tại thời điểm khóa
Đây là một điểm quan trọng trong mã nguồn.
OR High và OR Low được khóa sau khi kết thúc OR Window.
Tuy nhiên, công thức OR Width % tiếp tục sử dụng Close của cây nến hiện tại.
Ví dụ:
OR Width cố định = 9 điểm.
Nếu Close = 1.900:
OR Width % ≈ 0,474%.
Nếu Close giảm còn 1.780:
OR Width % ≈ 0,506%.
Trong trường hợp đó, trạng thái OR Valid có thể thay đổi từ hợp lệ sang không hợp lệ.
Vì vậy, không nên hiểu rằng một Opening Range đã đạt bộ lọc Width tại 09:15 sẽ chắc chắn hợp lệ trong toàn bộ thời gian giao dịch còn lại.
2.5. ATR14 – Average True Range
Average True Range là chỉ báo đo mức độ biến động giá.
CNPS 43 sử dụng:
ATR Length = 14.
ATR tham gia vào ba cơ chế:
- Xác định khoảng Initial Stop tối thiểu.
- Tính Smart ATR Trailing Stop.
- Đánh giá độ lớn của Reversal Candle.
Đây là điểm khác biệt so với những bot chỉ sử dụng ATR để xác định Stop Loss ban đầu.
Trong CNPS 43, ATR còn ảnh hưởng trực tiếp đến cách vị thế được bảo vệ sau khi giá có lợi nhuận.
2.6. Initial Risk
CNPS 43 kết hợp khoảng cách tới biên OR đối diện với khoảng Stop tối thiểu dựa trên ATR.
Với Long:
OR Risk = Close tín hiệu − OR Low.
Với Short:
OR Risk = OR High − Close tín hiệu.
Khoảng ATR tối thiểu:
ATR Stop Distance = ATR14 × 1,5.
Sau đó:
Initial Risk = Max(OR Risk, ATR Stop Distance).
Ví dụ:
- Close Long = 1.910.
- OR Low = 1.900.
- ATR14 = 5.
OR Risk:
1.910 − 1.900 = 10 điểm.
ATR Stop:
5 × 1,5 = 7,5 điểm.
Initial Risk:
Max(10; 7,5) = 10 điểm.
Nếu các điều kiện Entry đạt, Stop Loss ban đầu được đặt cách Close tín hiệu 10 điểm.
2.7. R – Đơn vị rủi ro
Trong hệ thống CNPS 43, R là đơn vị dùng để đo mức giá đã di chuyển thuận lợi so với khoảng Initial Risk.
Ví dụ:
- Giá tham chiếu Long = 1.900.
- Initial Risk = 10 điểm.
Khi giá đạt 1.910:
Mức thuận lợi = 1R.
Khi giá đạt 1.920:
Mức thuận lợi = 2R.
Tuy nhiên, CNPS 43 tính R từ sourceEntryPrice và sourceInitialRisk được lưu ở nến tín hiệu.
Những giá trị này không nhất thiết trùng với giá khớp và rủi ro thực tế.
2.8. Maximum Profit R
CNPS 43 không chỉ tính mức R tại một thời điểm rồi quên trạng thái trước đó.
Bot lưu giá trị Maximum Profit R lớn nhất đã quan sát khi vị thế đang mở.
Với Long:
Current Profit R = (High hiện tại − Source Entry Price) / Initial Risk.
Với Short:
Current Profit R = (Source Entry Price − Low hiện tại) / Initial Risk.
Sau đó:
Maximum Profit R = Max(Maximum Profit R trước đó, Current Profit R).
Ví dụ:
- Một lệnh Long từng đạt 2,2R.
- Sau đó giá điều chỉnh và chỉ còn thuận lợi 1,4R theo High của nến mới.
Maximum Profit R vẫn giữ tối thiểu 2,2R.
Điều này có nghĩa hệ thống không quay trở lại dùng ATR Multiplier 2 hoặc 3 chỉ vì thị trường điều chỉnh.
2.9. Step-Down ATR Trailing
Đây là cơ chế Trailing đặc trưng của CNPS 43.
| Maximum Profit R | ATR Multiplier |
|---|---|
| Dưới 1R | 3,0 |
| Từ 1R đến dưới 2R | 2,0 |
| Từ 2R trở lên | 1,0 |
Khi Maximum Profit R chưa đạt 1R, bot sử dụng khoảng Trailing ATR rộng nhất.
Khi giá đã đạt tối thiểu 1R, khoảng cách ATR được thu hẹp.
Khi đạt tối thiểu 2R, khoảng ATR tiếp tục thu hẹp về 1.
Điểm quan trọng là các ngưỡng 1R và 2R chỉ quyết định ATR Multiplier.
Chúng không tự động đặt một Take Profit tại 1R hoặc 2R.
2.10. Structural Swing Trail
Ngoài ATR Trailing, CNPS 43 sử dụng High/Low gần nhất.
Mặc định:
Structural Swing Lookback = 5.
Với Long:
Structural Stop = Lowest Low(5).
Với Short:
Structural Stop = Highest High(5).
Một điểm cần phân biệt là bot không sử dụng ta.pivotlow() hoặc ta.pivothigh() để xác nhận Swing theo nhiều nến bên phải.
Các mức này được tính trực tiếp từ High/Low trong cửa sổ Lookback, bao gồm cây nến hiện tại.
Do đó, Structural Swing Trail là mức cực trị gần nhất theo chu kỳ quan sát, không phải Pivot đã xác nhận theo mô hình Swing truyền thống.
2.11. Smart Trail kết hợp ATR và Structural Swing
Với Long:
ATR Stop = High hiện tại − ATR × Multiplier.
Structural Stop = Lowest Low(5).
Bot chọn:
Candidate Stop = Max(ATR Stop, Structural Stop).
Sau đó:
Active Stop = Max(Active Stop trước đó, Candidate Stop).
Với Short:
ATR Stop = Low hiện tại + ATR × Multiplier.
Structural Stop = Highest High(5).
Bot chọn:
Candidate Stop = Min(ATR Stop, Structural Stop).
Sau đó:
Active Stop = Min(Active Stop trước đó, Candidate Stop).
Điều này tạo ra nguyên tắc:
Long Stop chỉ được nâng lên, không hạ xuống.
Short Stop chỉ được hạ xuống, không nâng lên.
2.12. Reversal Candle
CNPS 43 còn hỗ trợ đóng vị thế khi xuất hiện một cây nến ngược hướng có thân lớn.
Công thức:
Candle Body = |Close − Open|.
Theo mặc định:
Reversal Threshold = 1,0 ATR14.
Với Long, bot tìm một cây nến giảm có:
Close < Open.
Candle Body > ATR14 × 1,0.
Với Short, bot tìm một cây nến tăng có:
Close > Open.
Candle Body > ATR14 × 1,0.
Đây là điều kiện dựa trên độ lớn thân nến, không phải tổng biên độ High–Low.
3. Nguyên lý hoạt động của CNPS 43 ORB Smart Trail
Bước 1: Xác định ngày giao dịch
Bot sử dụng thời gian theo múi giờ cấu hình để xác định ngày giao dịch mới.
Khi sang ngày mới, chiến lược đặt lại:
- Opening Range High.
- Opening Range Low.
- Opening Range Locked.
- Long Taken Today.
- Short Taken Today.
Điều này giúp vùng OR và bộ đếm giao dịch được xây dựng riêng cho từng ngày.
Bước 2: Xây dựng Opening Range
Trong khoảng 09:00–09:15, bot ghi nhận High cao nhất và Low thấp nhất.
Các mức này tiếp tục được cập nhật khi cây nến thuộc OR Window.
Bước 3: Khóa Opening Range
Khi xuất hiện cây nến nằm ngoài OR Window và đã có đủ giá trị High/Low, bot đặt:
Opening Range Locked = True.
Từ đó, giá trị OR High và OR Low được giữ nguyên trong phần còn lại của ngày.
Bước 4: Kiểm tra độ rộng OR
Bot tính OR Width % từ OR High, OR Low và Close hiện tại.
Điều kiện mặc định:
OR Width % ≤ 0,50%.
Nếu vượt giới hạn, Entry không được chấp thuận tại cây nến đó.
Bước 5: Phát hiện Breakout Long
Bot kiểm tra:
Close > Opening Range High.
Ngoài ra, điều kiện Long còn yêu cầu:
- Opening Range hợp lệ.
- Hướng Long được phép.
- Chưa có Long Entry được gửi trong ngày.
- Không có vị thế đang mở.
- Thời gian giao dịch hợp lệ.
- Nến đã xác nhận.
Nếu tất cả điều kiện đạt, Long Signal được tạo.
Bước 6: Phát hiện Breakout Short
Với Short:
Close < Opening Range Low.
Các điều kiện về Range, thời gian, vị thế và giới hạn giao dịch được kiểm tra tương ứng.
Nếu hợp lệ, Short Signal được tạo.
Bước 7: Xác định Initial Risk
Bot tính khoảng cách từ Close của nến tín hiệu đến biên OR đối diện.
Với Long, sử dụng OR Low.
Với Short, sử dụng OR High.
Sau đó so sánh với 1,5 ATR14.
Khoảng lớn hơn được lựa chọn làm Initial Risk.
Bước 8: Gửi Entry
Khi tín hiệu hợp lệ và Initial Risk lớn hơn Minimum Tick, bot gọi strategy.entry().
Theo mặc định:
Position Size = 3 hợp đồng.
Chiến lược lưu:
- Source Entry Price.
- Source Initial Risk.
- Active Stop Price.
- Active Entry Signal Bar.
- Maximum Profit R.
- Active Trail Multiplier.
Tại thời điểm này, sourceEntryPrice được lưu theo Close của nến tín hiệu.
Bước 9: Theo dõi Maximum Profit R
Khi vị thế thực sự được mở, bot sử dụng High hoặc Low của nến hiện tại để tính mức giá thuận lợi theo đơn vị R.
Với Long, bot sử dụng High.
Với Short, bot sử dụng Low.
Maximum Profit R được cập nhật nếu có giá trị mới cao hơn.
Bước 10: Lựa chọn ATR Multiplier
Bot kiểm tra Maximum Profit R.
Nếu dưới 1R:
Trail Multiplier = 3 ATR.
Nếu từ 1R đến dưới 2R:
Trail Multiplier = 2 ATR.
Nếu từ 2R trở lên:
Trail Multiplier = 1 ATR.
Đây là cơ chế thu hẹp khoảng ATR Trailing theo mức thuận lợi lớn nhất đã được ghi nhận.
Bước 11: Tính ATR Trailing Stop
Với Long:
ATR Trailing Stop = High − ATR × Multiplier.
Với Short:
ATR Trailing Stop = Low + ATR × Multiplier.
Điểm đáng chú ý là bot sử dụng High/Low của cây nến đang xét, không trực tiếp lấy Highest High hoặc Lowest Low kể từ Entry để tính mức ATR Stop.
Tuy nhiên, Active Stop có cơ chế không đi lùi, nên mức Stop mới vẫn được so sánh với mức đã bảo vệ trước đó.
Bước 12: Kết hợp Structural Stop
Bot tiếp tục tính:
Lowest Low(5) cho Long.
Highest High(5) cho Short.
Với Long, Candidate Stop là mức cao hơn giữa ATR Stop và Structural Stop.
Với Short, Candidate Stop là mức thấp hơn.
Bước 13: Cập nhật Active Stop
Với Long:
Active Stop = Max(Previous Active Stop, Candidate Stop).
Với Short:
Active Stop = Min(Previous Active Stop, Candidate Stop).
Sau đó, bot tạo hoặc cập nhật lệnh Stop bằng strategy.exit().
Không có lệnh Limit Take Profit cố định đi kèm.
Bước 14: Kiểm tra Reversal Candle
Nếu đang Long và xuất hiện nến giảm có thân lớn hơn 1 ATR, bot yêu cầu đóng Long.
Nếu đang Short và xuất hiện nến tăng có thân lớn hơn 1 ATR, bot yêu cầu đóng Short.
Điều kiện này yêu cầu nến đã xác nhận đóng cửa.
Bước 15: Force Close cuối phiên
Khi xuất hiện cây nến có thời điểm mở trước 14:45 và thời điểm đóng tại hoặc sau 14:45, bot kích hoạt Force Close.
Nếu đang có vị thế, chiến lược gọi:
strategy.close_all(immediately=true)
để yêu cầu đóng toàn bộ.
Bước 16: Dọn trạng thái sau khi đóng vị thế
Khi chiến lược phát hiện vị thế vừa đóng, bot đặt lại các biến:
- Source Entry Price.
- Source Initial Risk.
- Active Stop.
- Active Entry Signal Bar.
- Maximum Profit R.
- Active Trail Multiplier.
Điều này giúp dữ liệu của giao dịch trước không tiếp tục được sử dụng cho giao dịch mới.
4. Điều kiện vào lệnh Long và Short của CNPS 43
4.1. Long – Opening Range High Breakout
Một lệnh Long được xem xét khi giá đóng cửa phía trên OR High.
Điều kiện:
- Opening Range đã được khóa.
- OR High và OR Low hợp lệ.
- OR Width % ≤ 0,50%.
- Trade Direction cho phép Long.
- Close > OR High.
- Long Taken Today = False.
- Chiến lược đang Flat.
- Thời điểm mở nến trước Last Entry 14:30.
- Thời điểm đóng nến trước Force Close 14:45.
- Nến đã xác nhận đóng cửa.
- ATR14 có dữ liệu.
- Initial Risk > Minimum Tick.
Nếu toàn bộ điều kiện hợp lệ, bot có thể gửi Long Entry.
4.2. Ví dụ Long minh họa
Giả sử trong khoảng 09:00–09:15:
- OR High = 1.900.
- OR Low = 1.892.
Sau khi OR được khóa, thị trường tăng và đóng cửa tại:
Close = 1.903.
ATR14:
5 điểm.
OR Width:
1.900 − 1.892 = 8 điểm.
OR Width %:
8 / 1.903 × 100 ≈ 0,42%.
Vùng OR hợp lệ với giới hạn 0,50%.
Breakout:
1.903 > 1.900.
Long Signal hợp lệ về mặt giá.
Initial OR Risk:
1.903 − 1.892 = 11 điểm.
Minimum ATR Stop:
5 × 1,5 = 7,5 điểm.
Initial Risk:
Max(11; 7,5) = 11 điểm.
Source Entry Price:
1.903.
Initial Stop tham chiếu:
1.903 − 11 = 1.892.
Nếu chiến lược gửi Entry và các điều kiện khác đều hợp lệ, vị thế được quản trị bằng Smart Trailing.
Lưu ý, giá khớp thực tế có thể khác 1.903 do cơ chế thực thi ở nến tiếp theo.
4.3. Short – Opening Range Low Breakout
Với Short, bot tìm kiếm giá đóng cửa dưới OR Low.
Điều kiện:
- OR đã khóa.
- OR Width hợp lệ.
- Trade Direction cho phép Short.
- Close < OR Low.
- Short Taken Today = False.
- Đang Flat.
- Thời gian Entry hợp lệ.
- Nến đóng trước Force Close.
- Nến đã xác nhận.
- ATR và Initial Risk hợp lệ.
4.4. Ví dụ Short minh họa
Giả sử:
- OR High = 1.908.
- OR Low = 1.900.
- Close tín hiệu = 1.898.
- ATR14 = 4.
OR Width:
8 điểm.
OR Width %:
8 / 1.898 × 100 ≈ 0,42%.
Short Breakout:
1.898 < 1.900.
Initial OR Risk:
1.908 − 1.898 = 10 điểm.
Minimum ATR Stop:
4 × 1,5 = 6 điểm.
Initial Risk:
Max(10; 6) = 10 điểm.
Initial Stop tham chiếu:
1.898 + 10 = 1.908.
Nếu lệnh Short được chấp thuận, bot theo dõi giá giảm để tính Maximum Profit R và điều chỉnh Smart Stop.
4.5. Breakout không yêu cầu Crossover mới
Đây là một điểm kỹ thuật quan trọng.
CNPS 43 sử dụng:
close > openingRangeHigh
và:
close < openingRangeLow
Điều này khác với:
ta.crossover(close, openingRangeHigh)
hoặc:
ta.crossunder(close, openingRangeLow)
Ví dụ, OR High bằng 1.900.
Sau khi OR khóa:
- Nến A đóng 1.902.
- Nến B đóng 1.905.
- Nến C đóng 1.907.
Cả ba cây nến đều đáp ứng điều kiện Close > OR High.
Tuy nhiên, bot chỉ cho phép một Long Entry được gửi trong ngày.
Nếu Long đã được gửi tại nến A, những nến sau không thể tạo Long mới do longTakenToday đã bật.
4.6. Không có bộ lọc Volume Confirmation
CNPS 43 không sử dụng điều kiện bắt buộc về khối lượng khi giá phá OR.
Điều kiện Breakout dựa trên giá đóng cửa và các bộ lọc OR Width, thời gian, vị thế, hướng giao dịch.
Do đó, một cây nến có Volume thấp vẫn có thể tạo Entry nếu đáp ứng toàn bộ các điều kiện trong source.
Đây là điểm cần phân biệt với những hệ thống ORB yêu cầu Relative Volume hoặc Volume Spike.
4.7. Không có bộ lọc Retest sau Breakout
CNPS 43 không tạo trạng thái Armed Setup rồi chờ giá quay lại OR High/Low.
Khi Close nằm ngoài vùng OR và Entry Approval hợp lệ, chiến lược có thể gửi lệnh trực tiếp.
Vì vậy, bot không bắt buộc một nhịp kiểm tra lại biên OR trước khi giao dịch.
4.8. Tối đa một Entry mỗi hướng trong ngày
CNPS 43 sử dụng hai biến độc lập:
longTakenToday.
shortTakenToday.
Mỗi biến được đặt lại khi sang ngày giao dịch mới.
Khi gửi Long Entry:
longTakenToday = True.
Khi gửi Short Entry:
shortTakenToday = True.
Do đó, trong điều kiện cả hai hướng đều được cho phép, bot có thể gửi tối đa:
1 Long + 1 Short trong một ngày.
Tuy nhiên, không thể cùng lúc giữ cả hai vị thế vì Entry yêu cầu trạng thái Flat.
4.9. Có thể giao dịch hai hướng trong cùng ngày
Ví dụ:
- Buổi sáng, thị trường phá OR High.
- Bot mở Long.
- Long bị đóng bởi Smart Stop.
- Buổi chiều, thị trường giảm mạnh và đóng cửa dưới OR Low.
Nếu Short chưa được sử dụng trong ngày và các điều kiện khác hợp lệ, chiến lược vẫn có thể gửi Short Entry.
Tuy nhiên, một Long thứ hai sẽ không được chấp thuận vì Long Taken Today đã bật.
4.10. Không có bộ lọc Cooldown sau Exit
Khác với nhiều chiến lược Pullback trước đó, CNPS 43 không có tham số Cooldown After Exit.
Về mặt điều kiện Entry, bot chủ yếu dựa trên trạng thái Flat và giới hạn mỗi hướng một lần/ngày.
Do đó, sau khi vị thế Long đã đóng, tín hiệu Short có thể được xét khi thỏa điều kiện mà không cần chờ thêm một số nến Cooldown cố định.
5. CNPS 43 quản trị rủi ro và Smart Trailing Stop như thế nào?
5.1. Initial Stop Loss
CNPS 43 xác định Initial Risk trước khi gửi Entry.
Với Long:
Initial Risk = Max(Close − OR Low, ATR × 1,5).
Initial Stop = Close − Initial Risk.
Với Short:
Initial Risk = Max(OR High − Close, ATR × 1,5).
Initial Stop = Close + Initial Risk.
Như vậy, Initial Stop được xác định từ giá đóng cửa của nến tín hiệu, không phải trực tiếp từ giá khớp trung bình sau khi lệnh mở.
5.2. Initial Stop ưu tiên khoảng rộng hơn
Ví dụ:
- Long Close = 1.900.
- OR Low = 1.892.
- ATR = 8.
Khoảng OR Risk:
8 điểm.
Khoảng ATR Stop:
8 × 1,5 = 12 điểm.
Initial Risk:
12 điểm.
Initial Stop:
1.900 − 12 = 1.888.
Dù OR Low ở 1.892, bot vẫn sử dụng Stop 1.888 vì khoảng ATR tối thiểu lớn hơn.
Điều này giúp tránh việc Initial Stop quá gần giá tham chiếu trong những giai đoạn ATR lớn.
Tuy nhiên, Stop rộng hơn đồng nghĩa khoảng thua lỗ tiềm năng theo điểm cũng lớn hơn nếu khối lượng hợp đồng không được điều chỉnh.
5.3. Smart Trail giai đoạn dưới 1R
Trong giai đoạn Maximum Profit R chưa đạt 1:
ATR Multiplier = 3,0.
Với Long:
ATR Trail = High − 3 × ATR.
Với Short:
ATR Trail = Low + 3 × ATR.
Ví dụ đang Long:
- High hiện tại = 1.910.
- ATR = 5.
ATR Trailing Candidate:
1.910 − 15 = 1.895.
Nếu Structural Swing Low 5 nến bằng 1.898:
Candidate Stop = Max(1.895; 1.898) = 1.898.
Bot tiếp tục so sánh với Active Stop trước đó và chỉ nâng Stop nếu mức mới cao hơn.
5.4. Smart Trail giai đoạn 1R–2R
Khi Maximum Profit R đạt ít nhất 1 nhưng chưa đạt 2:
ATR Multiplier = 2,0.
Với Long:
ATR Trail = High − 2 × ATR.
Với Short:
ATR Trail = Low + 2 × ATR.
Ví dụ:
- Source Entry Long = 1.900.
- Initial Risk = 10 điểm.
- High = 1.915.
- ATR = 5.
Profit R:
(1.915 − 1.900) / 10 = 1,5R.
Bot sử dụng:
ATR Multiplier = 2.
ATR Trail:
1.915 − 2 × 5 = 1.905.
Nếu Structural Swing Low là 1.901:
Candidate Stop = 1.905.
Nếu Active Stop trước đó đang thấp hơn 1.905, bot nâng Stop lên 1.905.
5.5. Smart Trail giai đoạn từ 2R trở lên
Khi Maximum Profit R đạt ít nhất 2:
ATR Multiplier = 1,0.
Với Long:
ATR Trail = High − ATR.
Với Short:
ATR Trail = Low + ATR.
Ví dụ:
- Source Entry Long = 1.900.
- Initial Risk = 10 điểm.
- High = 1.925.
- ATR = 5.
Maximum Profit:
2,5R.
ATR Multiplier được giảm còn 1.
ATR Stop:
1.925 − 5 = 1.920.
Nếu Structural Swing Low là 1.915:
Candidate Stop = 1.920.
Bot có thể nâng Active Stop lên 1.920 nếu mức Stop hiện tại thấp hơn.
Đây là cơ chế khóa dần một phần mức biến động thuận lợi khi vị thế đã đạt mức R cao hơn.
5.6. Maximum Profit R không giảm
Giả sử Long từng đạt:
Maximum Profit R = 2,3R.
Sau đó, thị trường điều chỉnh về vùng tương ứng 1,5R.
Bot vẫn sử dụng ATR Multiplier 1,0.
Nó không tự động quay về 2 ATR.
Điều này giúp hệ thống duy trì mức bảo vệ chặt hơn sau khi vị thế từng đạt lợi nhuận thuận lợi cao.
5.7. Stop Loss chỉ dịch chuyển theo hướng bảo vệ
Với Long, bot sử dụng:
Active Stop = Max(Active Stop, New Stop).
Giả sử:
- Active Stop hiện tại = 1.910.
- Candidate Stop mới = 1.908.
Active Stop vẫn bằng 1.910.
Nếu Candidate Stop tăng lên 1.914:
Active Stop được nâng lên 1.914.
Với Short, nguyên tắc tương ứng sử dụng math.min().
Do đó, Active Stop không được nới rộng trở lại trong một vị thế đang mở.
5.8. Structural Stop có thể chi phối ATR Trail
Giả sử đang Long:
- ATR Candidate = 1.905.
- Structural Swing Low = 1.909.
Bot chọn:
Candidate Stop = 1.909.
Trong trường hợp này, Structural Trail quyết định mức Stop thay vì ATR Trail.
Ngược lại:
- ATR Candidate = 1.912.
- Structural Swing Low = 1.908.
Bot chọn:
Candidate Stop = 1.912.
Như vậy, Smart Trail sử dụng mức bảo vệ chặt hơn theo công thức của hai phương pháp.
Điều này có thể giúp giữ lại lợi nhuận đã hình thành, nhưng cũng có thể khiến vị thế đóng sớm khi thị trường xuất hiện những nhịp điều chỉnh ngắn.
5.9. Không có Take Profit cố định
CNPS 43 không sử dụng mục tiêu TP10, TP15, TP20 hoặc TP theo R cố định.
Trong phần Position Management, lệnh strategy.exit() chỉ được truyền mức Stop.
Vì vậy, bot không tự động đóng Long khi đạt 2R hay 3R.
Một vị thế có thể tiếp tục được giữ sau khi đạt 3R nếu chưa chạm Smart Stop, chưa xuất hiện Reversal Exit và chưa đến Force Close.
Tuy nhiên, mức lợi nhuận sau cùng không cố định vì phụ thuộc vào đường Trailing và những điều kiện thoát khác.
5.10. Reversal Candle Exit
Ngoài Trailing Stop, CNPS 43 có cơ chế đóng vị thế bằng nến đảo chiều mạnh.
Với Long:
- Close < Open.
- |Close − Open| > ATR × 1,0.
- Nến đã đóng cửa.
Với Short:
- Close > Open.
- |Close − Open| > ATR × 1,0.
- Nến đã đóng cửa.
Ví dụ đang Long:
- Open = 1.920.
- Close = 1.912.
- ATR14 = 6.
Candle Body:
8 điểm.
Vì 8 > 6 và nến giảm, điều kiện Reversal Long Exit hợp lệ.
Bot yêu cầu đóng Long bằng strategy.close().
5.11. Reversal Exit không bắt buộc giá phá OR
Một điểm quan trọng là Reversal Candle không sử dụng lại OR High/Low để xác định điều kiện thoát.
Khi đang Long, chỉ cần xuất hiện nến giảm có thân lớn hơn ATR theo hệ số cấu hình là có thể phát sinh Reversal Exit.
Vì vậy, bot có thể đóng Long khi giá vẫn cao hơn OR High.
Tương tự, Short có thể đóng dù giá vẫn nằm dưới OR Low.
5.12. Reversal Exit có thể hoạt động trước khi đạt 1R
CNPS 43 không yêu cầu Maximum Profit R phải đạt 1 hoặc 2 mới được sử dụng Reversal Exit.
Một cây nến ngược hướng đủ lớn có thể khiến bot đóng vị thế ngay cả khi giao dịch chưa từng đạt lợi nhuận đáng kể.
Điều này giúp phân biệt:
Smart Trail: Quản trị Stop theo diễn biến giá và các ngưỡng R.
Reversal Exit: Phản ứng với một cây nến ngược hướng có thân lớn.
Hai cơ chế hoạt động song song.
5.13. Force Close cuối phiên
Theo mặc định:
Force Close = 14:45.
Khi cây nến đi qua mốc Force Close, bot sử dụng:
strategy.close_all(immediately=true)
để yêu cầu đóng toàn bộ vị thế.
Do đó, một giao dịch đang đạt lợi nhuận nhưng chưa chạm Smart Stop vẫn có thể bị đóng cuối phiên.
5.14. Tổng hợp các cơ chế thoát lệnh
| Phương pháp | Mặc định | Vai trò |
|---|---|---|
| Initial Stop | OR Risk hoặc 1,5 ATR | Xác định rủi ro ban đầu |
| ATR Trail dưới 1R | 3 ATR | Trailing giai đoạn đầu |
| ATR Trail 1R–2R | 2 ATR | Thu hẹp khoảng Trail |
| ATR Trail từ 2R | 1 ATR | Bảo vệ chặt hơn |
| Structural Trail | High/Low 5 nến | Kết hợp mức cấu trúc |
| Reversal Exit | Body > 1 ATR | Thoát khi nến ngược mạnh |
| Fixed Take Profit | Không có | Không đặt mục tiêu cố định |
| Dedicated Break Even | Không có | Không dùng công tắc BE riêng |
| Time Exit theo số nến | Không có | Không giới hạn theo Bars In Trade |
| Force Close | 14:45 | Đóng cuối phiên |
6. Hướng dẫn cài đặt và sử dụng CNPS 43 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 43 được xây dựng theo khung thời gian biểu đồ hiện tại.
Vì Opening Range mặc định kéo dài 15 phút, người dùng nên kiểm tra những khung thời gian có ranh giới nến phù hợp với cửa sổ 09:00–09:15.
Ví dụ, M1, M3 và M5 cho phép quan sát vùng mở cửa với độ phân giải khác nhau.
Bước 2: Thêm mã nguồn vào Pine Editor
- Mở TradingView.
- Chọn Pine Editor.
- Tạo một Strategy mới.
- Dán mã nguồn CNPS43 ORB SMART TRAIL.
- Lưu mã nguồn.
- Chọn Add to chart.
- Kiểm tra OR High và OR Low.
- Mở Strategy Tester.
Tên chiến lược:
CNPS43 ORB SMART TRAIL
Short Title:
CNPS43 ORB
Phiên bản:
//@version=6
Bước 3: Cấu hình Opening Range
| Thông số | Mặc định |
|---|---|
| Opening Range Window | 09:00–09:15 |
| Maximum OR Width | 0,50% |
Hai tham số này quyết định vùng giá mở cửa và giới hạn độ rộng của vùng.
Nếu tăng Maximum OR Width, bot có thể chấp nhận nhiều phiên có biên độ mở cửa rộng hơn.
Nếu giảm giới hạn, chiến lược sẽ loại nhiều phiên hơn.
Tuy nhiên, việc mở rộng hoặc thu hẹp ngưỡng không đảm bảo cải thiện kết quả giao dịch.
Bước 4: Cấu hình ATR Risk
| Thông số | Mặc định |
|---|---|
| ATR Length | 14 |
| Initial Stop ATR Multiplier | 1,5 |
ATR Length ảnh hưởng đến cả Initial Stop, Smart Trailing và Reversal Candle.
Vì vậy, thay đổi ATR Length đồng thời ảnh hưởng tới nhiều thành phần quan trọng của chiến lược.
Initial Stop ATR Multiplier quyết định khoảng ATR tối thiểu được sử dụng khi tính Initial Risk.
Bước 5: Cấu hình Smart Trailing
| Thông số | Mặc định |
|---|---|
| Trail ATR 0R–1R | 3,0 |
| Trail ATR 1R–2R | 2,0 |
| Trail ATR trên 2R | 1,0 |
| Structural Swing Lookback | 5 |
Đây là nhóm thông số đặc trưng nhất của CNPS 43.
Nếu tăng ATR Multiplier, khoảng ATR Stop có xu hướng rộng hơn.
Nếu giảm, ATR Stop có xu hướng bám sát giá hơn.
Tuy nhiên, Stop thực tế còn phụ thuộc vào Structural Swing Trail.
Vì bot lựa chọn mức chặt hơn theo công thức, thay đổi riêng ATR Multiplier không đảm bảo Active Stop sẽ luôn thay đổi theo cùng tỷ lệ.
Bước 6: Cấu hình Reversal Exit
| Thông số | Mặc định |
|---|---|
| Reversal Candle Body ATR Multiplier | 1,0 |
Nếu giảm hệ số, những cây nến ngược hướng có thân nhỏ hơn có thể đủ điều kiện Reversal Exit.
Nếu tăng hệ số, bot yêu cầu nến ngược hướng có thân lớn hơn.
Lưu ý rằng source không có công tắc riêng để bật hoặc tắt hoàn toàn Reversal Exit.
Bước 7: Cấu hình Trade Control
| Thông số | Mặc định |
|---|---|
| Trade Direction | Both |
| Position Size | 3 hợp đồng |
Trade Direction hỗ trợ:
Long: Chỉ mở Long.
Short: Chỉ mở Short.
Both: Cho phép hai hướng.
Theo mặc định, Position Size có thể tùy chỉnh từ 1 đến 20 hợp đồng.
Tuy nhiên, bot không tự động tính số hợp đồng dựa trên Initial Risk.
Bước 8: Cấu hình Session
| Thông số | Mặc định |
|---|---|
| Timezone | Asia/Ho_Chi_Minh |
| Last Entry | 14:30 |
| Force Close | 14:45 |
Điều kiện Entry yêu cầu thời gian mở nến trước 14:30.
Ngoài ra, thời gian đóng nến phải trước 14:45.
Mã nguồn không có một cửa sổ Entry Start độc lập.
Thời điểm sớm nhất để giao dịch phụ thuộc vào việc Opening Range đã hoàn tất và được khóa.
Bước 9: Hiển thị trên biểu đồ
CNPS 43 hỗ trợ những thành phần chính:
| Thành phần | Hiển thị |
|---|---|
| Opening Range High | Đường xanh dương |
| Opening Range Low | Đường xanh dương |
| Long Signal | Tam giác xanh, ORB L |
| Short Signal | Tam giác đỏ, ORB S |
| Active Smart Stop | Đường đỏ |
Theo mặc định:
- Show Opening Range: Bật.
- Show Active Smart Stop: Bật.
- Show Entry Signals: Tắt.
- Show Diagnostics: Tắt.
Nếu muốn quan sát tín hiệu Breakout, người dùng cần bật Show Entry Signals.
CNPS 43 không hiển thị Take Profit Line cố định vì chiến lược không sử dụng TP cố định.
Bước 10: Sử dụng Diagnostics
Khi bật Diagnostics, CNPS 43 hiển thị:
- Khung thời gian.
- OR State.
- OR High.
- OR Low.
- OR Width %.
- ATR.
- Initial Risk.
- Maximum Profit R.
- Active ATR Trail Multiplier.
- Active Stop.
- Long Used.
- Short Used.
- Long Signals.
- Short Signals.
- Reversal Exit Counts.
- Position.
Ba trạng thái Opening Range gồm:
BUILDING: OR chưa được khóa.
VALID: OR đã khóa và đáp ứng giới hạn Width hiện tại.
TOO WIDE: OR đã khóa nhưng vượt Maximum Width tại thời điểm xét.
Bảng còn cho phép quan sát mức ATR Multiplier đang được sử dụng.
Ví dụ:
- Maximum Profit R = 0,8.
- Trail ATR Multiplier = 3,0.
Hoặc:
- Maximum Profit R = 1,5.
- Trail ATR Multiplier = 2,0.
Hoặc:
- Maximum Profit R = 2,3.
- Trail ATR Multiplier = 1,0.
Nhờ đó, người dùng có thể theo dõi quá trình chuyển cấp độ của Smart Trail.
Bước 11: Kiểm thử trong Strategy Tester
CNPS 43 được xây dựng dưới dạng TradingView Strategy nên có thể đánh giá giao dịch mô phỏng trong Strategy Tester.
Những chỉ số quan trọng gồm:
- Net Profit.
- Maximum Drawdown.
- Profit Factor.
- Percent Profitable.
- Total Trades.
- Average Trade.
- Average Winning Trade.
- Average Losing Trade.
Những thử nghiệm nên thực hiện:
Thử nghiệm 1: OR 09:00–09:15 với Width 0,50%.
Thử nghiệm 2: Thay đổi Maximum OR Width.
Thử nghiệm 3: Initial Stop 1,5 ATR so với mức khác.
Thử nghiệm 4: Step-Down Trail 3/2/1 ATR.
Thử nghiệm 5: Thay đổi ATR Trail dưới 1R.
Thử nghiệm 6: Thay đổi ATR Trail từ 1R đến 2R.
Thử nghiệm 7: Thay đổi ATR Trail trên 2R.
Thử nghiệm 8: Structural Swing Lookback 5 so với 10 nến.
Thử nghiệm 9: Reversal Candle 1,0 ATR so với 1,5 ATR.
Thử nghiệm 10: Long Only so với Short Only.
Thử nghiệm 11: So sánh hiệu quả trên M1 và M5.
Thử nghiệm 12: Kiểm tra mức chênh lệch giữa Source Entry Price và giá khớp thực tế.
Theo mã nguồn:
- Initial Capital: 100.000.000 VNĐ.
- Khối lượng 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: Tắt.
- Calculate On Order Fills: Bật.
- Fill Orders On Standard OHLC: Bật.
- Margin Long/Short: 0.
Các thông số này phục vụ mô phỏng.
Chúng không phản ánh đầy đủ yêu cầu ký quỹ, thanh khoản hoặc điều kiện khớp lệnh thực tế trên 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 43 hỗ trợ cảnh báo thông qua Order Fill Events trên TradingView.
Để thiết lập:
- Mở biểu đồ có CNPS43 ORB SMART TRAIL.
- Chọn Create Alert.
- Trong Condition, chọn chiến lược CNPS43.
- Chọn cảnh báo từ Order Fills.
- Trong Message, sử dụng
{{strategy.order.alert_message}}. - Chọn phương thức nhận cảnh báo và lưu.
7.1. Cảnh báo Long Entry
Thông điệp:
ENTRY_LONG_CNPS43
Được sử dụng khi lệnh Long ORB khớp trong mô phỏng.
Long Signal yêu cầu giá đóng cửa phía trên OR High và các điều kiện Entry hợp lệ.
7.2. Cảnh báo Short Entry
Thông điệp:
ENTRY_SHORT_CNPS43
Được sử dụng khi lệnh Short ORB khớp trong mô phỏng.
Short Signal yêu cầu giá đóng cửa phía dưới OR Low cùng những điều kiện giao dịch hợp lệ.
7.3. Cảnh báo Smart Trailing Exit
| Thông điệp | Ý nghĩa |
|---|---|
| SMART_TRAIL_EXIT_LONG_CNPS43 | Long đóng theo Smart Stop |
| SMART_TRAIL_EXIT_SHORT_CNPS43 | Short đóng theo Smart Stop |
Hai thông điệp được gắn vào lệnh strategy.exit().
Điểm quan trọng là chúng không được phát riêng mỗi lần Active Stop được điều chỉnh.
Cảnh báo Order Fill chỉ xuất hiện khi lệnh Stop tương ứng khớp trong mô phỏng.
7.4. Cảnh báo Reversal Exit
| Thông điệp | Ý nghĩa |
|---|---|
| REVERSAL_EXIT_LONG_CNPS43 | Đóng Long khi có nến giảm mạnh |
| REVERSAL_EXIT_SHORT_CNPS43 | Đóng Short khi có nến tăng mạnh |
Những thông điệp này được sử dụng khi Reversal Exit tạo lệnh đóng và lệnh được thực thi.
Điều kiện mặc định yêu cầu thân nến lớn hơn 1 ATR.
7.5. Cảnh báo Force Close
Thông điệp:
SESSION_END_CNPS43
Đượ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 là 14:45.
7.6. Disable Stop/Trail Alerts
CNPS 43 hỗ trợ:
Disable Stop / Trail Alerts?
Mặc định:
False – Tắt.
Khi bật, bot vô hiệu hóa cảnh báo của các lệnh Stop được tạo bằng strategy.exit().
Tuy nhiên, điều kiện này không tự động vô hiệu hóa cảnh báo từ Reversal Exit hoặc Force Close.
Vì vậy, hệ thống nhận Webhook cần phân biệt các loại lệnh đóng vị thế.
7.7. Những lưu ý khi tích hợp Webhook
Các mã Alert của CNPS 43 giúp nhận diện:
- Entry Long.
- Entry Short.
- Smart Trail Exit Long.
- Smart Trail Exit Short.
- Reversal Exit Long.
- Reversal Exit Short.
- Session End.
Tuy nhiên, thông điệp mặc định chưa bao gồm đầy đủ:
- OR High.
- OR Low.
- OR Width %.
- Source Entry Price.
- Giá khớp thực tế.
- Initial Risk.
- Maximum Profit R.
- Active Trail Multiplier.
- Active Stop.
- Khối lượng khớp.
- Khung thời gian.
- Thời điểm giao dịch.
Nếu muốn tích hợp hệ thống cảnh báo hoặc giao dịch tự động, người dùng cần bổ sung các dữ liệu này qua TradingView Placeholder hoặc sửa đổi mã nguồn.
Đặc biệt, cần phân biệt sự kiện Smart Stop được tính lại và sự kiện lệnh Stop thực sự khớp.
Một Order Fill Alert trên TradingView cũng không đồng nghĩa lệnh thực tế đã khớp tại công ty chứng khoán.
Kết luận
CNPS 43 ORB SMART TRAIL là chiến lược giao dịch phái sinh kết hợp Opening Range Breakout và hệ thống Smart Trailing Stop nhằm tìm kiếm cơ hội khi giá thoát khỏi vùng dao động đầu phiên và quản trị vị thế theo diễn biến thị trường.
Điểm nổi bật của chiến lược là không đặt mục tiêu Take Profit cố định, thay vào đó sử dụng ATR Trailing Stop có khả năng thu hẹp khoảng cách bảo vệ theo mức Maximum Profit R.
Theo cấu hình mặc định, bot xây dựng Opening Range trong khoảng 09:00–09:15 và chỉ cho phép Entry khi độ rộng OR không vượt 0,50% giá tại thời điểm xét.
Long được kích hoạt khi Close nằm trên OR High.
Short được kích hoạt khi Close nằm dưới OR Low.
Initial Risk được xác định bằng khoảng lớn hơn giữa khoảng cách từ Close tín hiệu đến biên OR đối diện và 1,5 ATR14.
Sau khi vị thế được mở, hệ thống Smart Trailing thay đổi ATR Multiplier theo ba giai đoạn:
Dưới 1R: 3 ATR.
Từ 1R đến dưới 2R: 2 ATR.
Từ 2R trở lên: 1 ATR.
Đồng thời, bot kết hợp Structural Swing Lookback 5 nến để lựa chọn Stop Loss bảo vệ chặt hơn.
Ngoài hệ thống Trailing, chiến lược còn có Reversal Candle Exit khi xuất hiện cây nến ngược hướng với thân lớn hơn 1 ATR và Force Close cuối phiên 14:45.
CNPS 43 giới hạn tối đa một Long và một Short mỗi ngày, sử dụng khối lượng mặc định 3 hợp đồng.
Tuy nhiên, việc không đặt Take Profit cố định không đồng nghĩa chiến lược luôn nắm giữ được những xu hướng dài hoặc tối ưu hóa lợi nhuận.
Trong những phiên thị trường Sideway hoặc xuất hiện False Breakout, giá có thể phá Opening Range rồi nhanh chóng quay trở lại, khiến vị thế bị Stop Loss.
Ngược lại, khi thị trường hình thành xu hướng mạnh, Step-Down ATR Trail có thể giúp chiến lược duy trì vị thế cho đến khi biến động giá tạo điều kiện thoát.
Điều quan trọng là cần hiểu rõ cách Opening Range được xây dựng, bộ lọc OR Width, phương pháp tính Initial Risk, hệ thống Maximum Profit R và cơ chế kết hợp ATR Trail với Structural Swing Trail.
Đặc biệt, người dùng nên kiểm thử kỹ cách chiến lược xử lý lệnh sau khớp và tác động của việc sử dụng High/Low trong cùng một nến khi tính toán Trailing Stop.
Trước khi cân nhắc sử dụng thực tế, nên so sánh hiệu quả của CNPS 43 trên nhiều giai đoạn thị trường và nhiều cấu hình ATR, đồng thời đánh giá các chỉ số rủi ro 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 Opening Range Breakout, ATR Trailing Stop và các phương pháp quản trị vị thế 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.





