Programando Patrones de Velas

Generalmente cuando nos iniciamos en la programación de sistemas de trading y tratamos de representar patrones gráficos en nuestro código, al comienzo suele costarnos bastante por cuanto en muchas ocasiones nos encontramos con que cuesta mucho explicarle a una máquina lo que el ojo ve rápidamente en cuestión de segundos. Para aquellos que se están iniciando en la programación de patrones de velas, aquí va una colección de los más conocidos junto con un pseudocódigo fácilmente interpretable y trasladable a multitud de plataformas de trading.

 

Martillo

El Martillo es un patrón de una sola vela de cuerpo pequeño con una mecha inferior larga, que se forma en la parte inferior de una tendencia bajista. En caso de formarse, este patrón lo que nos indica es que, aunque hubo presiones de venta durante el día, al final una fuerte presión compradora hizo que el precio volviera a subir. El color del cuerpo puede variar, pero si una vela de Martillo alcista indica más fuerza que si fuera bajista.

Hammer


Podemos programar un Martillo usando el siguiente pseudocódigo:

(High - Low) > 3*(Open -Close) & ((Close - Low)/(High - Low) > 0.6) & ((Open - Low)/(High - Low) > 0.6)

Como podemos ver, para buscar el patrón primero exigimos que el rango total de la vela (High-Low) sea al menos 3 veces el tamaño del cuerpo (Open-Close); además, la distancia del cierre al mínimo, y de la apertura al mínimo, debe representar al menos el 60% del rango de la vela. Por supuesto, tanto el 3 como el 60% podemos parametrizarlo y así crear variantes más flexibles del patrón.

 

Martillo Inverso

Otro patrón alcista es el Martillo Invertido. La única diferencia con el patrón anterior es que ahora la mecha superior es larga, mientras que la inferior es corta. Su significado ahora es el siguiente: señala una fuerte presión de compra, seguida de presión vendedora que no fue lo suficientemente fuerte como para hacer bajar al precio. El Martillo Inverso sugiere que los compradores en breve podrían lograr tomar el control del mercado.

Inverted Hammer

Podemos programar un Martillo Invertido usando el siguiente pseudocódigo:

(High - Low)>3*(Open -Close) & ((High - Close)/(High - Low) > 0.6) & ((High - Open)/(High - Low) > 0.6)

Aquí la lógica es muy similar al caso anterior, si bien ahora lo que exigimos es que tanto la distancia del cierre al máximo, como de la apertura al máximo represente al menos el 60% del rango de la vela.

 

Envolvente Alcista

La Envolvente Alcista es un patrón formado por dos velas. La primera vela posee un cuerpo pequeño y es bajista; dicha vela es completamente “engullido” por la siguiente vela, que es alcista y con un rango más amplio. La interpretación de este patrón es la siguiente: aunque la segunda vela abre por debajo del cierre de la primera, el mercado empuja al alza el precio, culminando en una victoria contundente de los toros.

Bullish Engulfing

Matemáticamente podemos expresar este patrón en pseudocódigo de la siguiente manera:

Open[1] > Close[1] & Close > Open & Close >= Open[1] & Close[1] >= Open & Close - Open > Open[1] - Close[1]

Aquí, el valor entre corchetes hace referencia al número de velas hacia atrás que debemos considerar para obtener el valor. En particular, lo que indica la expresión anterior es que:

  • La vela anterior debe ser bajista (apertura mayor que cierre)
  • La vela actual debe ser alcista (cierre mayor que apertura)
  • El cierre actual debe ser mayor que la apertura de ambas velas
  • La distancia del cierre a la apertura (esto es, el cuerpo) de la vela actual debe ser mayor que la de la vela anterior.

 

Pauta Penetrante

La Pauta Penetrante es también un patrón formado por dos velas. En este caso, tenemos una vela muy bajista, seguida de una vela muy alcista que abre por debajo del cierre de la vela previa. La interpretación sería similar a la de la Envolvente Alcista: el hueco que se produce en la apertura de la segunda vela muestra una continuación de la inercia bajista del día anterior, pero rápidamente el precio es empujado al alza, rebasando el punto medio de la vela previa.

Piercing Pattern
Podemos expresar este patrón en pseudocódigo de la siguiente manera:

Close[1] < Open[1] & Open < Low[1] & Close > Close[1] + ((Open[1] - Close[1])/2) & Close < Open[1]

Aquí tenemos que:

  • El cierre de la vela previa es menor que su apertura (vela bajista)
  • La apertura actual es menor que el mínimo anterior
  • El cierre actual es mayor que el de la vela anterior más la mitad del cuerpo de la vela previa
  • El cierre actual es menor que la apertura de la vela anterior

 

Estrella de la Mañana

En este caso, el patrón se compone de tres velas: una gran vela bajista, seguida de una vela de cuerpo pequeño (“la estrella”) que abre con un gap a la baja respecto al cierre del día anterior, y una gran vela alcista que abre con gap al alza. Generalmente el cuerpo de la “estrella” no se solapa con los cuerpos más largos. Este patrón nos indica básicamente que tras una fuerte presión vendedora, se produce un día de indefinición, seguido de una entrada fuerte de compradores, provocando un giro en la tendencia.

Morning Star

Podemos programar este patrón usando un código similar a este:

Close[2] < Open[2] & Max(Open[1], Close[1]) < Close[2] & Open > Max(Open[1], Close[1]) & Close > Open

La expresión anterior es muy sencilla, si bien introduce un nuevo elemento: la función Max que exige elegir entre uno de los dos elementos que aparecen dentro del paréntesis.

 

Tres Soldados Blancos

Formado también por tres velas, en este caso basta con que se verifique que se sucedan tres sesiones alcistas con mínimos crecientes y mechas pequeñas, que se abren y cierran progresivamente más altas que el día anterior. Se trata de una demostración clara de fuerza alcista, sobre todo después de una tendencia bajista.

Three White Soldiers

La programación de este patrón es muy sencilla:

Close[2]-Open[2]>0 & Close[1]-Open[1]>0 & Close-Open>0 & High[1]>High[2] & High>High[1] & Close[1]>Close[2] & Close>Close[1] & Open[1]>Open[2] & Open[1]<Close[2] & Open>Open[1] & Open<Close[1]

Si quisiéramos además exigir que las velas tengan un rango amplio y pocas mechas, podemos añadir condiciones similares a esta:

Abs(Close-Open)/(High-Low) > 0.75

Con la expresión anterior estaríamos indicando dentro del patrón que el cuerpo de la vela debe representar al menos el 75% del rango total.

 

Hombre Colgado

El Hombre Colgado es el equivalente bajista de un Martillo. Por ello, este patrón presenta el mismo aspecto pero se forma al final de una tendencia alcista. Por ello, su interpretación es la contraria: ahora este patrón muestra que hubo ventas significativas durante el día, aunque los compradores son capaces de sujetar el precio, aunque podría ser un aviso de que los osos intentan tomar el control del mercado.

Hanging Man

Para programar este patrón, podemos usar la siguiente expresión:

(High-Low)>4*(Open-Close) & ((Close-Low)/(High-Low)>=0.75) & ((Open-Low)/(High-Low)>=0.75))

Podéis ver que la programación es idéntica a la del Martillo (tan solo he variado los parámetros numéricos). Sin embargo, en la definición del patrón decimos que se forma al final de una tendencia alcista (de hecho, cuando hablamos del Martillo, comentamos que se forman al final de una tendencia bajista). ¿Cómo podemos incorporar la condición de que el mercado es alcista o bajista en nuestro código? Tenemos dos opciones:

  • Forzar que haya una sucesión de mínimos crecientes (& Low[2] < Low[1] & Low[1] < Low) o máximos decrecientes (& High[2] > High[1] & High[1] > High)
  • Indicar que necesariamente el mercado debe estar por encima (Low > MovingAvg) o por debajo (High < MovingAvg) de una determinada media móvil (MovingAvg).

 

Estrella Fugaz

La Estrella Fugaz tiene la misma forma que el Martillo Invertido, pero se forma dentro de una tendencia alcista. Este patrón indica que el mercado ha abierto ligeramente al alza en la apertura y ha subido hasta marcar un máximo intradía que queda alejado del cierre de la sesión, el cual queda relativamente cerca de la apertura.

Shooting Star

En pseudocódigo este patrón tiene la siguiente forma:

Open[1] < Close[1] & Open > Close[1] & High - Max(Open, Close) >= Abs(Open - Close) * 3 & Min(Close, Open) - Low <= Abs(Open - Close))

Aquí aparecen dos elementos nuevos: aparte de la función Max que obtiene el máximo de dos valores dados, también tenemos Min para calcular el mínimo de los valores del paréntesis, y Abs, que es la función valor absoluto, con la que transformamos el resultado de una expresión que puede salir negativo (en este caso, Open-Close, que puede ser menor que cero si la vela es bajista) en positivo.

 

Envolvente Bajista

Una Envolvente Bajista se produce al final de una tendencia alcista. Aquí, la primera vela tiene un pequeño cuerpo alcista que es “devorado” por la siguiente vela, que es bajista y de gran tamaño. Este patrón es un aviso de un posible máximo a corto plazo o, al menos, de una ralentización en el movimiento de los precios, lo que podría estar anticipando el inicio de un movimiento bajista. Cuanto más bajista sea la segunda vela, más significativa será la posible corrección que se está iniciando.

Bearish Engulfing

Podemos expresar este patrón en pseudo-lenguaje de la siguiente manera:

Close[1] > Open[1] & Open > Close & Open >= Close[1] & Open[1] >= Close & Open - Close > Close[1] - Open[1]

 

Estrella Vespertina

La Estrella Vespertina es un patrón de tres velas equivalente a la Estrella de la Mañana que veíamos antes. Aquí la sucesión de velas es una gran vela alcista, una vela de cuerpo pequeño corta y una gran vela bajista. Este patrón, si aparece en una tendencia alcista, puede ser el aviso de un cambio de tendencia, sobre todo cuando la tercera vela borra las ganancias de la primera vela.

Evening Star

¿Cómo podemos representar este patrón mediante reglas? De la siguiente manera:

Close[2] > Open[2] & Min(Open[1], Close[1]) > Close[2] & Open < Min(Open[1], Close[1]) & Close < Open

 

Tres Cuervos Negros

El patrón de velas de los Tres Cuervos Negros se compone de tres velas bajista consecutivas de gran tamaño, y con mechas cortas o inexistentes. En cada sesión se abre a un precio similar al del día anterior, pero la presión vendedora hace que el precio baje más y más en cada cierre sucesivo. Los operadores interpretan este patrón como el inicio de una tendencia bajista, ya que los vendedores han superado a los compradores durante tres días de negociación sucesivos.

Three Black Crows
La programación de este patrón es sencilla:

Close[2]-Open[2]<0 & Close[1]-Open[1]<0 & Close-Open<0 & Low[1]<Low[2] & Low<Low[1] & Close[1]<Close[2] & Close<Close[1] & Open[1]<Open[2] & Open[1]>Close[2] & Open<Open[1] & Open>Close[1]

 

Cobertura de Nube Oscura

Este patrón se compone de dos velas: una vela bajista que abre por encima del cuerpo de una vela alcista anterior y que cierra por debajo de su punto medio. Indica que los bajistas han tomado el control de la sesión, empujando el precio a la baja. Si además las mechas de las velas son cortas, sugiere que la tendencia bajista que se inicia puede ser muy fuerte.

Dark Cloud Cover

En este caso, podemos expresar este patrón en pseudocódigo de la siguiente manera:

((Close[1]>Open[1])&(((Close[1]+Open[1])/2)>Close)&(Open>Close)&(Open>Close[1])&(Close>Open[1])&((Open-Close)/(.001+(High-Low))>0.6))

 

Doji

Cuando la apertura y el cierre de una vela están casi en el mismo punto, se forma un patrón que se asemeja a una cruz o signo de suma. En ese caso estaremos ante un patrón de una sola vela denominado Doji, en el que el cuerpo de la misma es muy pequeño o inexistente, siendo sus mechas de longitud variable. Este patrón es una señal clara de una lucha entre compradores y vendedores que ha terminado en tablas.

Doji
Su programación es bastante simple:

Abs(Open - Close) <= (High - Low) * DojiSize

Como podéis ver en la expresión anterior, hemos incorporado un parámetro denominado DojiSize al cual podemos dar valores porcentuales para representar la amplitud del cuerpo del Doji. Por ejemplo, si ponemos DojiSize=0.05, lo que estaremos indicando es que para detectar un Doji, el cuerpo de la vela debe ser igual o menor que el 5% de su rango.

 

Triple Formación Bajista

Se trata de un patrón compuesto por una gran vela bajista, seguida de tres velas alcistas de cuerpo pequeño y una nueva vela bajista de gran tamaño. Las velas alcistas deben estar contenidas dentro de los cuerpos de las velas bajistas. Es un signo claro de que los toros no tienen la suficiente fuerza para mover el mercado al alza .

Falling Three Methods

El pseudocódigo para representar este patrón sería el siguiente:

Close[4]-Open[4]<0 & Close[3]-Open[3]>0 & Close[2]-Open[2] >0 & Close[1]-Open[1]>0 & Close-Open<0 & Abs(Close[4]-Open[4])/(High[4]-Low[4]) > 0.75 & Abs(Close-Open)/(High-Low) > 0.75 & Close[2]>Close[3] & Close[1]>Close[2] & Low[2]>Low[3] & Low[1]>Low[2] & High[1]<High[4] & Open<Close[1] & Close<Low[4] & Close<Low[3] & Close<Low[2] & Close<Low[1]

 

Triple Formación Alcista

El patrón “espejo” del anterior es la Triple Formación Alcista, en la que se suceden una gran vela alcista, seguida de tres velas bajistas de pequeño tamaño y una nueva vela alcista de gran tamaño. Aquí, lógicamente la interpretación es la contraria: a pesar de la presión de las ventas, los compradores mantienen el control del mercado.

Rising Three Methods

La expresión en pseudo-lenguaje de este patrón es la siguiente:

Close[4]-Open[4]>0 & Close[3]-Open[3]<0 & Close[2]-Open[2]<0 & Close[1]-Open[1]<0 & Close-Open>0 & Abs(Close[4]-Open[4])/(High[4]-Low[4]) > 0.75 & Abs(Close-Open)/(High-Low) > 0.75 & Close[2]<Close[3] & Close[1]<Close[2] & High[2]<High[3] & High[1]<High[2] & Low[1]>Low[4] & Open>Close[1] & Close>High[4] & Close>High[3] & Close>High[2] & Close>High[1]

 

Conclusión

En este artículo hemos visto algunos de los patrones de velas más relevantes junto con la forma de representarlos en forma de código, usando para ello un pseudo-lenguaje, sencillo de entender y fácilmente trasladable a muchas plataformas de trading. Les animo a que analicen el código utilizado, que traten de entenderlo y que intenten representar sus propios patrones, ya sea programándolos por su cuenta o modificando el código presentado en este artículo.

 

Saludos,
X-Trader

Te Puede Interesar