
Esta estrategia de Pine Script se basa en el índice RSI relativamente fuerte y el DEV estándar de la volatilidad de los precios para juzgar el punto de entrada al comparar el precio con la trayectoria ascendente y descendente, y al mismo tiempo utiliza el RSI como un indicador de filtración auxiliar para generar una señal de apertura de posición cuando el precio toca la trayectoria ascendente y el RSI alcanza la zona de sobreventa y sobreventa. La estrategia puede ajustarse dinámicamente a las fluctuaciones del mercado y obtener ganancias cuando la volatilidad es alta y las pérdidas se detienen cuando la volatilidad es baja.
La estrategia utiliza el canal de la volatilidad y un índice relativamente fuerte para abrir posiciones cerradas con referencia al indicador RSI al mismo tiempo que los precios fluctúan, lo que permite comprender mejor las tendencias por etapas, detener pérdidas y obtener ganancias a tiempo. Sin embargo, el rendimiento de la estrategia es sensible a la configuración de parámetros y requiere optimización para diferentes entornos de mercado y activos indicados, al tiempo que se considera la introducción de otros indicadores para el juicio auxiliar sobre las tendencias del mercado para aprovechar al máximo las ventajas de la estrategia. En general, la estrategia es clara, lógica y rigurosa, y es una buena estrategia de negociación.
/*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")