Mostrando entradas con la etiqueta ESTRAPERLO PRO. Mostrar todas las entradas
Mostrando entradas con la etiqueta ESTRAPERLO PRO. Mostrar todas las entradas

sábado, 14 de marzo de 2015

ESTRAPERLO PRO

Me encontraba ensimismado viendo como crecían las visitas a este blog , cuando me dió por mirar el correo y encontré admirado a alguien que no solo se había fijado en el estraperlo chivato , sino que me mandaba un estraperlo modificado.

Mi aumentado ego no podía imaginar que a alguien se le ocurriera aportar algo nuevo con este indicador pero Miguel Leugim había ido más allá, dándome una lección de humildad.

Miguel me envió el código para la plataforma Prorealtime del que denominó estraperlo pro con un gráfico como este...


El estraperlo pro es una nueva vuelta de tuerca que incorpora elementos que a mi modo de ver presentan una mejora respecto al original.

Se incluyen unas barras de volumen (en color azul) usando el CPM (capital proporcional medio) de Javier Alfayate, con la peculiaridad de que cuando aparecen de forma aislada nos indican volúmenes climáticos  y cuando aparecen más de una de manera consecutiva, nos están indicando una acumulación o una distribución.
Las barras chivatas contienen un trozo de código añadido y la curva del estraperlo cambia de color entorno a una media de 50 periodos ,mostrándonos una tendencia filtrada.

El estraperlo pro incluye de esta manera mucha más información y más completa.


Gracias a la amabilidad de Miguel ,os pongo a vuestra disposición el código  para vuestro uso y disfrute y sin tener que pagar ni un duro...

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

REM ESTRAPERLO PRO
REM Programado por Miguel Angel Castillo. Octubre 2014
REM Parte código basado en MACD DiNAPOLI DIVERGENCE by DUTCHY
REM Parte de código de Macd Normalisé by hk_lisse
REM Parte de código de Capital Proporcional Medio by Javier Alfayate
REM Modficado por sud_miguel@hotmail.com Febrero 2015

REM Indicador estraperlo
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
se=WilderAverage[m](mmacd)
gd2=average[60](mmacd)
sd=1*STD[60](mmacd)
bollsup=gd2+sd
bollinf=gd2-sd

a=mimacd*150
alza1=a>a[1]and a [1]<a[2]
baja1=a<a[1]and a[1]>a[2]
if alza1 then
col1=1
elsif baja1 then
col1=-1
endif

if close>WeightedAverage[c] then
col2=1
elsif close<WeightedAverage[c] then
col2=-1
endif

REM Indicador Capital Proporcional Medio
capital = volume * close
volmax = highest[200](capital)
vol = ((capital*100/volmax)*4/5)
volmed = ExponentialAverage[50](vol)
CPM = (vol - volmed)
volumen = capital / (Average[20](capital)[1]) > 2 AND CPM > 0
IF volumen THEN
bvol = 1.2
ELSE
bvol = 0
ENDIF

REM Indicador Dinapoli Divergence
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 a COLOURED BY col1 AS "MACD", mmacd*100 COLOURED BY col2 AS "LM", se*100 AS "S", bollsup*100 AS "BSUP", bollinf*100 AS "BINF", DivergeTop COLOURED (0,150,0) AS "Chivatoalcista", DivergeBottom COLOURED (150,0,0) AS "Chivatobajista", bvol COLOURED (0,0,150) AS "Volumen"

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

En cuadro de variables:

m = 20
zz = 3
c = 50

Ahora solo os queda probarlo, no teneís excusa, ya me contareís...