sábado, 5 de julio de 2014

INDICADORES : RSI MIRROR

Hay que quitarse el sombrero ante este hombre. Welles Wilder , es sin duda el mejor creador de indicadores técnicos hasta la fecha.
Los indicadores que se hicieron públicos en su libro de 1978 , New Concepts in Technical Trading Systems ,revolucionaron la forma en como la gente abordó las compras y las ventas en los mercados.
Indicadores tan elegantes y geniales como el famoso RSI , indice de Fuerza Relativa , se utilizan hoy día después de tantos años , por una gran comunidad de traders.
Sobre el RSI he sacado esta última tontería mia.
El RSI MIRROR.


La idea consiste en mezclar un Rsi con un Rsi inverso , de manera que a los cortes de ambos,podemos apreciar entradas o salidas.Como si de un espejo se tratara , por un lado tenemos la visión de un Rsi de toda la vida con la de un Rsi al que se le ha dado la vuelta.
La idea no es nueva, de hecho me consta que existe un Rsi Mirror para la plataforma Metatrader , creado por Andy Tjatur ,el mismo del que cojí el indicador Macd Mirror e hice una copia para la plataforma Prorealtime , la cual teneís disponible en este blog.
Sin embargo, el aspecto de este Rsi Mirror es distinto.Para muestra, en el gráfico de Inditex lo teneís puesto.
RSI 1 (en color negro) corresponde a un Rsi de 14 periodos , normal y corriente.
RSI 2 (en color rojo) corresponde a un Rsi inverso de 14 periodos.
Podemos apreciar los cortes de ambos Rsis y sacar conclusiones...



Para todo aquel que esté interesado en esta simpleza , de manera altruista y gratuita, os pongo a vuestra disposición el código para la plataforma Prorealtime :

-----------------------------------------------------------------------------------------------------

REM RSI MIRROR

alza = max(0, close - close[1])
baja = max(0, close[1] - close)
mmAlza = wilderAverage[p](alza)
mmBaja = wilderAverage[p](baja)
RS = mmAlza / mmBaja
RS1 = (100 - 100 / (1 + RS))
al=max(0,close-close[1])
baj=max(0,close[1]-close)
mal=wilderAverage[p](al)
mbaj=wilderAverage[p](baj)
RSNE=mal/mbaj
RS2=(100+100/(1+RSNE))-100


return RS1 as "RSI",RS2 coloured (255,0,0)as "RSI-",70 as "70",50 as "50",30 as "30"

----------------------------------------------------------------------------------------------------
variable:
p = periodo = 14

8 comentarios:

  1. Pues la idea es muy sencilla, pero me parece enormemente práctica, ¡¡Felicidades!!, me lo pongo en la carpeta de cacharros para estudiar.
    Un saludo fenómeno.

    ResponderEliminar
    Respuestas
    1. Como siempre,muchas gracias por la respuesta,Miguel.
      Un saludo fiera

      Eliminar
  2. Me sigo quedando con el MACD Mirror a pesar que comentaste que no era de fiar pero en semanal me canta mejor las entradas y salidas, eso si tirando de históricos.

    De todas formas voy a dejarlo un tiempo puesto para ir viendo si tiene posibilidades.

    Aprovecho para darte las gracias por compartir desinteresadamente estos cacharros.

    ResponderEliminar
  3. Pero que apañao eres!
    Saludos de Marina

    ResponderEliminar
  4. El MACD Mirror si me ha gustado. Pero el RSI Mirror lo veo de absurda utilidad. Fijémonos que el RSI se corta con su espejo siempre en el nivel 50. Por lo tanto de nada sirve graficar el espejo del RSI porque no aporta nada. Tengo la impresión de que hay un detalle errado. ¿No será que el RSI es sobre el Close y su espejo es sobre el Open? Si hiciéramos esto ya nos aporta algo diferente porque los cruces no se producirán siempre en el nivel 50. Y, además se puede añadir una media móvil sobre el RSI para ver los curces de esta con el propio RSI o con su espejo. En fin, tengo la sensación de que el RSI Mirror no es tal como está fórmulado aquí.

    ResponderEliminar
    Respuestas
    1. Pos vá usted a tener razón.Tampoco veo de mucha utilidad el RSI MIRROR,por ese motivo fué quitado de la columna de ETIQUETAS.Que se puede simplificar el código tal y como me pone usted...pués si,que podemos tomar el Rsi inverso los open...pués quedaría tal que asín:
      ---------------------------------------------
      REM RSI MIRROR

      alza = max(0, close - close[1])
      baja = max(0, close[1] - close)
      mmAlza = wilderAverage[p](alza)
      mmBaja = wilderAverage[p](baja)
      RS = mmAlza / mmBaja
      RS1 = (100 - 100 / (1 + RS))
      al=max(0,open-open[1])
      baj=max(0,open[1]-open)
      mal=wilderAverage[p](al)
      mbaj=wilderAverage[p](baj)
      RSNE=mal/mbaj
      RS2=(100+100/(1+RSNE))-100


      return RS1 as "RSI",RS2 coloured (255,0,0)as "RSI-",70 as "70",50 as "50",30 as "30"
      -----------------------------------------
      Un saludo.

      Eliminar
  5. Hola Miguel.



    Gracias por tu interesante artículo. Soy el anterior anónimo. Disculpas por mi anterir brusca opinión.
    En el MACD Mirror también todos los cruces del MACD con su espejo son en un mismo nivel (nivel cero). Pero lo que le da gracia es añadir la media móvil.
    Así que si añadieras una media móvil sobre el RSI (en el gráfico no la veo), entonces el RSI Mirror tendría sentido, ya que los cruces de esta media con el espejo no sucederían siempre en el mismo nivel, y nos proporcionaría estos interesantes cruces:
    1.- Cruce del RSI con los niveles 30, 50 y 70. (El curce con el nivel 50 coincidirá siempre con el cruce del RSI con el espejo).
    2.- Cruce del RSI con su media móvil.
    3.- Cruce de la media móvil del RSI con el espejo.

    Por otro lado el código del espejo, RSI2, se puede simplificar mucho:
    RSI2 = 100 - RSI1



    Saludos.

    ResponderEliminar
  6. Se me olvidó añadir otro cruce interesante:
    4.- Cruce de la media móvil del RSI con los niveles 30, 50 y 70.

    ResponderEliminar