domingo, 5 de junio de 2016

BETTER VOLUME VOLÁTIL

Un grupo de operadores , amiguetes de toda la vida , se habían reunido aquel fin de semana para ir a la convención anual de traders que ese año se celebraba en Las Vegas.







Un evento donde la flor y nata , los mejores de todo el mundo , cambiaban impresiones y compartían novedades de los últimos métodos de análisis bursátiles.
Instalados desde el Viernes por la mañana en una lujosa habitación de un hotel , empezaron el dia con el alcohol para seguir con las drogas hasta altas horas de la noche.

El despertar a la mañana siguiente fué traumático...


Phil , tambaleándose , se acercó al ordenador portátil que estaba encendido.
No daba crédito a lo que estaba viendo.
El dinero que la pandilla había depositado para ese fin de semana se encontraba en una cuenta de un broker y la totalidad del montante en una posición corta con CFDs en Repsol ...

tranqui , he sido yo...

¿ pero que has hecho pedazo de majarón ?....

¿ no os acordaís ?...

Estuvimos viendo un indicador publicado por el tio que hace el blog de bolsatrilera.
Al nota , se le había ocurrido añadir una desviación estándar a un código de una variante del Better Volume que encontró en un foro.
De manera que cuando una barra de volumen supera la desviación , además de avisar de un volumen anormal , nos dice qué clase de volumen es al tomar el color que le corresponde por ese Better Volume.
Mira , mira , aquí en el pantalón tengo la chuletilla del significado de los colores según el volumen :

azul = volumen
rojo = climax Up ; inicio o final de tendencia bajista o pullback en tendencias bajistas.
magenta = euforia/pánico fase de descarga , agitación más climax.
negro = climax Down ; Inicio o final de tendencia bajistas o pullback de tendencias alcistas. ( en fondo de gráfico negro aparece en color blanco).
verde = churm/ agitación; final de tendencias o recogida de beneficios en mitad de tendencia. entrada ó salida de profesionales .

Hicimos la prueba con el gráfico de Repsol , fijaté....


¿Ves ? , trazamos dos niveles de soporte en base de esos volúmenes anormales y marcamos la vela donde ha aparecido el último volumen que ha superado la desviación.
Es de color verde , que es el color que identifica a los chulos del mercado osea, los profesionales.
No hay duda de que el Viernes cuando lo estabamos viendo , la barra del precio ya indicaba un cierre por debajo del precio anterior que contenía esa barra verde.
Resultado : los profesionales quieren salir y pegarle una bajadilla al título y el primer soporte se encuentra en la zona de 10,75 - 10,60...
Me pareció buena idea meter la pasta en esa operación y me disteís vuestro apoyo.

Ya estabamos un poco pedos , así que antes de que perdiéramos el conocimiento y antes de que cerrara el mercado , hicimos el traspaso del efectivo , lanzamos la orden y guardamos el indicador en nuestra plataforma de Prorealtime :

--------------------------------------------------------------------------------------------------
REM BETTER VOLUME VOLÁTIL
//de la fórmula del indicador Trampoline Better Volume
// By Mapon Septiembre 2009
//publicado en foro Aktienboard
// con añadido de una desviación estándar por Miguel angel Castillo
// publicado en bolsatrilera Junio-2016

// Parameter: History = Boolean
// Parameter: Use2Bars = Boolean
// Parameter: Lookback = 20

History =0 or 1
Use2Bars = 0 or 1
Lookback = 20

ONCE Condition1 = 0
ONCE Condition2 = 0
ONCE Condition3 = 0
ONCE Condition4 = 0
ONCE Condition5 = 0
ONCE Condition6 = 0
ONCE Condition7 = 0
ONCE Condition8 = 0
ONCE Condition9 = 0
ONCE Condition10 = 0
ONCE Condition11 = 0
ONCE Condition12 = 0
ONCE Condition13 = 0
ONCE Condition14 = 0
ONCE Condition15 = 0
ONCE Condition16 = 0
ONCE Condition17 = 0
ONCE Condition18 = 0
ONCE Condition19 = 0
ONCE Condition20 = 0

VolValue = Volume
LowVolValue = VolValue
ClimaxUpValue = VolValue
ClimaxDownValue = VolValue
ChurnValue = VolValue
ClimaxChurnValue = VolValue
a=Average[20](VolValue)
dv=STD[20](VolValue)
AVVolume = a+2*dv

IF History = 0 THEN
BI = 400
ELSIF History = 1 THEN
BI = Lookback
ENDIF

IF BARINDEX > BI AND Volume <> 0 THEN


// ******************************************************************************* *************

IF Close > Open THEN
Value1 = Volume * (Range / (2 * Range + Open - Close))
ELSIF Close < Open THEN
Value1= Volume * ((Range + Close - Open) / (2 * Range + Close - Open))
ENDIF
IF Close = Open THEN
Value1 = 0.5 * Volume
ENDIF
Value2 = Volume - Value1

Value3 = Value1 + Value2
Value4 = Value1 * Range
Value5 = (Value1 - Value2) * Range
Value6 = Value2 * Range
Value7 = (Value2 - Value1) * Range
IF Range <> 0 THEN
Value8 = Value1 / Range
Value9 = (Value1 - Value2) / Range
Value10 = Value2 / Range
Value11 = (Value2 - Value1) / Range
Value12 = Value3 / Range
ENDIF

Value13 = Value3 +Value3[1]
Value14 = (Value1+Value1[1]) * (Highest[2](High) - Lowest[2](Low))
Value15 = (Value1+Value1[1] - Value2 - Value2[1]) * (Highest[2](High) - Lowest[2](Low))
Value16 = (Value2 + Value2[1]) * (Highest[2](High) - Lowest[2](Low))
Value17 = (Value2 + Value2[1] - Value1 - Value1[1]) * (Highest[2](High) - Lowest[2](Low))
IF Highest[2](High) <> Lowest[2](Low) THEN
Value18 = (Value1 + Value1[1]) / (Highest[2](High) - Lowest[2](Low))
ENDIF
Value19 = (Value1 + Value1[1] - Value2 - Value2[1]) / (Highest[2](High) - Lowest[2](Low))
Value20 = (Value2 + Value2[1]) / (Highest[2](High) - Lowest[2](Low))
Value21 = (Value2 + Value2[1] - Value1 - Value1[1]) / (Highest[2](High) - Lowest[2](Low))
Value22 = Value13 / (Highest[2](High) - Lowest[2](Low))

IF Use2Bars = 0 THEN
Condition1 = Value3 = Lowest[Lookback](Value3)
Condition2 = Value4 = Highest[Lookback](Value4) AND Close > Open
Condition3 = Value5 = Highest[Lookback](Value5) AND Close > Open
Condition4 = Value6 = Highest[Lookback](Value6) AND Close < Open
Condition5 = Value7 = Highest[Lookback](Value7) AND Close < Open
Condition6 = Value8 = Lowest[Lookback](Value8) AND Close < Open
Condition7 = Value9 = Lowest[Lookback](Value9) AND Close < Open
Condition8 = Value10 = Lowest[Lookback](Value10) AND Close > Open
Condition9 = Value11 = Lowest[Lookback](Value11) AND Close > Open
Condition10 = Value12 = Highest[Lookback](Value12)
ELSIF Use2Bars = 1 THEN
Condition11 = Value13 = Lowest[Lookback](Value13)
Condition12 = Value14 = Highest[Lookback](Value14) AND Close > Open AND Close[1] > Open[1]
Condition13 = Value15 = Highest[Lookback](Value15) AND Close > Open AND Close[1] > Open[1]
Condition14 = Value16 = Highest[Lookback](Value16) AND Close < Open AND Close[1] < Open[1]
Condition15 = Value17 = Highest[Lookback](Value17) AND Close < Open AND Close[1] < Open[1]
Condition16 = Value18 = Lowest[Lookback](Value18) AND Close < Open AND Close[1] < Open[1]
Condition17 = Value19 = Lowest[Lookback](Value19) AND Close < Open AND Close[1] < Open[1]
Condition18 = Value20 = Lowest[Lookback](Value20) AND Close > Open AND Close[1] > Open[1]
Condition19 = Value21 = Lowest[Lookback](Value21) AND Close > Open AND Close[1] > Open[1]
Condition20 = Value22 = Highest[Lookback](Value22)
ENDIF

// ************************************************** *******************************************

IF (Condition1 or Condition11) THEN
LowVol = LowVolValue
ELSE
LowVol = 0
ENDIF

IF (Condition2 or Condition3 or Condition8 or Condition9 or Condition12 or Condition13 or Condition18 or Condition19) THEN
ClimaxUp = ClimaxUpValue
IF LowVol <> 0 THEN
ClimaxUp = ClimaxUpValue / 2
ENDIF
ELSE
ClimaxUp = 0
ENDIF

IF (Condition4 or Condition5 or Condition6 or Condition7 or Condition14 or Condition15 or Condition16 or Condition17) THEN
ClimaxDown = ClimaxDownValue
IF LowVol <> 0 OR ClimaxUp <> 0 THEN
ClimaxDown = ClimaxDownValue
ENDIF
ELSE
ClimaxDown = 0
ENDIF

IF (Condition10 or Condition20) THEN
Churn = ChurnValue
IF LowVol <> 0 OR ClimaxUp <> 0 OR ClimaxDown <> 0 THEN
Churn = ChurnValue / 2
ENDIF
ELSE
Churn = 0
ENDIF

//IF (Condition10 or Condition20) AND (Condition2 or Condition3 or Condition4 or Condition5 or Condition6 or Condition7 or Condition8 or Condition9 or Condition12 or Condition13 or Condition14 or Condition15 or Condition16 or Condition17 or Condition18 or Condition19) THEN
IF Churn <> 0 AND (ClimaxUp <> 0 OR ClimaxDown <> 0) THEN // Magenta
ClimaxChurn = ClimaxChurnValue
ELSE
ClimaxChurn = 0
ENDIF
ENDIF

IF ClimaxUp>AVVolume THEN
ClimaxUp=ClimaxUp
ELSE
ClimaxUp=0
ENDIF

IF ClimaxDown>AVVolume THEN
ClimaxDown=climaxDown
ELSE
ClimaxDown=0
ENDIF

IF Churn>AVVolume THEN
Churn=Churn
ELSE
Churn=0
ENDIF

IF ClimaxChurn>AVVolume THEN
ClimaxChurn=Climaxchurn
ELSE
Climaxchurn=0
ENDIF

RETURN Volume COLOURED (0, 200, 200) AS "Volume",ClimaxUp COLOURED (255, 0, 0) AS "Climax Up", ClimaxDown COLOURED (255, 255, 255) AS "ClimaxDown" , Churn COLOURED (0, 155, 50) AS "Churn",ClimaxChurn COLOURED (255, 0, 255) AS "ClimaxChurn", AVVolume COLOURED (255, 0, 0) AS "STDV (Red Line)"


------------------------------------------------------------------------------------------------
Configurar todas las nomenclaturas en estilo histograma excepto STDV


¡ Estupendo , ahora ya sí que podemos ir a la convención !....

9 comentarios:

  1. Gran indicador, personalmente me encanta

    ResponderEliminar
  2. Una vez más, y ya van unas cuantas, ¡¡¡¡MUCHÍSIMAS GRACIAS!!!!!!!

    ResponderEliminar
  3. Muchas gracias de nuevo, maestro!!

    Jordi

    ResponderEliminar
  4. Hola, me salen todas las barras del mismo color (celeste). ¿qué me falta?

    ResponderEliminar
    Respuestas
    1. Siga usted mirando gráficos y verá como no.La desviación (linea roja ) es la que marca que la barra se coloree.En algunos casos,la barra aparecerá en color azul = volumen sin ninguna apreciación , y será por la orden del código.
      De todas formas, si esto no fuera así al revisarlo, tendría usted que volver a cojer todo el código : copiar , pegar y validar programa.
      Un saludo.

      Eliminar
  5. Gracias, Miguel Ángel, lo probaré a ver.Muchas Gracias por compartir tus códigos (y nada de "usted").

    ResponderEliminar
  6. Esto se puede hacer para metatrader?Gracias, eres un crack

    ResponderEliminar
  7. Esto se puede hacer para metatrader?Gracias, eres un crack

    ResponderEliminar
    Respuestas
    1. digo yo que sí.sin embargo le comento amigo mio,que el volumen por ejemplo para el Forex (que es donde mas se usa en esta plataforma)entiendo que quedaría "castrado",pués cada operador con metatrader utiliza el volumen propio,que no es el volumen total del mercado...no sé si sería de utilidad
      Un saludo Jose Luis.

      Eliminar