Rankia USA
blog Automatización de estrategias de inversión
Aprende a crear tus propios sistemas automáticos

Análisis y resultados de un sistema de Scalping

Dentro del apartado de análisis de sistemas de este blog hoy quiero hablar de un método ideado por Kevin Ho llamado “The Penny Pincher” o en su traducción como “El Tacaño“ y del que podréis encontrar más información en el blog de Gekko rebautizado como ComeGalletas.

Estamos delante de un sistema de la categoría de scalping, sistemas que se ejecutan en un muy corto espacio de tiempo en pos de un pequeño beneficio repetidas veces, deben utilizarse sobre activos muy líquidos, con mucho volumen de negociación como por ejemplo el Mini S&P500.

 

Criterios de entrada

Se aconseja utilizar este método de scalping en “horas punta” es decir en horas de máxima negociación que suelen ser la primera y la última,  15:30 a 16:30 y 21:00 a 22:00

Para ilustrar las diferentes entradas que propone este método:

Entrada larga: la vela verde es una envolvente alcista, abrimos posición (en este caso compramos) cuando se supera por un Tick (0,25 puntos) el máximo de la anterior vela bajista, en la misma vela envolvente de 10 minutos se abrirá y cerrará la posición.

Entrada corta: la vela roja es una envolvente bajista, abrimos posición (en este caso vendemos) cuando se supera por un Tick (0,25 puntos) el mínimo de la vela anterior alcista.

 

Criterios de salida

Cuando se está con una posición abierta (comprado o vendido) se fija un stop de ganancias o “Stop Profit” y un stop de pérdidas “Stop Loss” ambos a 1 punto de la entrada, claro está que el stop loss se situará un punto por encima en el caso de que la vela actual sea bajista (apertura > cierre) y 1 punto por abajo en el caso de que la vela actual sea alcista (apertura < cierre) y al contrario para el stop profit.

Además, el método aconseja que la operación no puede durar más de 30 segundos en mercado.

 

Instrumento objetivo y período de pruebas

Este sistema me ha dado bastante guerra sobre todo en cuanto a pruebas de su rendimiento, si bien no he hecho todas las pruebas que quería, sí os puedo dar alguna pista y consejo sobre su desempeño.

Como se trata de un sistema de scalping inicialmente realicé las pruebas directamente en vivo y en directo con una cuenta demo, después de un par de semanas en ejecución había obtenido apenas 10 operaciones, muy pobre para el análisis de un sistema, por lo que he estado analizando las pruebas realizadas en BackTesting con lo tedioso que resulta esto en un sistema de esta tipología… 

He considerado (para las pruebas) el período comprendido entre el 14/12/2009 y el 18/03/2010 utilizando para ello el ES 03-10 contrato de futuros del Mini SP con vencimiento marzo del 2010. En total unas 120 operaciones en tres meses con una media de aprox. 2 operaciones al día si consideramos 60 días operativos  y como el objetivo de beneficio por operación está situado en 1 punto o menos (<=50$) mi primera impresión al respecto es que nos vamos a morir pobres a este ritmo…

 

Proceso de automatización

El sistema tiene que poder trabajar en dos dimensiones de tiempo, la principal es de 10 minutos y nos ayudará a controlar la entrada y la secundaria  de 5 segundos nos ayudará a controlar la salida. ¿porqué de 5 segundos? os preguntaréis, pues simplemente y llanamente por el backtesting, realmente solo sería necesario tener una secundaria de 30 segundos para controlar la salida pasado este lapso de tiempo, pero la vida es dura y el backtesting nos pone las cosas un poco más difíciles.

Pensad por un momento cómo procesa una herramienta de automatización de sistemas las pruebas realizadas en Backtesting, si se encuentra una barra en una dimensión de por ejemplo 5 minutos, en ese instante sólo conoce la apertura, el máximo, el mínimo y el cierre o como se conoce con las siglas OHLC (del inglés: Open, High, Low, Close) ¿cómo puede saber la herramienta  la secuencia que ha seguido la cotización? Es decir, si primero toca el máximo y después el mínimo, o si por contrario primero el mínimo y después el máximo, pues no lo saben, la única manera de averiguarlo sería haciendo una inmersión a nivel de Tick, o sea al nivel más bajo de granularidad… Pero que yo sepa las herramientas no lo hacen, aunque desde aquí les animo a ello para que así nos permitan concentrarnos en el desarrollo del sistema o estrategia, por lo tanto en el Backtesting somos nosotros quienes nos tenemos que preocupar de determinar el sentido y secuencia de la cotización.

La solución rápida pasa por agregar una serie de datos de la mínima granularidad (Nivel de Tick), pero rotundamente me niego a analizar los resultados de un sistema con ese detalle además del consumo de tiempo que eso provoca. Eso sí, os recomiendo utilizar dimensiones pequeñas (1 a 5 segundos) sobre todo para aquellos sistemas de scalping o que tienen bastante ajustados los niveles de stop.

Toda esta parrafada se ilustra y comprende mejor con un par de imágenes reales:

Aquí disponemos de 2 dimensiones, la superior de 10 minutos y la inferior de 30 segundos, fijaros en la de 30 segundos, en la primera entrada a las 15:30:30, se toca el stop loss en la misma barra de entrada… Error!, la herramienta no quiere saber qué secuencia ha seguido la cotización y en teoría perdemos 1 punto… Mirad el gráfico de 5 segundos:

Ahora sí!, la entrada se produce en una barra donde no se toca el stop loss y por tanto se gana 1 punto.

Este problema en el backtesting, hay que tener claro que se puede producir tanto en contra (del ejemplo) como a favor y acabará por producirnos unos resultados del sistema no fiables, por eso recomiendo analizar las entradas del sistema por separado e identificar si han sido correctas o no, cuando una entrada y una salida se producen en la misma barra ¡Cuidado!

 Además os tengo que decir que después de analizar las operaciones de Backtesting incluso en la dimensión de 5 segundos se han dado unas 5 operaciones erróneas, que claro distorsionan un poco los resultados, pero no demasiado.

 

Resultados

Automatización del Sistema Comegalletas en barras 10minutos para 1 contrato sobre el vencimiento de Marzo del 2010 del Mini SP500 en Ninja Trader

Una imagen vale más que mil palabras:

Podéis ver que los resultados no son nada buenos, en tres meses habríamos perdido más de 30 puntos.

Veamos con más detalle el resultado:

Nota: estos resultados no incluyen el slipagge y se ha asumido un coste por operación de 2,4$.

En la primera marca podéis ver el Profit Factor (que ya aclaramos en el anterior artículo de Larry Williams) que es muy raquítico y que nos aconseja no perder más tiempo con este método.

En la segunda vemos el número de aciertos (ganancias) y fallos (pérdidas) que nos dice que este sistema (donde el ratio riesgo/beneficio inicialmente era de 1) nos va a llevar a la ruina.

Y en la tercera tenemos la media de ganancia de los aciertos y fallos, esta tercera nos permite entrever el riesgo real de este sistema, pues la media de las pérdidas casi dobla a las ganancias, por lo tanto el ratio riesgo/beneficio se duplica aumentando el nivel de riesgo.

A nivel de resultados totales se puede ver en la primera línea que el resultado ha sido negativo en 1893$, de los que “solo” 580$ son de comisiones…

Hay que decir que los resultados incluyen 5 operaciones negativas por error de Backtesting y que el resultado total disminuiría (asignando 50$ de ganancias a estas 5 operaciones) hasta los 1230$ de pérdidas donde casi la mitad son de comisiones.

 

Conclusión

Ya cuando me puse manos a la obra para automatizar este sistema me di cuenta de que teníamos un ratio de riesgo/beneficio teórico de 1, esto significa que arriesgamos 1 punto para ganar 1 punto… esto obliga a que el sistema dé un porcentaje elevado de aciertos para contrarrestar los fallos. Confirmado.

Los sistemas de Scalping son muy sensibles a las comisiones, puesto que ya de partida tenemos que restar al posible beneficio el coste de la transacción y además por partida doble, la entrada y la salida de mercado, esto provoca un efecto dilapidador en los resultados finales.

En el análisis de un sistema influyen multitud de factores y variables que en otro artículo comentaré pero lo que deja claro las pruebas realizadas es que en este período de pruebas con los criterios facilitados los resultados son malos, muy malos.

Me gustaría terminar dando alguna nota positiva sobre este sistema y es que el concepto me gusta y tiene sentido pero quizás debería probarse con períodos de alta volatilidad o mejorar los criterios de salida, como por ejemplo:

  • Pasados 30 segundos cerrar la posición con un mínimo de 1 Tick de beneficio de lo contrario aguantar hasta el fin de los 10 minutos o salir con stop loss. Esto sí que es hacer honor al nombre del sistema “tacaño”…
  • Bastantes veces el Mini SP se gira con una envolvente y después se dispara hacia arriba o hacia abajo, por lo tanto cabría considerar aumentar el stop profit o modificar los criterios de salida para aprovecharnos de estas tendencias. Esto nos obligaría a descatalogarlo de la categoría de scalping para pasar a ser de corto plazo o intradiario.
  • Cambiar el inicio horario de las barras de 10 minutos y hacer optimización de los parámetros del sistema. Estamos acostumbrados a trabajar con barras de cotizaciones con la variable tiempo acotado, es decir a las 14:00Hs empieza la barra y a las 14:10Hs termina, pero qué pasaría si empezaran a contar los 10 minutos a las 14:04 hasta las 14:14, pensemos por un momento que muchas estrategias y personas se guían por la misma variable tiempo y con criterios parecidos  o quizás más ajustados con lo que pueden empujar las cotizaciones en nuestra contra.

Como veis hay mucho que hacer, nuestro trabajo no termina analizando un sistema, sino viendo sus posibilidades y probando diferentes alternativas modificando sus criterios, parámetros y/o variables pero sobretodo siendo fieles al concepto, si no estaríamos hablando ya de otro sistema. Quizás en breve publicaré algún artículo (mucho más corto) mostrando los resultados de alguna de estas variaciones.

Termino poniendo a vuestra disposición el sistema presente y comentando los parámetros de entrada, que por cierto dan bastante juego para las pruebas y optimización:

  • tamany_vela => Nos permite ajustar el tamaño mínimo del cuerpo de la vela anterior a la envolvente, por ejemplo si asignamos un tamaño de cero la apertura y el cierre de la vela serán iguales, en cambio si asignamos un valor de 0,75, ésta será la diferencia que deberá haber entre la apertura y el cierre de la barra. Por defecto 0,5.
  • contratos => Número de contratos por operación, por defecto 1.
  • profit => stop profit por operación, por defecto 1
  • loss => stop loss por operación, por defecto 1
  • segundos => número de segundos teóricos a esperar antes del cierre de la operación, por defecto 30 segundos, este parámetro tiene que ser múltiplo de 5 pues las barras son de 5 segundos.

Como siempre lo podéis solicitar desde el formulario que pongo a vuestra disposición.

Espero vuestros comentarios.