Chiến lược này dựa trên chỉ số sức mạnh tương đối (RSI) và độ lệch chuẩn (DEV) của sự biến động giá. Nó xác định các điểm nhập bằng cách so sánh giá với dải trên và dưới, trong khi sử dụng RSI như một chỉ số lọc phụ trợ. Nó tạo ra các tín hiệu nhập dài khi giá vượt qua dải dưới và RSI dưới ngưỡng bán quá mức, và các tín hiệu nhập ngắn khi giá vượt qua dải trên và RSI trên ngưỡng mua quá mức. Chiến lược đóng dài khi giá vượt qua dải dưới ra hoặc RSI vượt quá ngưỡng mua quá mức, và đóng các vị trí ngắn khi giá vượt qua dải trên ra hoặc RSI giảm xuống dưới ngưỡng bán quá mức. Chiến lược này có thể điều chỉnh năng động theo điều kiện biến động của thị trường, giữ các vị trí trong thời gian biến động cao và thua lỗ định lượng trong các tình trạng giao dịch thấp.
Chiến lược này kết hợp các kênh biến động và chỉ số sức mạnh tương đối để đưa ra quyết định vào và ra dựa trên biến động giá trong khi tham chiếu chỉ số RSI. Nó có thể nắm bắt tốt hơn các xu hướng ngắn hạn và cắt giảm lỗ và kiếm lợi nhuận kịp thời. Tuy nhiên, hiệu suất của chiến lược tương đối nhạy cảm với cài đặt tham số và cần được tối ưu hóa cho các môi trường thị trường và tài sản cơ bản khác nhau. Đồng thời, hãy xem xét giới thiệu các chỉ số khác để hỗ trợ đánh giá xu hướng thị trường để tận dụng đầy đủ lợi thế của chiến lược này. Nhìn chung, chiến lược này có ý tưởng rõ ràng, logic nghiêm ngặt và là một chiến lược giao dịch định lượng tốt.
/*backtest start: 2024-05-20 00:00:00 end: 2024-05-27 00:00:00 period: 1h basePeriod: 15m exchanges: [{"eid":"Binance","currency":"BTC_USDT"}] */ // This Pine Script™ code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/ // © tmalvao //@version=5 strategy("Estratégia de Desvio Padrão com RSI", overlay=true, margin_long=100, margin_short=100) // Parâmetros length = input.int(20, title="Período do Desvio Padrão") thresholdEntry = input.float(1.5, title="Limite de Entrada") thresholdExit = input.float(0.5, title="Limite de Saída") rsiLength = input.int(14, title="Período do RSI") rsiOverbought = input.int(70, title="RSI Overbought") rsiOversold = input.int(30, title="RSI Oversold") // Cálculo do Desvio Padrão price = close stdDev = ta.stdev(price, length) // Média Móvel Simples sma = ta.sma(price, length) // Limites baseados no Desvio Padrão upperLimit = sma + thresholdEntry * stdDev lowerLimit = sma - thresholdEntry * stdDev exitUpperLimit = sma + thresholdExit * stdDev exitLowerLimit = sma - thresholdExit * stdDev // Cálculo do RSI rsi = ta.rsi(price, rsiLength) // Condições de Entrada com RSI longCondition = ta.crossover(price, lowerLimit) and rsi < rsiOversold shortCondition = ta.crossunder(price, upperLimit) and rsi > rsiOverbought // Condições de Saída com RSI exitLongCondition = ta.crossunder(price, exitLowerLimit) or rsi > rsiOverbought exitShortCondition = ta.crossover(price, exitUpperLimit) or rsi < rsiOversold // Plotar Linhas plot(upperLimit, color=color.red, title="Limite Superior") plot(lowerLimit, color=color.green, title="Limite Inferior") plot(exitUpperLimit, color=color.orange, title="Limite de Saída Superior") plot(exitLowerLimit, color=color.blue, title="Limite de Saída Inferior") plot(sma, color=color.gray, title="SMA") hline(rsiOverbought, "RSI Overbought", color=color.red) hline(rsiOversold, "RSI Oversold", color=color.green) plot(rsi, title="RSI", color=color.purple) // Estratégia de Trade if (longCondition) strategy.entry("Long", strategy.long) if (shortCondition) strategy.entry("Short", strategy.short) if (exitLongCondition) strategy.close("Long") if (exitShortCondition) strategy.close("Short")