Chiến lược được đặt tên là
Khái niệm cốt lõi của chiến lược này là sử dụng cả chỉ số RSI và ZigZag để xác định xu hướng giá. Cụ thể, chỉ số RSI đánh giá liệu giá có bị mua quá mức hay bán quá mức không. Chỉ số ZigZag phát hiện liệu giá có tăng tỷ lệ phần trăm đáng kể hay không. Khi cả hai chỉ số cung cấp tín hiệu giao dịch đồng thời, chúng ta xác định rằng có sự đảo ngược xu hướng cho một vị trí đối thủ.
Đối với chỉ số RSI, chúng tôi đặt đường mua quá mức ở mức 75 và đường bán quá mức ở mức 25. Khi RSI tăng từ dưới 25 lên trên 25, nó được coi là đảo ngược từ bán quá mức sang tăng. Khi RSI giảm từ trên 75 xuống dưới 75, nó chỉ ra sự đảo ngược từ tăng sang bán quá mức.
Đối với chỉ số ZigZag, chúng tôi đặt ngưỡng tăng giá lên 1% trong thay đổi tỷ lệ phần trăm. Khi giá tăng hơn 1% trong độ mở rộng, đường ZigZag sẽ đưa ra tín hiệu. Kết hợp với phán đoán xu hướng, chúng tôi có thể xác định sự đảo ngược xu hướng.
Khi cả hai chỉ số đưa ra tín hiệu, nếu xu hướng trước đó tăng và bây giờ RSI đã mua quá mức trong khi ZigZag cho thấy giá tăng, chúng tôi xác định rằng giá đang tăng và có thể xem xét mua ngắn. Ngược lại, nếu xu hướng trước đó giảm và bây giờ RSI đã bán quá mức trong khi ZigZag cho thấy giá tăng, chúng tôi xác định rằng giá đang giảm và có thể xem xét mong muốn. Thông qua logic này, chúng tôi có thể theo xu hướng.
Lợi thế lớn nhất của chiến lược này là cải thiện chất lượng tín hiệu thông qua việc kết hợp hai chỉ số. Một chỉ số duy nhất có xu hướng cung cấp nhiều tín hiệu sai. Nhưng chiến lược này sử dụng RSI và ZigZag để xác minh, lọc ra nhiều tín hiệu giả và cải thiện tỷ lệ thắng.
Một điểm mạnh khác là điều chỉnh tham số linh hoạt. Các tham số RSI và ZigZag có thể được tùy chỉnh theo các điều kiện thị trường khác nhau để có kết quả tốt nhất. Điều này mang lại sự thích nghi lớn cho chiến lược.
Rủi ro chính là tín hiệu không chính xác từ các chỉ số. Mặc dù xác nhận chỉ số kép, vẫn có thể có sự thất bại trong biến động cao dẫn đến sai lầm giao dịch. Thiết lập tham số không phù hợp cũng ảnh hưởng đến hiệu suất chiến lược.
Để giảm rủi ro, chúng ta có thể rút ngắn thời gian giữ vị trí để dừng lỗ kịp thời. Tối ưu hóa tham số cũng rất quan trọng phục vụ các đặc điểm của thị trường. Sự can thiệp thủ công có thể cần thiết khi phải đối mặt với điều kiện thị trường bất thường.
Chiến lược có thể được cải thiện từ các khía cạnh sau:
Thêm nhiều chỉ số như KDJ và MACD để kết hợp đánh giá để lọc tín hiệu hơn nữa.
giới thiệu các thuật toán học máy để tối ưu hóa tham số tự động thích nghi với những thay đổi trên thị trường.
Xây dựng một cơ chế dừng lỗ thích nghi với bảo vệ năng động dựa trên biến động thị trường.
Tối ưu hóa kích thước vị trí dựa trên sức mạnh của xu hướng.
Thiết lập các chiến lược thay thế để chuyển đổi tự động trong các thị trường không phổ biến.
Tóm lại, đây là một chiến lược theo xu hướng điển hình. Ý tưởng cốt lõi là xác định sự đảo ngược xu hướng bằng cách sử dụng các chỉ số RSI và ZigZag kết hợp với nhau. Lợi thế nằm ở chất lượng tín hiệu được cải thiện thông qua lọc chỉ số kép. Rủi ro thất bại của chỉ số cần được xem xét đầy đủ, và chiến lược liên tục được cải thiện thông qua điều chỉnh tham số, tối ưu hóa stop loss, kích thước vị trí và vân vân. Nhìn chung, điều này cung cấp một giải pháp theo dõi xu hướng hiệu quả cho thị trường tiền điện tử.
/*backtest start: 2024-01-22 00:00:00 end: 2024-02-21 00:00:00 period: 1h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ // This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/ // © SoftKill21 //@version=4 strategy("Crypto ZigZag RSI strategy 15min",overlay=true) length =input(5, title="RSI Length") overSold = input(25) overBought= input(75) p =close vrsi = rsi(p, length) var bool long = na var bool short = na long :=crossover(vrsi,overSold) short := crossunder(vrsi,overBought) var float last_open_long = na var float last_open_short = na last_open_long := long ? close : nz(last_open_long[1]) last_open_short := short ? close : nz(last_open_short[1]) entry_value =last_open_long entry_value1=last_open_short // ZZPercent = input(1, title="Minimum % Change", type=input.float) r1Level=entry_value s1Level=entry_value1 trend = 0 trend := na(trend[1]) ? 1 : trend[1] LL = 0.0 LL := na(LL[1]) ? s1Level : LL[1] HH = 0.0 HH := na(HH[1]) ?r1Level : HH[1] Pi = ZZPercent * 0.01 zigzag = float(na) if trend > 0 if r1Level >= HH HH := r1Level HH else if s1Level < HH * (1 - Pi) zigzag :=r1Level[1] trend := -1 LL := s1Level LL else if s1Level <= LL LL := s1Level LL else if r1Level > LL * (1 + Pi) zigzag := s1Level[1] trend := 1 HH := s1Level HH shortc=crossunder(trend,0) longc=crossover(trend,0) longa =input(true) shorta=input(false) if(longa) strategy.entry("long",1,when=longc) strategy.close("long",when=shortc) if(shorta) strategy.entry("short",0,when=shortc) strategy.close("long",when=longc)