Indicador Manipulación para ProRealTime

Hola a tod@s.

Quería presentaros el indicador que he estado desarrollando los últimos meses y que muchos ya conoceis. Se trata del Gestur-Manipulacion.

¿Qué es el Gestur-Manipulacion?

Se trata de un indicador cuyo principal propósito es el reflejar de una manera gráfica la distribución de las fuerzas del mercado. Concretamente la mano fuerte y la mano débil.

¿Qué son las fuerzas del mercado? ¿Mano fuerte? ¿Mano débil? ¿Mande?

En primer lugar queria aclarar que todo esto es una simplificación de todos los factores que influyen en el comportamiento de la bolsa, pero si entendemos la bolsa como un invento para sacarle el dinero a la gente (que es lo que pienso que es) en general habrá dos grandes grupos: los experimentados y los inexpertos; los ricos y los pobres; los que tienen información privilegiada y los que no; los que van por delante y los que llegan tarde a los movimientos. En definitiva la mano fuerte y la mano débil.

¿Como sabe el indicador quien está comprando y vendiendo?

No lo sabe. Los datos que recibimos de bolsa son apertura, cierre, máximo, mínimo y volumen. A partir de esos datos no podemos adivinar, pero si suponer ciertas premisas basadas en observaciones pasadas, por ejemplo:

  • Las manos debiles suelen operar en el sentido del precio y habitualmente tarde, es decir, contribuyen a mantener la direccion actual del precio incluso a acelerarla.
  • Las manos fuertes se anticipan y son capaces de mover el mercado. Desde luego tienen mas poder que las débiles.

Aparte de estas premisas el indicador también tiene en cuenta rangos intradiarios, distancia de la apertura respecto cierre anterior, aumentos o disminuciones de volumen en funcion de situaciones…

¿Como funciona?

A la hora de decidir como mostrar esta información la verdad es que me he basado, o casi plagiado, el famoso Koncorde de Blai5. Las manos fuertes vienen representadas por una linea y area azules y las manos débiles por verdes.

Ejemplo:

Supongo que en este ejemplo habra quedado bastante claro, pero por si acaso os dejo 3 videos explicativos sobre la idea y funcionamiento del indicador:




¿Cómo me lo instalo?

A continuación os pongo el código fuente del indicador. Para instalarlo solo teneis que darle a “Añadir indicador” en ProRealTime, copiar y pegar el texto en la ventana y pulsar “Validar programa”. Luego teneis que poner las variables azul y verde como histograma, y lazul y lverde como linea pero con más anchura, el resto dejar como está. Que lo disfrutéis:

rem ---------------------Manipulacion---------------------

rem Indicador que trata de diferenciar que parte del volumen de negociación
rem corresponde a manos débiles y a manos fuertes.
rem Creado por gestur

rem Variables que controlan el rango adaptativo del area azul y verde.

once divazul=1
once divverde=1

nvol=80
adapt=2
zoomazul=5
zoomverde=5

rem Periodo 1 y 2 de las medias moviles que se encargan de detectar cambios de direccion.
n1=50
n2=3
n3=6

m1 = Average[n1](close)
m2 = Average[n2](close)
m3 = Average[n3](close)

volm = average[nvol](volume)
diferencia1 = Average[2](m2) - Average[2](m1)
diferencia2 = Average[2](m3) - Average[2](m1)
mani1 = (m2 - m1 - diferencia1) / 2
mani2 = m3 - m1 - diferencia2
mani = mani1 + mani2
diferencia = diferencia1

volp = volume / volm

if volp = 0 then
 volp = 1
 volm = 1
endif

a = (diferencia / open) * volp
b = (close - m1) / close
c = (open - close[1]) / close[1]
d = (close - open) / close

rem Calculamos las franjas azul y verdes en funcion de los dos supuestos y los adaptamos al rango dinamico.
azul = (mani + ((d-c) * volp)) * volp - a
verde = b * volp

if volp <> 0 then
 if averde[1] > 1 or averde[1] < -1 then
  divverde = divverde * (1 + adapt / 50)
 else
  divverde = divverde / (1 + adapt / 600)
 endif

 if aazul[1] > 1 or aazul[1] < -1 then
  divazul = divazul * (1 + adapt / 50)
 else
  divazul = divazul / (1 + adapt / 600)
 endif

 averde = verde / divverde * zoomverde
 aazul = azul / divazul * zoomazul
endif

if averde > 8 then
 averde = 8
endif
if averde < -8 then
 averde = -8
endif
if aazul > 8 then
 aazul = 8
endif
if aazul <-8 then
 aazul = -8
endif

rem Ajustamos el indice de manipulacion para que se mantenga en un rango razonable.
amani=mani/(highest[nvol](mani)-lowest[nvol](mani))*2

return  0 COLOURED (0,0,0) as "cero", aazul COLOURED(0,255,255) as "azul",  averde COLOURED(102,255,102) as "verde", aazul COLOURED (0,51,255) as "lazul",  averde COLOURED (0,153,51) as "lverde", amani COLOURED (153,102,0) as "mani"

35 responses to “Indicador Manipulación para ProRealTime

  1. Enhorabuena, gestur!!!

    Te esperamos por ‘Apuntes de Trading’.

    En cuanto tenga un par de días los dedicaré a estudiar tu indicador al detalle. Muchas gracias por compartirlo de esta manera tan abierta. Es un detalle que te honra.

    Saludos

  2. muy buenas señores y feliz año.
    Gracias por tu trabajo, muy interesante. Una pregunta…. el indicador lo miramos en semanal, diário..depende del volumen medio?
    Gracias por todo!

    1. Hola Raul.

      Lo puedes mirar en los dos periodos. Yo lo programé pensando en diario y de hecho me gusta más porque es más rápido, en semanal da una vision más a medio plazo, que también puede estar bien.

    1. Mira a ver si ha habido un salto de linea donde no tocaba. A ver si lo de la siguiente linea es la continuación de la actual, en ese caso tendrias que unirlas.
      Un saludo.

  3. buenas a todos….
    pues el indicador llevaba un tiempo avisando de que las manos fuertes se estaban poniendo moradas en bancos y demas blue chips.. parece que ha funcionado muy bien. Es más… en bbva marca un subidón de los azules impresionante ( creo recordar que era en semanal ) más que en la acumulacion de marzo 2009…no sé,veremos a ver donde nos llevan..
    saludos y gracias por el indicador…es una maravilla.
    Raul
    P.D.- Por ejemplo en Iberia, en semanal, llevan mucho tiempo soltando trapo poco a poco las manos fuertes, además estamos en resistencia 2007 3,70…veremos que pasa.

  4. Hola,
    Me encanta tu indicador y los videos te han quedado bastante bien.

    A la hora de pegar el codigo en prorealtime me da error en la linea 82. He sustituido comillas y no se arregla. Tampoco se si tengo que introducir alguna variable manualmente.

    Muchas gracias

  5. Como veo que no hay manera de poner el código sin que de errores a la hora de copiar y pegar, lo publicaré directamente en ProRealTime.

    No lo he hecho nunca, imagino que no tardará en salir. Cuando esté publicaré un post.

  6. Gracias por tan magnifico trabajo.
    En el vídeo dos cuando comentas ,RECOGIDA de la mano fuerte y venta de la devil, el color azul esta por encima de la linea, es compra de la mano fuerte ¿no?
    Gracias

  7. Hola Josep,
    Quería indicar dos cosas con respecto a tu indicador Gestur Manipulación.

    La primera es una modestísima sugerencia, y es que en la última línea del código PRT pongas «verde» antes que «azul» y «lverde» antes que «lazul». De esta manera, cuando las zonas verde y azul se solapen, será la azul (los tibus, lo que más nos importa) lo que quede por encima. Creo que este pequeño cambio mejora notablemente la visibilidad.

    Lo segundo es preguntarte por el indicador que estabas desarrollando y que básicamente calculaba la acumulación que llevaban las manos fuertes y las débiles, es decir, algo así como la integral del Gestur Manipulación, para en un momento dado dar señales de compra o venta. ¿En qué quedó la cosa? ¿Dio resultados satisfactorios? ¿Vas a compartir el código?

    Gracias y felicidades por tu trabajo, acabo de descubrir tu blog y pienso seguirlo!!

    1. Hola Ivan.

      Tienes razón respecto al manipulación, de la forma que tu dices se verá mejor. A veces los que programamos nos centramos demasiado en el código y quizá no tanto en el aspecto. Como voy a publicar en breve el Manipulación directamente a través de ProRealTime ya lo incorporaré corregido.

      Respecto a lo segundo, bien visto lo de la integral, jeje. Pues dio resultados satisfactorios en bastantes activos, sobre todo en España y algun otro país europeo, pero en cuanto empecé a probarlo en otros mercados mundiales no me gustaron tanto. Intenté hacer algunas variaciones pero las limitaciones del ProRealTime en cuanto a programación se refiere me desanimaron bastante, por no hablar de la cantidad de problemas que da usar un rastreador que use un indicador (acumulación) que a su vez utiliza otro (manipulación): resultados que no tienen nada que ver con lo que sale en el gráfico y errores de servidor… de hecho fue la puntilla para cambiarme a Wealth-Lab, justamente cuando estaba con el rastreador de este indicador.

      En un futuro lo portaré a Wealth-Lab y así podre hacerle muchísimas más pruebas por todos los mercados mundiales.

      Muchas gracias por seguir el blog y un abrazo.

  8. Josep,
    sinceramente gracias por el indicador y la humildad con la que presentas y compartes tu trabajo. Gracias, Félix

  9. El indicador promete.

    Me gustaría saber si tienen una versión del mismo para MT4 en MQL4?

    Saludos y gracias

  10. Buenos días,

    Ante todo gracias por su esfuerzo y trabajo y sobre todo por ponerlo a disposición de cuantos nos aventuramos en las procelosas aguas del trading. He procedido a copiar el codigo fuente en PRT pero sin embargo el gráfico que aparece dista del que aparece en esta web. el códifo fuente que he usado es éste;

    once divazul=1
    once divverde=1
    nvol=80
    adapt=2
    zoomazul=5
    zoomverde=5
    n1=50
    n2=3
    n3=6
    m1 = Average[n1](close)
    m2 = Average[n2](close)
    m3 = Average[n3](close)
    volm = average[nvol](volume)
    diferencia1 = Average[2](m2) – Average[2](m1)
    diferencia2 = Average[2](m3) – Average[2](m1)
    mani1 = (m2 – m1 – diferencia1) / 2
    mani2 = m3 – m1 – diferencia2
    mani = mani1 + mani2
    diferencia = diferencia1
    volp = volume / volm
    if volp = 0 then
    volp = 1
    volm = 1
    endif
    a = (diferencia / open) * volp
    b = (close – m1) / close
    c = (open – close[1]) / close[1]
    d = (close – open) / close
    azul = (mani + ((d-c) * volp)) * volp – a
    verde = b * volp
    if volp 0 then
    if averde[1] > 1 or averde[1] 1 or aazul[1] 8 then
    averde = 8
    endif
    if averde 8 then
    aazul = 8
    endif
    if aazul <-8 then
    aazul = -8
    endif
    amani=mani/(highest[nvol](mani)-lowest[nvol](mani))*2
    return 0 COLOURED (0,0,0) as "cero", aazul COLOURED(0,255,255) as "azul", averde COLOURED(102,255,102) as "verde", aazul COLOURED (0,51,255) as "lazul", averde COLOURED (0,153,51) as "lverde", amani COLOURED (153,102,0) as "mani"

    Creo que no existen errores y sin embargo en PRT una vez definidos como histogramas azul y verde el reto como líneas me da un gráficosobre 0 y con una única línea que va oscilando sobre el valor de 0.

  11. Salve sono Sergio e sono un trader privato. Non sono un programmatore di indicatori ma sono molto interessato a conoscere il suo Gestur-Handling per individuare le mani forti e le mani deboli.Purtroppo non riesco a trovare il linguaggio dell’indicatore per inserirlo nella piattaforma ProRealTime. E’ possibile averlo? Grazie.

  12. Hola Gestur! me podrias pasar el codigo de Manipulacion para ProRealTime? Un saludo y gracias de antemano.

  13. Gracias josep,no te imaginas lo que me alegro de que gente como tu o como xabier garcia nos deis tanto por tampoco en este mundo de tiburones.Te deseo lo mejor gracias

  14. Hola Gestur,
    Excelente trabajo..! felicitaciones!. Quisiera saber si tienes este indicador instalado para Metatrader 4. Y si lo tienes, me lo podrías facilitar para incorporarlo en los mios..? no me lo quiero perder por nada..!
    Un abrazo.

  15. Buenas tardes.
    Primero, quiero darte las gracias por compartir tus conocimientos y tus herramientas con novatos como yo, que estamos intentando entrar en este mundo, sin perder demasiado dinero (aún no he empezado).
    Segundo, decirte que me estoy volviendo loco intentando copiar y pegar el código de «Manipulación» en PRT y me dá error tras error, así que no he podido programarlo.
    Te ruego que me remitas el código a mi correo. Mil gracias.
    Un saludo.

  16. Muchas gracias por compartir… me lo he instalado en prorealtime y ahora a probarlo, aunque tiene buena pinta 😀

    En los videos veo que lo usas siempre en graficos diarios… alguien lo ha probado en otras temporalidades?!?!

  17. Estimado Josep buen dia,

    muy interesante tu indicador, me surge una pregunta tienes alguno homologado para plataformas americanas, por ejemplo TWS IB.

    Gracias

    saludos desde Brasil.

    Carlos R

  18. Por lo que veo el indicador es super super interesante. Me encantaria probarlo. Tendras el codigo para Trade Station o sabras de alguien que lo haya implementado en esa plataforma siguiendo tu codigo.
    Desde ya muchisimas gracias!

  19. me dan estos errores de sintaxis.
    Alguien me puede ayudar, gracias

    Error de sintaxis:
    La siguiente variable no se usa nunca en el código:divazul
    La siguiente variable no se usa nunca en el código:divverde
    La siguiente variable no se usa nunca en el código:adapt
    La siguiente variable no se usa nunca en el código:zoomazul
    La siguiente variable no se usa nunca en el código:zoomverde
    La siguiente variable no se usa nunca en el código:azul
    La siguiente variable no se usa nunca en el código:verde

  20. He descargado correctamente su programa en la Plataforma ProRealTime. Muchas gracias por compartir su trabajo.
    Saludos de una novata, espero que por poco tiempo, en el mundo del trading.

  21. {manipulación metastock}
    m1:=Mov(C,50,S);
    m2:=Mov(C,3,S);
    m3:=Mov(C,6,S);
    volm:=Mov(V,80,S);
    dif1:=Mov(m2,2,S)-Mov(m1,2,S);;
    dif2:=Mov(m3,2,S)-Mov(m1,2,S);
    mani1:=(m2-m1-dif1)/2;
    mani2:=m3-m1-dif2;
    mani:=mani1+mani2;
    dif:=dif1;
    volp:=V/volm;
    If(volp=0,volp=1,0);
    If(volp=0,volm=1,0);
    divverde:=1;divazul:=1;

    a:=(dif/O)*volp;
    {b:=(C-m1)/C;}
    c1:=(O-Ref(C,-1))/Ref(C,-1);
    d:=(C-O)/C;

    verde:=((C-m1)/C)*volp;
    azul:=(mani+((d-c1)*volp))*volp-a;

    If(volp0,If(Ref(verde,-1)>1 OR Ref(verde,-1)1 OR Ref(aazul,-1) 8,averde = 8,
    If(averde 8,aazul = 8,
    If(aazul <-8,aazul = -8,aazul))

Comments are closed.