Esta estrategia se llama
La idea principal detrás de la estrategia es: primero calcular el valor del RSI, luego construir el indicador estocástico del RSI basado en el RSI, a saber, los valores K y D. Cuando el valor K cruza por encima del valor D, se genera una señal de compra. Cuando el valor K cruza por debajo del valor D, se genera una señal de venta. Para filtrar las señales falsas, la estrategia también introduce el índice de cambio (RVI) y su línea promedio móvil para confirmación.
Calcular el valor del RSI de 14 períodos.
Construir un indicador de RSI estocástico de 14 períodos basado en el RSI para obtener los valores K y D (D es la media móvil de 3 períodos de K).
Calcular el RVI de 5 períodos y su línea de señal (la media móvil del RVI).
Cuando K cruza por encima de D, si RVI > Línea de señal y el último período
Se abren posiciones largas o cortas en función de las señales generadas.
La combinación de RSI estocástico y doble confirmación de RVI puede filtrar eficazmente las señales falsas.
El indicador RVI puede reflejar condiciones de sobrecompra/sobreventa a corto plazo y evita abrir posiciones en puntos extremos.
El indicador RSI estocástico identifica las zonas de sobrecompra/sobreventa y utiliza la cruz dorada/muerta del indicador KDJ para determinar los puntos de entrada.
Los resultados de las pruebas de retroceso muestran que esta estrategia ha logrado un buen rendimiento en algunos pares de criptomonedas (como FCT/BTC).
La colocación inadecuada de estrategias de stop loss similares a las estrategias de trailing stop puede llevar a que se detenga prematuramente.
La alta frecuencia de la señal puede dar lugar a tarifas de negociación excesivas que deben tenerse en cuenta.
Tanto los indicadores KDJ como los RVI pueden generar señales falsas, lo que puede dar lugar a pérdidas innecesarias.
Los parámetros de la estrategia deben ser optimizados para diferentes pares de negociación.
Añadir un stop loss móvil para bloquear las ganancias.
Optimizar los parámetros RVI y los parámetros RSI estocásticos para señales más limpias.
Añadir el control del tamaño de la operación para evitar pedidos individuales excesivamente grandes.
Se pueden introducir indicadores de volatilidad para determinar si el mercado se encuentra actualmente en un estado inestable.
Prueba con diferentes pares de criptomonedas para encontrar el mejor ajuste.
Esta estrategia primero construye un RSI estocástico basado en el indicador RSI, luego utiliza el indicador RVI para la confirmación, con el fin de detectar condiciones de sobrecompra / sobreventa a corto plazo y posiciones abiertas en puntos de inflexión. La ventaja es que la doble confirmación puede filtrar señales falsas. La desventaja es el riesgo de parámetros de sobreajuste. En general, esta estrategia ha logrado buenos resultados en algunos pares comerciales.
/*backtest start: 2022-12-08 00:00:00 end: 2023-12-14 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=4 strategy(title="Stochastic RSI", shorttitle="Stoch RSI", overlay = true) Per = input(5, title="Length", minval=1) smoothK = input(3, minval=1) smoothD = input(3, minval=1) lengthRSI = input(14, minval=1) lengthStoch = input(14, minval=1) src = input(close, title="RSI Source") rsi1 = rsi(src, lengthRSI) K = sma(stoch(rsi1, rsi1, rsi1, lengthStoch), smoothK) D = sma(K, smoothD) rvi = sum(swma(close-open), Per)/sum(swma(high-low),Per) sig = swma(rvi) //plot(rvi, color=green, title="RVI") //plot(sig, color=red, title="Signal") //plot(K, title="K") //plot(D, title="D") Dn = K <= D and K > 70 and rvi <= sig and rvi[1] >= sig[1] Up= K >= D and K < 30 and rvi >= sig and rvi[1] <= sig[1] ARROW = Up - Dn plotarrow(ARROW, title="Down Arrow", colordown=red, transp=0, maxheight=10, minheight=10) plotarrow(ARROW, title="Up Arrow", colorup=lime, transp=0, maxheight=10, minheight=10) long = crossover(Up, Dn) short = crossunder(Up, Dn) last_long = long ? time : nz(last_long[1]) last_short = short ? time : nz(last_short[1]) long_signal = crossover(last_long, last_short) short_signal = crossover(last_short, last_long) //plot(long_signal, "BUY", color=green) //plot(short_signal, "SELL", color=red) strategy.entry("BUY", strategy.long, when=long_signal) strategy.entry("SELL", strategy.short, when=short_signal)