Chiến lược phá vỡ đỉnh cao liên tiếp
Tổng quan
Logic cốt lõi của chiến lược này là phát hiện xem giá đóng cửa của N cây nến liên tiếp có tăng liên tục hay không. Nếu có, thì mở vị thế mua; nếu không, thì đóng vị thế. Điều này giúp bắt kịp xu hướng tăng giá cổ phiếu và đạt lợi nhuận.
Nguyên lý chiến lược
Chỉ số cốt lõi của chiến lược là nCounter, nó so sánh giá đóng cửa và giá mở cửa của cây nến hiện tại để xác định giá có tăng hay không.
Cụ thể, nếu close[1] >= open[1], thì nCounter tăng thêm 1, biểu thị giá tăng; nếu close[1] < open[1], thì nCounter được đặt lại về 0. Như vậy có thể thống kê số lượng cây nến tăng liên tiếp.
Sau đó, so sánh nCounter với tham số nLength. Khi nCounter >= nLength, tín hiệu C1 = 1 được đưa ra; ngược lại C1 = 0. nLength ở đây là số lượng cây nến tăng liên tiếp mà chúng ta xác định cần để tạo tín hiệu.
Sau khi nhận được tín hiệu C1 = 1, nếu hiện tại không có vị thế nào, thì thực hiện mở vị thế mua; nếu đã có vị thế mua, thì tiếp tục nắm giữ.
Ngoài ra, chiến lược này còn thiết lập điều kiện cắt lỗ và chốt lời. Nếu giá thấp hơn giá vào lệnh một tỷ lệ nhất định, thì cắt lỗ và đóng vị thế; nếu cao hơn một tỷ lệ nhất định, thì chốt lời.
Phân tích ưu điểm
Đây là một chiến lược theo xu hướng khá điển hình, với những ưu điểm sau:
- Có thể nắm bắt cơ hội xu hướng tăng giá cổ phiếu, phù hợp sử dụng làm chiến lược mua
- Tín hiệu vào lệnh là N cây nến tăng liên tiếp, giúp lọc hiệu quả các phá vỡ giả, giảm giao dịch không cần thiết
- Thiết lập điều kiện cắt lỗ và chốt lời giúp hạn chế rủi ro giảm giá và khóa lợi nhuận
- Logic chiến lược đơn giản, dễ hiểu và dễ sửa đổi
- Có thể điều chỉnh tham số nLength để kiểm soát tần suất giao dịch
Phân tích rủi ro
Chiến lược này cũng tồn tại một số rủi ro, tập trung ở các khía cạnh sau:
- Nếu xu hướng tăng đảo chiều, không thể cắt lỗ kịp thời có thể dẫn đến thua lỗ lớn
- Tham số nLength quá lớn có thể bỏ lỡ cơ hội vào lệnh tốt
- Không xem xét môi trường thị trường chung, khi thị trường giảm điểm, nắm giữ vị thế mua dễ bị tổn thất
- Không điều chỉnh tham số theo đặc điểm của từng cổ phiếu, sử dụng tham số chung có thể không phù hợp với một số cổ phiếu
Để giảm thiểu các rủi ro này, chúng ta có thể thiết lập điều kiện cắt lỗ chặt chẽ hơn, tối ưu tham số nLength, thêm quy tắc đánh giá thị trường chung, hoặc kiểm tra tham số riêng cho từng cổ phiếu. Tất nhiên, bất kỳ chiến lược nào cũng khó tránh khỏi thua lỗ hoàn toàn, cần phù hợp với khẩu vị rủi ro của nhà giao dịch.
Hướng tối ưu
Xem xét các rủi ro trên, chúng ta có thể tiếp tục tối ưu chiến lược từ các khía cạnh sau:
- Thêm chức năng cắt lỗ di động hoặc trailing stop. Điều này có thể điều chỉnh vị trí cắt lỗ kịp thời theo biến động giá, giảm rủi ro thua lỗ
- Tối ưu tham số nLength. Có thể kiểm tra riêng cho từng loại cổ phiếu để tìm giá trị tham số phù hợp hơn với từng loại
- Tăng thêm đánh giá môi trường thị trường chung. Ví dụ tạm dừng giao dịch khi thị trường giảm điểm, tránh tổn thất thêm do giao dịch ngược chiều
- Thêm các yếu tố phụ trợ khác như khối lượng giao dịch. Yêu cầu khối lượng giao dịch tăng lên trong quá trình tăng giá để đảm bảo tính hiệu quả của sự phá vỡ
- Thiết lập kiểm soát drawdown. Ví dụ tỷ lệ thua lỗ tối đa cho phép, số lần thua lỗ liên tiếp tối đa, có thể tự động cắt lỗ kiểm soát tổng tổn thất
Kết luận
Chiến lược này bắt được xu hướng tăng bằng cách phát hiện N cây nến tăng liên tiếp, có thể theo dõi xu hướng hiệu quả. Ưu điểm là logic đơn giản, tham số linh hoạt, có thể lọc các phá vỡ giả. Tuy nhiên, cũng tồn tại rủi ro nhất định, cần thêm các module cắt lỗ, tối ưu tham số, đánh giá môi trường để cải thiện, giúp chiến lược toàn diện và ổn định hơn. Nhìn chung, chiến lược này cung cấp một mô hình nền tảng có giá trị cho giao dịch định lượng, thông qua việc hoàn thiện liên tục có thể trở thành một công cụ giao dịch mạnh mẽ.
/*backtest
start: 2023-01-01 00:00:00
end: 2023-12-07 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=4
////////////////////////////////////////////////////////////
// Copyright by HPotter v1.0 05/02/2020
// Evaluates for n number of consecutive higher closes. Returns a value - 1

