domingo, 25 de agosto de 2013

INDICADORES : ESPECULATOR

Me llena de orgullo y satisfacción (como diría alguien conocido), presentaros un nuevo indicador creado conjuntamente con el forero Rookie de http://www.bolsacafe.com/
En cierta ocasión , leí un comentario muy acertado de Blai5 sobre los grandes y pequeños inversores.
Los tiburones y las sardinitas .Los tiburones son solitarios y egoístas. Las sardinitas van en bandadas y/o bancos, intercambian ideas entre ellas,colaboran poniendo sus cabezas a trabajar juntas...y aquí es donde entra Rookie.
En los principios de mis pinitos con la programación de indicadores en la plataforma Prorealtime, tuve una idea que me sobrevino.La idea era básica, combinar en un solo indicador un Rsi, una media exponencial y un Macd central cuya línea cero coincidiera con la línea 50 de un Rsi. La idea quedó aparcada y la retomé hace unos días.
Conseguí crear un código para la idea, pero, no salía visualmente como yo quería.
Si teneís curiosidad, podeís leer los post del hilo "Vigia Cutre" de http://www.bolsacafe.com/
El caso es que no tenía manera de modificar el código para mostrarlo tal y como lo tenía en mente.
Decidí pedir ayuda a Rookie (que sabe de programación) y el tio monstruo,ese mismo día ya lo tenía listo.
Los parámetros por defecto del Especulator son : un Rsi de 14 sesiones,una media Exponencial de 20 sesiones y un histograma Macd con la configuración estándar de 12, 26, 9.
El mismo Rookie me animó a poner los parámetros cambiables para que se pudiera experimentar con otras combinaciones, de manera que el código tiene las variables modificables.
En el gráfico de Mapfre ,podeís ver la comparativa de este indicador respecto al Macd y al Rsi.






SU USO

Los cortes de la media Exponencial sobre el Rsi nos dan señales de compra y/o venta.
Muchos de los cortes son señales falsas, para ello tenemos el Macd que nos hace de filtro.
Cualquier señal que no esté sincronizada, es decir , tenemos por ejemplo , una señal de corte alcista en el Rsi , pero el histograma Macd  está en negativo, la ignoraremos.
Como en el Rsi ,también tenemos zona de sobrecompra y sobreventa,formadas por las líneas 20 y -20.

El Código para Prorealtime es :
----------------------------------------------------------------------------------------------------------

Rem Especulator

xrsi=RSI[a](close)
se=ExponentialAverage[b](xrsi)
Lmacd=ExponentialAverage[p](xrsi)-ExponentialAverage[q](se)
Lsignal=ExponentialAverage[r](Lmacd-xrsi+se)
mimacd=(Lmacd-Lsignal)

RETURN mimacd AS "MACD",(xrsi-50) AS "RSI",(se-50) AS "SE",20 AS "linea 20",-20 AS "linea -20"

-----------------------------------------------------------------------------------------------------------
En la parte de variables añadiremos:

a= RSI=14
b=Media=20
p=Macd corto=12
q=Macd largo=26
r=Señal Macd=9

Así pués,solo queda testearlo y comprobarlo.

A las sardinitas les estan saliendo dientecitos y cada vez se parecen más a las pirañas, ¿quién sabe si algún día la presa será un tiburón ?

nota : Por cierto, según el indicador Especulator, Mapfre, por el momento está bajista.


13 comentarios:

  1. Para los curiosos y analíticos indicarles que la diferencia entre MACD-ESPECULATOR y MACD tradicional es que el primero extrae sus datos del RSI(14) y SE(EMA20), mientras el tradicional trabaja con sus EMA,s.(12,26,9).
    Se puede automatizar en sistema ese indicador, en cuanto pueda lo publicaré, así sería adaptable automáticamente a cada indice/accion/etc. y saber los resultados inmediatamente.
    SUERTE

    ResponderEliminar
  2. Hola, aquí se los dejo, cambiando algunas cosas para hacerle más alisado (Max RSI 8 velas) y mejor pegado al precio (Media Ponderada).

    xrsi= HIGHEST[8](RSI[a](weightedclose))
    se= WeightedAverage[b](xrsi)
    Lmacd= ExponentialAverage[p](xrsi)-ExponentialAverage[q](se)
    Lsignal= ExponentialAverage[r](Lmacd-xrsi+se)
    mimacd= (Lmacd-Lsignal)

    indicator1 = xrsi
    indicator2 = se
    indicator3 = mimacd

    c1 = indicator1 > indicator2 and indicator3 > indicator3[z]

    IF C1 THEN
    BUY 1 SHARES AT MARKET THISBARONCLOSE
    ENDIF

    c2 = indicator1 < indicator2 and indicator3 < indicator3[z]
    IF C2 THEN
    SELLSHORT 1 SHARES AT MARKET THISBARONCLOSE
    ENDIF

    c3 = indicator1 < indicator2 and indicator3 < indicator3[z]
    IF C3 THEN
    SELL AT MARKET THISBARONCLOSE
    ENDIF

    c4 = indicator1 > indicator2 and indicator3 > indicator3[z]
    IF C4 THEN
    EXITSHORT AT MARKET THISBARONCLOSE
    ENDIF

    variables:
    a(8 a 14-Paso2, b(8-20/3),p (8-12/2), q (13-26/2), r (3-9/2), z(2-10/1)

    SUERTE

    ResponderEliminar
  3. Buenos dias a tod@s.

    Soy muy esceptico con los indicadores/osciladores/mm/... porque realmente todos tienen diferencias entre plataformas o van retrasados, así que lo realmente común a todas las plataformas y con lo que podemos operar en igualdad de condiciones y al final en lo que se basa ntro. resultado es en el PRECIO, ahí no hay ninguna discusión.

    Pues bien, he modificado el indicados RSI por el PRECIO (Oscilador), los resultados, aprovechando las variables que ya tenemos, pues por supuesto mucho mejores, así que les dejo ésta otra opción y puedan elegir.

    REM ESPECULATOR CON PRECIO(OSCILADOR)

    precosc= PriceOscillator[p,q](weightedclose)
    se= WeightedAverage[b](precosc)
    Lmacd= wEIGHTEDAverage[p](precosc)-WEIGHTEDAverage[q](se)
    Lsignal= WeightedAverage[r](Lmacd-precosc+se)
    mimacd= (Lmacd-Lsignal)

    indicator1 = precosc
    indicator2 = se
    indicator3 = mimacd

    c1 = indicator1 > indicator2 and indicator3 > indicator3[z]

    IF C1 THEN
    BUY 1 SHARES AT MARKET
    ENDIF

    c2 = indicator1 < indicator2 and indicator3 < indicator3[z]
    IF C2 THEN
    SELLSHORT 1 SHARES AT MARKET
    ENDIF

    c3 = indicator1 < indicator2 and indicator3 < indicator3[z]
    IF C3 THEN
    SELL AT MARKET
    ENDIF

    c4 = indicator1 > indicator2 and indicator3 > indicator3[z]
    IF C4 THEN
    EXITSHORT AT MARKET
    ENDIF

    VARIABLES: b(8-20/3), p(6-12/2), a(13-26/2), r(3-9/2), z(2-10/1)

    ResponderEliminar
  4. PERDONNNNN. ATENCIONNNNNNN deben cambiar la variable a por q, añadir q en nombre en vez de a, de lo contrario le dará error.

    GRACIAS

    ResponderEliminar
    Respuestas
    1. Misterioso anónimo, esta último código , el de Especulator con Oscilador de Precios,pienso mirarlo en cuanto tenga un ratito.
      Muchas gracias por los códigos.

      Eliminar
  5. ULYSES, jajajajajajja, nada de misterioso ANONIMO, soy ROOKIE, pero no tengo nada de cuentas y cosas de esas, por eso viendo la simplicidad con esa opción opté hacerlo así.
    Tú en la presentación haces mención de mi nick y yo continué escribiendo como si fuera el aludido.
    Todo lo que desees en éste mundo tan especial de la bolsa no tengas problema de exponermelo, al menos lo analizaré, estudiaré y si te doy la solución mejor para tod@s.
    SUERTE

    ResponderEliminar
  6. Anonimo de las 10:12, sorry pero no.pillo lo de añadir q en nombre

    ResponderEliminar
  7. Ulyses me sale error en "corto=12"
    kiko

    ResponderEliminar
    Respuestas
    1. Algo estás haciendo mal, Kiko.Primero copia y pega todo el código puesto aquí en la ventana de "nuevo indicador",una vez hecho esto,en el lado de la derecha arriba ,hay un recuadro que pone "variables".Debes añadir (pulsa botón añadir) las variables una a una.
      te aparecerá un recuadro definición de variable,si empiezas desde el primer parámetro,pondrías en:
      nombre usado en programa : a
      Etiqueta en ventana propiedades: RSI
      Tipo: Entero
      Restricción: >0
      Valor por defecto:14
      le dás a aceptar y así vas metiendo todas las variables.cuando las tengas todas,le dás a validar programa y te tiene que salir.
      Un saludo Kiko.

      Eliminar
  8. Hola, buenos dias.

    Para que no haya ninguna duda, el renglón de definiciones de variables debe quedar como sique:

    VARIABLES: b(8-20/3), p(6-12/2), q(13-26/2), r(3-9/2), z(2-10/1)

    La "a" no aparece en el código y por eso no debe tener ninguna indicación en el apartado variables, sin embargo, la "q" sí que existe y por consiguiente debe aparecer en el mencionado apartado variables.

    SUERTE.-
    ROOKIE

    ResponderEliminar
  9. una versión más simple/simplona de la primera versión:
    ==================================================
    Rem Especulator Creado por Rookie y Ulyses
    Rem Modificado por Anónimo

    r=RSI[RR](close)-50
    m=ExponentialAverage[MM](r)
    o = MACD[MC,ML,MS](r+m)*FF

    return o as "MACDh", r coloured(0,0,255) as "RSI", m coloured(255,0,0) as "EMA", 0 as "0", 20 AS "linea 20",-20 AS "linea -20"
    =============================================

    XAO

    ResponderEliminar
  10. OPS me dejé las variables y cambio FF por FH:
    #########################################
    Food Factory 016 CP - barras de granola, verduras para barbacoas, queso azul y pasteles de arroz

    r=RSI[RR](close)-50
    m=ExponentialAverage[MM](r)
    o = MACD[MC,ML,MS](r+m)*FH

    return o as "MACDh", r coloured(0,0,255) as "RSI", m coloured(255,0,0) as "EMA", 0 as "0", 20 AS "linea 20",-20 AS "linea -20"

    VARIABLES
    ============================
    RR = RSI#14
    MM = Media Exponencial#20
    MC = MACD corto#12
    ML = MACD largo#26
    MS = MACD Señal#9
    FH = Factor Histograma
    #########################################
    XAITO

    ResponderEliminar
  11. el mismo que se dejó el factor histograma:

    #################################
    FH = Factor Histograma#3
    #################################
    .

    ResponderEliminar