Rankia España Rankia Argentina Rankia Argentina Rankia Chile Rankia Chile Rankia Colombia Rankia Colombia Rankia México Rankia México Rankia Perú Rankia Perú Rankia Portugal Rankia Portugal Rankia USA Rankia USA
Acceder
3 recomendaciones

Buenos días!

El gráfico de debajo lo dice todo. Seguimos 100% laterales y no tiene pinta de resolverse pronto. Por arriba hay dos resistencias: el nivel actual (2060) y el nivel 2090. Por debajo hay dos soportes aunque están muy juntos. Podríamos decir que es la banda 1960-1970. Mientras el mercado no se salga por arriba o por abajo no hay mucho que hacer. Paciencia… Hoy vamos a dedicar el informe a analizar la forma de operar divergencias. Va a estar interesante.

divergencia sp

Entre la batería de indicadores que utilizamos para detectar peligro o dirección en los mercados tenemos:

  • La tendencia medida por las medias
  • Los nuevos mínimos del NYSE
  • La volatilidad
  • La línea AD y en especial sus divergencias

Si se fija todo es 100% objetivo menos las divergencias con la línea Ascenso-Descenso. Esto requiere interpretación. En el informe de hoy pretende eliminar la subjetividad de las divergencias. Para ello hay que buscar un criterio de comparación. Puesto que la línea AD es continua, llena de oscilaciones, y no limitada, es necesario aplicarle un oscilador para que podamos reducirla en un rango y ver dónde tiene picos más altos (div. alcista) y valles más bajos (div. bajista) que por supuesto hay que comparar con el precio. Por eso voy a aplicar un RSI a la línea AD. El resultado es lo que ve-mos debajo en rojo: 

rsi

Como se puede ver en la imagen la línea AD, que antes valía 0.6 ahora toma valores comprendidos entre +100 y 0. Así, en el momento actual toma el valor de 40 y también vemos que ha estado oscilando entre +80 y 10. Pero esto no es suficiente porque seguimos teniendo una línea continua, que tiene miles de oscilaciones, y aunque para el ojo humano esto no es un problema pues para un ordenador sí, hay que dejar solo “picos y valles” para que se pueda comparar. Lo que hacemos ahora es insertar la función ZIG de Amibroker que solo considera cambios de sentido si hay una variación porcentual que supere un umbral (p.e. el 10%). Así, solo nos quedan los giros que sobrepasan este umbral del 10%. Es lo que vemos debajo:

trading

En verde tenemos la línea AD original y ahora en azul tenemos un ZIG de la línea roja que veíamos en la página segunda de este informe. La línea azul resultante es algo que ya podemos utilizar para comparar por picos y valles. Ahora hay que hacer una rutina que vaya pico por pico y valle por valle mirando si el precio estaba en divergencia. Ya sabe:

  • Divergencia alcista: Oscilador con los mínimos más altos y el precio tiene los mínimos más bajos.
  • Divergencia bajista: Oscilador con los máximos más bajos y el precio tiene los máximos más altos.

En Amibroker hay que saber manejar los bucles para ir pico por pico comparando.

amibroker

La rutina es simétrica para los valles, y al final del informe me la voy a anexar completa. Ahora vamos al gráfico para ver que realmente funciona. Empezando por la izquierda vemos una divergencia alcista. El oscilador (la línea AD modificada) está repuntando al alza haciendo dos valles más altos. El precio está haciendo dos valles más bajos. Luego tenemos una divergencia bajista. El oscilador acaba de marcar un pico más bajo. El precio sigue marcando picos más altos. Se trata de una divergencia bajista. El código pone un punto verde o rojo donde detecta una divergencia.

sp500

Aunque no tiene sentido simular esto voy a mostrarle los resultados de simular esta lógica y luego le explico por qué afirmo que no tiene sentido simularlo. Si simulamos con el SP500, un futuro mini, desde el año 2000 hasta ayer, y con comisiones de $100 por operación, tenemos:

resultado

Que son excelentes. Fíjese que la lógica acierta un 76% de las veces y que tenemos un profit factor de 3.75. La ganancia promedio por operación es de casi 2700 dólares. Sin embargo no podemos considerar como válidos estos resultados porque la función ZIG del Amibroker necesita un cambio porcentual mayor de un umbral para confirmar la nueva dirección. Supongamos que ese umbral es un 10%. Hasta tener un cambio de sentido del 10% no daremos por válido un pico o un valle. Sin embargo en la página anterior se puede ver bien que cada pico o valle es mostrado en el momento en el que ocurre. Esto es porque la función ZIG “mira al futuro” y pone un pico o un valle donde unos días después se confirmará. Es decir, mira las barras siguientes para saber si hubo un cambio del 10% y entonces pone un pico o un valle.

Programar esto sin “mirar al futuro” es algo que dejaremos para otro informe. De momento nos conformamos con tener una herramienta objetiva para saber si hay o no hay divergencias entre la línea AD y el Precio. Y también tenemos la posibilidad de esperar (me refiero a tiempo real, no en simulación) hasta ese cambio porcentual y entonces consolidaremos esa señal. Hasta mañana en el vídeo!

ANEXO: CÓDIGO DE DIVERGENCIAS

//-------------------------------------------------------

// Formula Name: RSI divergence

// Author: Rajandran R

// Url: www.marketcalls.in

// Adapted to Advanced-Declined Line by Oscar G. Cagigas

// february 11th 1015

//-------------------------------------------------------

//MULTIPLICADORES//

PointValue = 50; PositionSize = MarginDeposit =1;

//COMISIONES//

SetOption("PriceBoundChecking",1);

SetOption("CommissionMode", 2);

SetOption("commissionamount",50); //COMISIÓN INDIVIDUAL (ENTRADA O SALIDA) 

//LINEA AD//

ind1=Foreign("IIAA.Z","C");

ind2=Foreign("IIAD.Z","C");

ind = MA(ind1-ind2,20);

GraphXSpace=7;

//PARAMETROS OPTIMIZABLES//

n=Optimize("ZIG",17,5,50,1);

per = Optimize("per",11,1,20,1);

Buy=Sell=0;

Var = Zig(RSIa(ind,per), n);

t= Trough(RSIa(ind,per), n, 1);

p= Peak(RSIa(ind,per), n, 1);

x[0] =Var[0]; price[0] = C[0];

j=0;

// bearish divergence

for ( i=0; i<BarCount; i++)

{

if(Var[i] == p[i])

{

j++;

x[j] =Var[i];

price[j] =C[i]

; if(x[j] <x[j-1] && price[j-1]< price[j])

Sell[i] =1;

}

}

// bullish divergence

for ( i=0; i<BarCount; i++)

{

if(Var[i] == t[i])

{

j++;

x[j] =Var[i];

price[j] =C[i];

if(x[j] >x[j-1] && price[j]<price[j-1])

Buy[i] =1;

}

}

Short=Sell;

Cover=Buy;

Plot(Var, "", 39);

PlotShapes ( IIf(Sell, shapeSmallCircle, shapeNone), colorRed, 0 , Var,0);

PlotShapes( IIf(Buy, shapeSmallCircle, shapeNone), colorBrightGreen, 0, Var,0);

Title ="RSI Divergence" ;

  1. en respuesta a David Snchz
    #2
    Oscar Cagigas

    Sí, esto no es estable hasta que no se supera un umbral mínimo. Una vez superado ese umbral ya se consolida. Saludos,

    1 recomendaciones
  2. #1
    David Snchz

    Hola Óscar!
    ¿Puede ser que esta herramienta para marcar divergencias nos de hoy una divergencia y mañana ya no la marque? Por lo que comentas de mirar al futuro.

    Un saludo!

3 recomendaciones
Escribe aquí tu comentario...
Este sitio web usa cookies para analizar la navegación del usuario. Política de cookies.
Cerrar