domingo, 26 de abril de 2015

MANIPULACIÓN ESTRAPERLO

En las lúgubres y escarpadas tierras de Andalucia , recluido en su castillo, el doctor VonMiguel Angel de bolsatrilera  trabajaba febrilmente con la idea de crear un indicador nuevo formado con partes de otros indicadores.

Utilizando los trabajos del colega Gestur (Josep Hervás), descubrió que el indicador manipulación era totalmente compatible con el estraperlo chivato.

Uniendo ambos códigos, eliminando algunos elementos del estraperlo chivato, la creación tomó imagen...

La criatura vive !!...

El aspecto del indicador era intimidante...


Las señales que se producían eran interesantes. El manipulación en la parte central daba información sobre la compra o venta de las manos fuertes (color azul)  y las manos débiles (color verde) ,así mismo la linea manipulación (color marron claro) al cruzarse por encima o por debajo de la linea cero, nos daba señales de compra o venta , que podrían ser cotejadas con la curva del estraperlo , así como la aparición de las barras chivatas...




Sin la autorización de Josep , pero con todo el respeto y reconocimiento por su labor , os pongo a vuestra disposición esta mezcla surgida de la mente de un pobre loco investigador de indicadores.
El código para la plataforma Prorealtime !totalmente gratis! ,es :
----------------------------------------------------------------------------------------------------

REM MANIPULACIÓN ESTRAPERLO

rem manipulación
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

rem estraperlo chivato

valor1=ExponentialAverage[12](close)
valor2=ExponentialAverage[26](close)
valor3=valor1/valor2
valor4=ExponentialAverage[9](valor3)
mimacd=valor3/valor4-1
val1=Exponentialaverage[5](close)
val2=ExponentialAverage[13](close)
mmacd=val1/val2-1
gd2=average[60](mmacd)
sd=1*STD[60](mmacd)
bollsup=gd2+sd
bollinf=gd2-sd

IF BARINDEX > 1 THEN
IF ZigZag[zz](Close)[2] < ZigZag[zz](Close)[1] AND ZigZag[zz](Close)[1] > ZigZag[zz](Close) THEN
Top = Close[1]
DiMD = mimacd[1]
IF Top <> Top[1] THEN
TwoPrevTop = PrevTop
PrevTop = Top[1]
Top = Top
TwoPrevDiMD = PrevDiMD
PrevDiMD = DiMD[1]
DiMD = DiMD
ENDIF
ENDIF

IF ZigZag[zz](Close)[2] > ZigZag[zz](Close)[1] AND ZigZag[zz](Close)[1] < ZigZag[zz](Close) THEN
Bottom = Close[1]
DiMDb = mimacd[1]
IF Bottom <> Bottom[1] THEN
TwoPrevBottom = PrevBottom
PrevBottom = Bottom[1]
Bottom = Bottom
TwoPrevDiMDb = PrevDiMDb
PrevDiMDb = DiMDb[1]
DiMDb = DiMDb
ENDIF
ENDIF
ENDIF

IF ((Top >= PrevTop AND DiMD CROSSES UNDER PrevDiMD) OR (Top CROSSES OVER PrevTop AND DiMD <= PrevDiMD)) OR ((Top >= TwoPrevTop AND DiMD CROSSES UNDER TwoPrevDiMD) OR (Top CROSSES OVER TwoPrevTop AND DiMD <= TwoPrevDiMD)) THEN
DivergeBottom =-1.8
ELSIF ((Top <= PrevTop AND DiMD CROSSES OVER PrevDiMD) OR (Top CROSSES UNDER PrevTop AND DiMD >= PrevDiMD)) OR ((Top <= TwoPrevTop AND DiMD CROSSES OVER TwoPrevDiMD) OR (Top CROSSES UNDER TwoPrevTop AND DiMD >= TwoPrevDiMD)) THEN
DivergeBottom = -1.8
ELSE
DivergeBottom = 0
ENDIF

IF ((Bottom >= PrevBottom AND DiMDb CROSSES UNDER PrevDiMDb) OR (Bottom CROSSES OVER PrevBottom AND DiMDb <= PrevDiMDb)) OR ((Bottom >= TwoPrevBottom AND DiMDb CROSSES UNDER TwoPrevDiMDb) OR (Bottom CROSSES OVER TwoPrevBottom AND DiMDb <= TwoPrevDiMDb)) THEN
DivergeTop = 1.8
ELSIF ((Bottom <= PrevBottom AND DiMDb CROSSES OVER PrevDiMDb) OR (Bottom CROSSES UNDER PrevBottom AND DiMDb >= PrevDiMDb)) OR ((Bottom <= TwoPrevBottom AND DiMDb CROSSES OVER TwoPrevDiMDb) OR (Bottom CROSSES UNDER TwoPrevBottom AND DiMDb >= TwoPrevDiMDb)) THEN
DivergeTop = 1.8
ELSE
DivergeTop = 0
ENDIF


return DivergeTop COLOURED (0,150,50) as "chivatoalcista",DivergeBottom COLOURED (200,0,0) as "chivatobajista",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",mmacd*100 as "LM",bollsup*100 as "BSUP",bollinf*100 as "BINF"

------------------------------------------------------------------------------------------------------------
En cuadro de variables:

zz = 3

11 comentarios:

  1. Miguel, cada día me gusta más leerte. Algún día compartiremos unos espetos y cervezas en La Mezquitilla.

    ResponderEliminar
    Respuestas
    1. Gracias.Me gusta que le guste.Anotado queda lo de los espetos.
      Un saludo.

      Eliminar
  2. Popular está throw backeando su mm200. Si confirma el soporte sería buena señal de entrada.

    https://twitter.com/Lupostrike/status/592297561899323392

    Gracias Miguel. Te leo desde hace tiempo y me has proporcionado buenas ideas.

    ResponderEliminar
    Respuestas
    1. Esa es la idea de POP.Si las ideas que le han proporcionado este cutre blog le han servido para sacar algún provecho,me doy por satisfecho.
      Un saludo y gracias a tí.

      Eliminar
  3. Así que voy a intentar corresponderte con una idea que vengo experimentando hace tiempo.

    Te he visto combinar el ADX con DI+ y con DI- y dejando siempre oculta la linea DI.

    Un día pensé en ajustar el DI a 200 periodos, que al fin y al cabo es el santo grial de los analistas, la media de 200 periodos.

    El resultado es sorprendente porque parece proporcionar indicios sobre suelo y techo de mercado cuando se le aplican unas medias móviles que ademas también ayudan a determinar la tendencia del precio.

    ResponderEliminar
    Respuestas
    1. Me gustaría si puede ser,me mandases un gráfico con ese ADX a 200,si lo veo ma o meno lo comprendo.
      Mi correo : castillomorenom@gmail.com

      Eliminar
  4. Buenos dias Miguel Angel,
    me podrias indicar como se ponen las variables en Prorealtime?
    Voy a variables /añadir perono se como rellenarlo....
    Muchas gracias por tu blog y por compartirlo.
    Juan

    ResponderEliminar
    Respuestas
    1. Si te vas a la parte derecha del blog, en ETIQUETAS, y te lees GUIA DUMMIE PARA ESTRAPERLO,vas a cojer la idea de como se hace.
      Un saludo Juan y felicidades hoy en tu santo.

      Eliminar
    2. Gracias Miguel Angel y ayer mi cumple, jjjj
      seria algo asi:
      Nombre usado en programa: zz / Etiqueta en ventana de propiedades: zz / Tipo: Entero / Restriccion: mayor que 0 / Valor por defecto: 3
      Los colores ya los he puesto y los histogramas pero la duda la tengo en añadir la variable.
      Muchas gracias,
      Juan

      Eliminar
  5. Este comentario ha sido eliminado por el autor.

    ResponderEliminar
    Respuestas
    1. Este comentario ha sido eliminado por el autor.

      Eliminar