Đây là một chiến lược giao dịch theo xu hướng và đột phá xu hướng dựa trên các chỉ số RSI và EMA. Tên chiến lược là
Chiến lược này sử dụng EMA 5 ngày, EMA 20 ngày và EMA 50 ngày để xây dựng khung xu hướng dài và ngắn. Khi EMA 5 ngày vượt qua EMA 20 ngày, và cả hai EMA đều trên EMA 50 ngày, nó xác định một sự đột phá xu hướng tăng gần đây cho bước vào dài. Khi EMA 5 ngày vượt qua dưới EMA 20 ngày, và cả hai EMA đều dưới EMA 50 ngày, nó xác định một sự đột phá xu hướng giảm gần đây cho bước vào ngắn.
Trong khi đó, chiến lược cũng kết hợp chỉ số RSI để đánh giá liệu nó đạt đến các vùng mua quá mức hoặc bán quá mức. RSI có thể xác định hiệu quả các điều kiện mua quá mức và bán quá mức để tránh các tín hiệu sai khi xu hướng lên đỉnh hoặc củng cố. Khi chỉ số RSI di chuyển từ vùng mua quá mức sang vùng trung lập, vị trí dài thoát ra. Khi chỉ số RSI di chuyển từ vùng bán quá mức sang vùng trung lập, vị trí ngắn thoát ra.
Chiến lược này kết hợp các chỉ số EMA và RSI, có thể nắm bắt xu hướng trung bình đến dài hạn và tránh rủi ro khi xu hướng kết thúc, với các đặc điểm tỷ lệ rủi ro-lợi nhuận rất tốt.
Có một số rủi ro trong chiến lược này:
Để giảm những rủi ro này, chúng ta có thể thiết lập stop loss, điều chỉnh các thông số RSI hoặc kết hợp các chỉ số khác để xác nhận.
Có chỗ cho việc tối ưu hóa thêm chiến lược này:
Chiến lược đột phá xu hướng RSI-EMA này xem xét toàn diện việc theo dõi xu hướng và đánh giá thời gian đầu vào để nắm bắt lợi nhuận xu hướng trên cơ sở kiểm soát rủi ro. Đây là một chiến lược trung bình đến dài hạn rất thực tế. Chúng ta có thể tiếp tục cải thiện sự ổn định và lợi nhuận thông qua tối ưu hóa tham số, thêm các chỉ số khác v.v.
/*backtest start: 2023-11-19 00:00:00 end: 2023-12-19 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/ // © BrendanW98 //@version=4 strategy("My Strategy", overlay=true) ema5 = ema(close, 9) ema20 = ema(close, 21) ema50 = ema(close, 55) //RSI Signals // Get user input rsiSource = close rsiLength = 14 rsiOverbought = 70 rsiOversold = 30 rsiMid = 50 // Get RSI value rsiValue = rsi(rsiSource, rsiLength) //See if RSI crosses 50 doBuy = crossover(rsiValue, rsiOversold) and rsiValue < 50 doSell = crossunder(rsiValue, rsiOverbought) and rsiValue > 50 emacrossover = crossover(ema5, ema20) and ema5 > ema50 and ema20 > ema50 and close > ema50 emacrossunder = crossunder(ema5, ema20) and ema5 < ema50 and ema20 < ema50 and close < ema50 //Entry and Exit longCondition = emacrossover closelongCondition = doSell strategy.entry("Long", strategy.long, 1, when=longCondition) strategy.close("Long", when=closelongCondition) shortCondition = emacrossunder closeshortCondition = doBuy strategy.entry("Short", strategy.short, 1, when=shortCondition) strategy.close("Short", when=closeshortCondition)