
La estrategia de varios marcos de tiempo de rango real de la media inversa de Fisher RSI es una estrategia de negociación cuantitativa que intenta descubrir los posibles puntos de inflexión del mercado mediante el cálculo de las medias móviles del indicador RSI ajustadas a la inversa en marcos de tiempo más altos.
La estrategia primero calcula el indicador RSI en general, cuyo parámetro es el RSI_pm representa la duración de los períodos de cálculo del RSI. Luego se realiza un ajuste inverso al RSI original mediante una función matemática IF, calculada con la fórmula IF(input) =>(exp(2*input)-1)/(exp(2*input) + 1) ◦ El indicador RSI ajustado se transmite a la variable IF_RSI。
Para filtrar el exceso de ruido, las estrategias en IF_El RSI se calcula sobre la base de_ps promedio móvil en el ciclo, que se obtiene con el indicador final para determinar el punto de compra y venta wma_El RSI. El indicador se proyecta en un rango de 0 a 100.
Finalmente, la estrategia traza el indicador en un marco de tiempo más alto y establece las líneas de umbral de 0.8 y -0.8. Cuando la línea de indicador rompe el nivel de 0.8 de abajo hacia arriba, se genera una señal de compra; Cuando la línea de indicador cae de arriba hacia abajo y rompe el nivel de -0.8, se genera una señal de venta.
La estrategia trata el movimiento del RSI de una manera de doble suavización, que filtra el exceso de ruido y bloquea una señal de reversión más clara. La doble suavización se aplica respectivamente al indicador RSI original y al RSI ajustado al valor absoluto. Este método puede mejorar la característica de la regresión media del indicador y generar una señal de negociación más confiable.
Además, la estrategia utiliza un método de análisis de múltiples marcos de tiempo para identificar brechas en los indicadores en un marco de tiempo de nivel más alto, lo que puede bloquear oportunidades de reversión en la línea larga y evitar ser interrumpido por exceso de ruido del mercado a corto plazo.
La estrategia se basa en el indicador de la línea de paridad para determinar el punto de compra y venta, y existe un cierto retraso. En un mercado alcista a largo plazo, el espacio para subir después de la corrección del indicador puede ser limitado y no se puede capturar plenamente la oportunidad de tendencia.
Por otro lado, el ajuste del indicador también puede perder la oportunidad de rebote después del ajuste de la línea corta. Si no se optimizan adecuadamente los parámetros del indicador, es posible que se enfrente a un cierto riesgo estratégico.
Se puede intentar ajustar adecuadamente los parámetros del indicador para que se adapten mejor al entorno del mercado. Por ejemplo, se puede probar diferentes períodos de cálculo del RSI, los parámetros de los períodos de nivelación, para buscar la combinación óptima de parámetros.
También se puede considerar la combinación de otros indicadores auxiliares para verificar la señal y mejorar la estabilidad de la estrategia. Por ejemplo, se puede agregar un indicador de volumen de transacciones, una línea de Brill para determinar la fuerza de la señal de tendencia.
La estrategia inversa de Fischer RSI promedio de rango real real de varios marcos de tiempo es una estrategia robusta en su conjunto, pero aún necesita ser optimizada para adaptarse a las condiciones más amplias del mercado. Merece ser probada y mejorada aún más para convertirse en una estrategia de comercio cuantitativa fiable.
/*backtest
start: 2022-11-14 00:00:00
end: 2023-11-20 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=4
strategy(title = "Inverse Fisher RSI-MTF2", shorttitle="INRSIM2",overlay=true)
//Inputs
RSI_pm = input(5, title="RSI Main Period",minval=2)
RSI_ps = input(1, title="RSI Smooth Period",minval=0)
//Functions
IF(input)=>(exp(2*input)-1)/(exp(2*input)+1)
//RSI Calculation
raw_RSI=0.1*(rsi(close,RSI_pm)-50)
wma_RSI=wma(raw_RSI,RSI_ps)*100
IF_RSI = IF(wma_RSI)
resCustom = input(title="Timeframe", defval="1440" )
v=request.security(syminfo.tickerid, resCustom,IF_RSI)
a=v>0.8
b=v<-0.8
z=0.8
buy = crossover(v,z)
sell=crossunder(v,b)
plotshape(sell, title="sell", style=shape.triangledown,location=location.abovebar, color=red, transp=0, size=size.small)
plotshape(buy, title="buy", style=shape.triangleup,location=location.belowbar, color=green, transp=0, size=size.small)
//Strategy
golong = crossover(v,z)
goshort = crossunder(v,b)
strategy.entry("Buy",strategy.long,when = golong)
strategy.entry("Sell",strategy.short,when = goshort)