Por Fernando Jaico Velez
Desde que el piso de remates paso de ser una sala llena de personas gritando por todos lados a ser un sistema de negociación electrónico sostenido por un conjunto de servidores, sólo era cuestión de tiempo que la forma en que se negocian los valores evolucionará, hasta el grado de utilizar algoritmos, por ejemplo, antes si queríamos contar con un servicio de ejecución de operaciones, era necesario realizar las operaciones a través de una persona dentro de la casa de bolsa quien tomaba nuestra orden por teléfono y mandaba la instrucción a la mesa.
Hoy en día además de esa manera existen diferentes plataformas que realizan esta labor por medio de una computadora o incluso desde un Smartphone , en estas plataformas se pueden realizar las mismas operaciones, ya sea a mercado, limitada, volumen oculto etcétera, esto gracias a la programación, por lo que se deja una instrucción y cuando se cumplan las condiciones dadas se ejecuta, ahora que pasa si en vez de dejar solo una instrucción podemos dejar nuestra estrategia de negociación para diferentes escenarios en el mercado y que se vayan ejecutando de manera autómata, esto es lo que se conoce como negociación de valores con algoritmos.
Algunos ya conocen el concepto de negociación de valores con algoritmos (AT), que básicamente es el uso de algoritmos para la compra-venta de valores, y ESMA (European Securities and Markets Authority) define a un algoritmo de negociación como:
“Software informático que, basándose en unos parámetros clave definidos por la empresa de servicios de inversión o por un cliente de ésta, genera de manera automática órdenes dirigidas a las plataformas de negociación en respuesta a información del mercado.”
Dicho esto, podemos hacernos una idea clara de lo que hace un algoritmo de negociación, es una realidad que cada vez la negociación con algoritmos toma mayor relevancia entre los mercados financieros, por tal motivo en este articulo describiremos brevemente los aspectos básicos que rodean esta forma de operar, así como los puntos básicos a considerar de un algoritmo de negociación.
No es negociación de alta frecuencia
En términos generales, la negociación de alta frecuencia (HFT) se lleva a cabo a través de supercomputadoras que tienen la capacidad de ejecutar operaciones en
milisegundos (con una latencia extremadamente baja, la latencia es lo que tarda en recorrer la información del pc al mercado).
La principal diferencia entre la negociación con algoritmos (AT) y HFT se debe al uso de la tecnología para poder enviar gran cantidad de órdenes al mercado dichas órdenes pretenden obtener pequeñas ganancias en cada una de las transacciones. Más concretamente, en el año 2010, la Commodity Future Trading Commission (CFTC) norteamericana indica que para ser considerado como un HFT, debemos emplear tecnología con muy baja latencia, una conexión de alta velocidad con el mercado para con una tasa alta de envío de órdenes y cancelación de estas.
Programación
La programación hoy en día es cada vez más importante, ya que muchos procesos se han automatizado con base en ella, y para nuestro caso específico, la recopilación de la información de los participantes del mercado como la cantidad de acciones en oferta-demanda, precios de compraventa, los volúmenes de las acciones, el top 10 de las acciones con más alzas y bajas etc., todo esto se diseñó mediante programación y la ventaja clara es que la actualización es casi instantánea si tienes acceso directo al mercado.
Para poder crear nuestro algoritmo podemos diseñarlo desde una hoja de cálculo como es Excel o en MATLAB, sin embargo, en relación con que tan frecuente queremos operar y que tan robusta será nuestra estrategia necesitaremos mayor tecnología y habilidades más avanzadas de programación como podría ser el uso de los siguientes lenguajes R, C#, C++, Python.
Python es uno de los lenguajes favoritos y mas populares hoy en día ya que se dice que si sabes inglés, sabes Python, también por ser un lenguaje altamente compatible con otros lenguajes, y por ser de código abierto ó sea gratis entre otros atributos.
Las matemáticas son el alma de nuestro algoritmo, van ligados estrechamente a la estrategia de negociación que se emplea, no hay una fórmula ganadora ni una receta precisa y depende en que mercado se quiera operar, hay que estar actualizando, ajustando e incluso cambiando la estrategia.
los conocimientos teóricos básicos que necesitamos son:
- Algebra
- Estadística
- Probabilidad
Claro que dependiendo de lo elaborada de nuestra estrategia profundizaremos mas en cada una de las ramas que mejor aplique, como matemáticas computacionales, Big Data, Fractales, geometría euclidiana etcétera, también se puede incluir tantas variables como queramos ya sea promedios móviles, VaR, covarianzas, variables aleatorias discretas, procesos estocásticos, análisis de series de tiempo etcétera., la limitante es nuestro dominio del tema y la efectividad de nuestro algoritmo.
-Un ejemplo sencillo de una estrategia podría ser usar promedios móviles a 5 y 9 días de GAP B al cierre y en cuanto el promedio corto cruce al largo vendemos y en esa nueva posición en cuanto el corto cruce al largo compramos.
La visualización del código sería así:
from library import prices, symbols
import GAP B as pd
# tomamos las cotizaciones del siguiente periodo GAPB_close = prices( assets=symbols('GAP_B'), start='2018-04-09', end='2018-06-14', )
# calcula promedios móviles de 5 y 9 días GAPB_sma5 = GAPB_close.rolling(5).mean() GAPB_sma9 = GAPB_close.rolling(9).mean()
# muestre los resultados en el grafico pd.DataFrame({ 'GAP B': GAPB_close, 'MA(5)': GAPB_sma5, 'MA(9)': GAPB_sma9 }).plot
|
Backtesting
Testear una estrategia de negociación antes de emplearla es imprescindible y nos permite conocer si es rentable con datos históricos, si pretendemos operar intradía puede resultar un poco más difícil el obtener los datos, que, si se pretende operar en periodos de tiempo más largo para testear con datos diarios, ya que estos podríamos obtenerlos desde Yahoo! finanzas o algunas páginas similares, es importante recordar que hay derechos patrimoniales que pueden alterar el precio de la acción y enviarnos una señal falsa, o emisoras de baja bursatilidad la cual aunque tengamos buenas señales de entrada o salida, posiblemente se tenga que incentivar el precio para que nos vendan o compren.
Demás aspectos que considerar
Las comisiones son uno de los aspectos mas importantes que hay que cuidar, dependiendo de nuestro bróker los costos de transacción pueden ser de custodia y operación, y de operación podrían ser un % sobre el monto, cuota o una combinación mixta de todos estos.
Un ejemplo es, supongamos que realizamos una inversión en la acción A y a los pocos minutos tiene una plusvalía de 90 puntos base, sin embargo, nuestro bróker nos cobra una comisión por compra y venta de 0.40%, más .08% de impuestos por operación; esto nos deja con 6 puntos base de perdida si deseamos vender en ese momento la acción A, dada estas comisiones necesitaríamos esperar que la plusvalía sea igual o mayor a 96 puntos base para absorber los costos de operación.
La Administración de riesgo
Y no solo nos referimos al riesgo de pérdida por precio de la acción, en el cual es importante incluir un stop loss que vaya ajustándose como nuestra estrategia, también hay que considerar el riesgo tecnológico, podemos tener fallas de conexión a internet, o fallas con el servidor, o puede haber reinicios en nuestro equipo.
Para limitar la exposición a estos riesgos hay que crear planes de contingencia o alertas a manera de tomar acciones de manera oportuna.
Base de datos
Esta es parte fundamental para realizar un análisis acertado, la manera en que vas a alimentar tu base de datos, si será en automático o será manual, si será desde la plataforma de negociación, una página gratuita o un servicio de pago como Reuters,
Bloomberg, Economatica, etc., en el caso de que sea gratis tal vez tengas que depurar la base o si pagaras un servicio de información habrá que considerar dicho costo en tu balance.
Conclusión.
Con el Trading Algorítmico se busca una oportunidad de ganancia de capital, sin embargo, se utilizan con objetivos distintos, los principales como reducir costos, buscar un precio benchmark, ya sea ponderado por el tiempo, por el volumen, cierre de mercado, minimizar el impacto en el mercado, ocultar las señales que se dejan al mercado al momento de operar o buscar liquidez. El punto aquí es que hay múltiples necesidades del porque comprar o vender un activo y el uso de algoritmos nos garantiza la eficiencia en la ejecución, claro depende de lo que hayas programado, sin embargo, este va a ser constante, no va al baño, no come, al minuto de apertura del mercado ya esté operando y hasta el minuto que cierra, o hasta que complete la orden.
Uno de los puntos más destacables de los algoritmos es la capacidad de análisis, como bien un humano puede observar gráficas, noticias y tendencias por mencionar algunas herramientas, un algoritmo puede tener estos criterios implementados en su código y tomar decisiones en un segundo, lo cual no es posible a un humano.
Como se puede apreciar se requieren de habilidades multidisciplinarias para lograr arrancar un algoritmo de negociación, invertirles mucho tiempo a las habilidades que no se tienen y desarrollar las que si o formar un equipo con tal propósito, también se deben cuidar los diferentes aspectos dentro del mercado que se desea operar para lograr ser rentable.
Pese a las complicaciones una vez logrado, se obtienen varios beneficios el análisis y la toma de decisiones se realiza de manera más rápida, eficiente, se aprovechan todas las oportunidades del mercado, poder colocar ordenes grandes de compraventa, y que el precio no se infle o deprecie de manera tan dramática.
Fuentes
Rena S. Miller, Gary Shorter. (2016). High Frequency Trading: Overview of Recent Developments. 05/08/2018, de Congressional Research Service Sitio web: https://fas.org/sgp/crs/misc/R44443.pdf
Esma. (2012). Sistemas y controles aplicados por las plataformas de negociación, las empresas de servicios de inversión y las autoridades competentes en un entorno de negociación automatizado. 05/08/2018, de ESMA Sitio web: https://www.esma.europa.eu/sites/default/files/library/2015/11/esma_2012_122_es_0.pdf
Erick Gallardo. (2016). 7 brókers online que te facilitan entrar a la BMV. 05/08/2018, de EL FINANCIERO Sitio web: http://www.elfinanciero.com.mx/empresas/brokers-online-que-te-facilitan-entrar-a-la-bmv
https://www.quantopian.com/
https://www.quantstart.com/