sábado, 28 de marzo de 2015

NO ME TOQUES LAS BOLLINGUER !

Perry Kaufman nos descubrió una propiedad del movimiento de los precios al crear las Bandas de Bollinguer.
La volatilidad se alterna aumentando y disminuyendo constantemente.

Esa cualidad es la que nos muestra el indicador de las Bandas de Bollinguer,de manera que cuando las Bandas se estrechan es síntoma de baja volatilidad y señal de que cuando ocurre esto, a ese movimiento estrecho le sigue un ensanchamiento de la Banda que augura una alta volatilidad que pronostica buenos tirones del precio.

Pensé en un indicador que mostrase estos estrechamientos de las Bandas....y ya lo tenía.
El Atlas Mini de Blai5 http://www.blai5.net/www/ consiste precisamente en detectar estrechamientos significativos de las Bandas ,sin embargo, yo quería que me mostrase los estrechamientos de la Banda en su configuración por defecto.
Tan fácil como cambiar la parte del código del Atlas Mini :

dbbmed = ExponentialAverage[120](dbb)  por...

dbbmed = Average[20](dbb)

De esta forma tenemos un Atlas Mini que nos enseña en forma de histograma los estrechamientos de una Banda de Bollinguer en su configuración estándar tal y como aparece en este grafiquillo...


Lo curioso y cachondo es que el Bollinguer Contracción (como le he llamado a esta versión del Atlas Mini) puede ser añadido perfectamente en el Estraperlo Pro ESTRAPERLO PRO y así tendremos otra señal que mirar en el batiburrillo de señales del estraperlo...


Algo más a tener en cuenta ..¿ no creeís ?.


nota : El Atlas Mini puede ser añadido también al Estraperlo chivato,de hecho, Txapi http://labolsacontxapi.blogspot.com.es/  ya lo está probando.


domingo, 22 de marzo de 2015

PIMP MY INDICATOR

Hey socios ! , bienvenidos a "tuneando mi indicador".
Hoy vamos a echarle una mano al colega Miguel Angel de bolsatrilera que nos ha pedido desesperadamente que le tuneemos un Rsi bastante deteriorado.
El problema que nos hemos encontrado es que el Rsi es un clásico ya antiguo y es díficil encontrar indicadores de repuesto para tunearlo.
Queríamos añadir algún elemento que le diera un valor añadido al tiempo de personalizarlo.


Para ello , hemos tenido que buscar en un foro italiano sobre Prorealtime , donde hemos encontrado piezas antiguas de recambio.
Cualquier cosa no nos valía para este modelo  tradicional que es el Rsi.
La solución ha sido añadir el indicador Better Volume que apareció en REE, ALTO VOLTAJE .
Mediante un código de esta tienda de accesorios para tunning , hemos conseguido transformar el destartalado Rsi de Miguel en una potente herramienta , con la que seguro podrá vacilar en el barrio.
Y ahora , ha llegado el momento de que veaís el resultado con un gráfico de Abertis...


Si colegas ! , ha quedado genial !,el volumen del Better Volume nos indicó una barra en color magenta que se identifica con el final/principio de una fase de euforía/pánico . En el Rsi hay añadida una media , cuyo cruce alcista se acaba de producir a cierre de la sesión del Viernes....
A Miguel Angel le ha encantado y nos ha felicitado por tunear su Rsi , ¿ y a tí que te parece ?








El código original completo para la plataforma Prorealtime para vuestra curiosidad es :

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

REM RSI Better Volume
// by Drenaggio Enero 2009 in foro finanzaonline

//////////////////////////////////////////////////////

REM Parametri: Oshift=30 Vshift=5 period=14 RSIMassimo=80 RSIMinimo=20

////////////////////////////////////////////////////
vv1=volume
vv2=range*volume
if range<>0 then
vv3=volume/range
endif
vv4=average[100](vv1)
if vv1=lowest[20](vv1) then
lowvol=vv1
else
lowvol=0
endif
if vv2=highest[20](vv2) then
climax=vv1
else
climax=0
endif
if vv3=highest[20](vv3) then
chum=vv1
else
chum=0
endif
if vv2=highest[20](vv2) and vv3=highest[20](vv3) then
chumclim=vv1
else
chumclim=0
endif
if vv3=lowest[20](vv3) then
lowchum=vv1
else
lowchum=0
endif

REM RSI

rialzo=MAX(0,Customclose-Customclose[1])
ribasso=MAX(0,Customclose[1]-Customclose)
mmRialzo=wilderaverage[period](rialzo)
mmRibasso=wilderaverage[period](ribasso)
RS=mmRialzo/mmRibasso
mioRSI=100-100/(1+RS)

avolume=average[Oshift](volume)

If Barindex<Oshift then
mioRSI2=undefined
else
avolume=avolume[1]
mioRSI2=((mioRSI/100)*Vshift)*avolume
endif

avRSI=average[period*2](mioRSI2)
mRSI=avolume*(Vshift/2)

mioMax=(RSIMassimo/100)
mioMin=(RSIMinimo/100)
RSImin=(avolume*Vshift)*mioMin
RSIMax=(avolume*Vshift)*mioMax




return vv1 coloured(0,204,204) as "volume",lowvol coloured(204,204,0) as "Low-V Low-R",climax coloured(255,0,0) as "climax High-V High-R",chum coloured(0,204,0) as "High-V Low-R",lowchum as "Low-V High-R",chumclim coloured(204,0,204) as "climax High-V Low-R",vv4 as "average", mioRSI2 as "RSI", avRSI as "Media RSI", RSImin as "Ipervenduto", mRSI as "RSI 50", RSIMax as "Ipercomprato"

-----------------------------------------------------------------------------------------------------
No olvideís de poner los parámetros que aparecen en la cabecera del código en el cuadro de variables.




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...

sábado, 7 de marzo de 2015

COMPRAR EL PRIMER DIA DEL MES...FUNCIONA ?

Solo no puedes, con amigos sí.
Esta frase que puso de moda un programa infantil ochentero, viene al dedillo en el artículo de hoy gracias a jose7674 , el creador del mítico blog http://jose7674.blogspot.com.es/
Pasando una crísis de inspiración le pregunté a Jose si tenía alguna cosilla interesante por ahí para publicar en este blog.
Lo que me mandó, no es solo una curiosidad , es un completo basket sobre una pauta estacionaria , cuyo párrafo es reproducido íntegramente.



Comprar el 1er dia del mes... sigue funcionando?

Bueno, he hecho una revisión al sistema clásico de comprar el primer dia del mes, para ver si realmente es algo a tener en cuenta en nuestros sistemas de Trading.

Este sistema, compra en la apertura del 1er dia de trading y vende en la apertura del 2. Sin más. Fácil y rápido, ninguna complicación y fácil de programar.

He desarrollado 2 variantes del sistema clásico, y los he pasado por el Ibex, DAX y DJI.
El primer sistema (el inferior), compra el primer dia de trading en apertura y vende el segundo dia en apertura
El 2 sistema (en el medio), aplica el filtro de una media. Si el precio esta por encima de dicha media, se compra en la apertura del 1er dia del mes y se vende en la apertura del segundo
El 3er sistema aplica una media de control y, ademas, añade un stoploss optimizable del 1-5%.
Asi que vamos a ver los resultados en el Ibex...


 Como podeis ver, resultados similares... pero el sistema 3 (el de arriba), reduce el drawdown y el número de operaciones, con lo que se reducen las comisiones (que no se han incluido en el backtest).
Las pruebas se han hecho en el contado del ibex.

DAX 30

 Mismos resultados. El sistema con filtro en la media y stoploss gana más y opera menos.
----------------
Vamos a ver el DAX (en este caso futuro) desde el 2007. Es interesante porque en los backtests parece que el sistema se ha aplanado en los ultimos años y ha dejado de funcionar tan bien como lo hacia...


 Parece que teniamos razón... el sistema de comprar sin más se mantiene plano, con ligeras ganancias y pérdidas.

Los sistemas con filtros mejoran (mucho) el resultado. Y si añadimos el stoploss aun mejora muchísimo más.
---------------------------
Y por ultimo el DJI.


 Aquí los 3 sistemas consiguen unos beneficios en puntos similares. Pero, nuevamente, el sistema 3 consigue ganar prácticamente lo mismo operando menos y reduciendo el drawdown, por lo que su curva es mucho mas estable y las comisiones se ven reducidas.

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

Os dejo el sistema 3 para prorealtime
////SISTEMA DE COMPRA EL 1ER DIA DEL MES
////Por jose7674

c2 = close > average[m](close)

If (MONTH = 1 or MONTH = 3 or MONTH = 5 or MONTH = 7 or MONTH = 8 or MONTH = 10 or MONTH = 12) and DAY = 31  and c2 then
buy 1 shares at market
set stop %loss sl
ENDIF

If (MONTH = 1 or MONTH = 3 or MONTH = 5 or MONTH = 7 or MONTH = 8 or MONTH = 10 or MONTH = 12) and (DAY = 29 or day=30)  and (dayofweek =5) and c2 then
buy 1 shares at market
set stop %loss sl
ENDIF


IF MONTH = 2 and DAY = 28 and c2 then
buy 1 shares at market
set stop %loss sl
ENDIF

IF MONTH = 2 and (DAY = 26 or day=27) and (dayofweek =5) and c2 then
buy 1 shares at market
set stop %loss sl
ENDIF
//

If (month = 4 or MONTH = 6 or MONTH = 9 or MONTH =11) and DAY = 30 and c2 then
buy 1 shares at market
set stop %loss sl
ENDIF

If (month = 4 or MONTH = 6 or MONTH = 9 or MONTH =11) and (DAY = 28 or day=29) and (dayofweek =5) and c2 then
buy 1 shares at market
set stop %loss sl
ENDIF

if longonmarket then
sell at market
endif
////FIN



nota: Agradezcamos desde aquí semejante currada de jose7674  digna de haber aparecido en su blog y que amablemente me ha cedido para incluirlo en este.

miércoles, 4 de marzo de 2015

ABERTIS Y EL KONKORDE INVERSO

El orden de los factores no altera el producto.
Eso es lo que me decían en el colegio cuando era chiquitillo.
El caso es que me dió por trastear el indicador Konkorde de Blai5 http://www.blai5.net/www/
¿ y si cambiara de posición el IVN (índice de volumen negativo) y el IVP (índice de volumen positivo)que aparecen en la fórmula?

El resultado, aunque es lo mismo por aquello del orden de los factores, me permite , a mi modo de ver, una interpretación más completa.
Veo cosas que antes no veía con el konkorde original, quizás y probablemente porque soy muy torpe.

En esta "versión", las manos fuertes (azules), se encuentran encima (si estan comprando) o debajo (si estan vendiendo) de la curva del Konkorde...


En Abertis , creo haber detectado una distribución , ya que las manos fuertes han estado vendiendo en el último tramo lateral , y ayer a cierre de mercado se ha producido una señal de venta por el cruce de la curva sobre su media (en color rojo)...


Si las manos fuertes son los que dominan el mercado, los tiburones, los institucionales, en resumen , los chulos del mercado, su movimiento reciente de venta me índica que la zona de máximos del recuadro del gráfico se vá a convertir en una zona de resistencia y la caída del valor está servida, digo yo...
Otra cosa más para experimentar.