En este artículo voy a presentarte algunos de los conceptos básicos que acompañan a un sistema de trading cuantitativo de principio a fin. Este post servirá, con suerte, a dos audiencias. El primero será el de las personas que tratan de obtener un trabajo en un fondo como comerciante cuantitativo. El segundo será individuos que desean tratar de establecer su propio negocio de comercio algorítmico «al por menor».
El comercio cuantitativo es un área extremadamente sofisticada de las finanzas cuantitativas. Puede llevar mucho tiempo adquirir los conocimientos necesarios para pasar una entrevista o construir tus propias estrategias de trading. No sólo eso, sino que requiere una amplia experiencia en programación, como mínimo en un lenguaje como MATLAB, R o Python. Sin embargo, a medida que aumenta la frecuencia de negociación de la estrategia, los aspectos tecnológicos adquieren mucha más relevancia. Por ello, estar familiarizado con C/C++ será de suma importancia.
Un sistema de trading cuantitativo consta de cuatro componentes principales:
- Identificación de la estrategia – Encontrar una estrategia, explotar una ventaja y decidir la frecuencia de negociación
- Backtesting de la estrategia – Obtener datos, analizar el rendimiento de la estrategia y eliminar los sesgos
- Sistema de ejecución – Vincularse a un broker, automatización de las operaciones y minimización de los costes de transacción
- Gestión del riesgo – Asignación óptima del capital, «tamaño de la apuesta»/criterio de Kelly y psicología del trading
Empezaremos por echar un vistazo a cómo identificar una estrategia de trading.
Identificación de la estrategia
Todos los procesos de trading cuantitativo comienzan con un periodo inicial de investigación. Este proceso de investigación abarca la búsqueda de una estrategia, ver si la estrategia encaja en una cartera de otras estrategias que pueda estar ejecutando, obtener cualquier dato necesario para probar la estrategia y tratar de optimizar la estrategia para obtener mayores rendimientos y/o menor riesgo. Tendrá que tener en cuenta sus propios requisitos de capital si ejecuta la estrategia como operador «minorista» y cómo afectará a la estrategia cualquier coste de transacción.
Contrariamente a la creencia popular, en realidad es bastante sencillo encontrar estrategias rentables a través de diversas fuentes públicas. Los académicos publican con regularidad los resultados teóricos de las operaciones (aunque en su mayoría sin tener en cuenta los costes de transacción). Los blogs de finanzas cuantitativas discutirán las estrategias en detalle. Las revistas especializadas describen algunas de las estrategias empleadas por los fondos.
Puede que se pregunte por qué las personas y las empresas están dispuestas a hablar de sus estrategias rentables, especialmente cuando saben que otras personas que «abarrotan el comercio» pueden impedir que la estrategia funcione a largo plazo. La razón radica en que no suelen hablar de los parámetros exactos y los métodos de ajuste que han llevado a cabo. Estas optimizaciones son la clave para convertir una estrategia relativamente mediocre en una altamente rentable. De hecho, una de las mejores maneras de crear sus propias estrategias únicas es encontrar métodos similares y luego llevar a cabo su propio procedimiento de optimización.
Aquí hay una pequeña lista de lugares para empezar a buscar ideas de estrategias:
- Red de Investigación en Ciencias Sociales – www.ssrn.com
- arXiv Quantitative Finance – arxiv.org/archive/q-fin
- Seeking Alpha – www.seekingalpha.com
- Elite Trader – www.elitetrader.com
- Nuclear Phynance – www.nuclearphynance.com
- Quantivity – quantivity.wordpress.com
Muchas de las estrategias que se verán entrarán en las categorías de reversión de la media y seguimiento de la tendencia/momento. Una estrategia de reversión de la media es aquella que intenta explotar el hecho de que existe una media a largo plazo en una «serie de precios» (como el diferencial entre dos activos correlacionados) y que las desviaciones a corto plazo de esta media acabarán revirtiendo. Una estrategia de impulso intenta explotar tanto la psicología del inversor como la estructura de los grandes fondos «enganchándose» a una tendencia del mercado, que puede cobrar impulso en una dirección, y seguir la tendencia hasta que se invierta.
Otro aspecto enormemente importante de la negociación cuantitativa es la frecuencia de la estrategia de negociación. La negociación de baja frecuencia (LFT) se refiere generalmente a cualquier estrategia que mantenga los activos durante más de un día de negociación. Por su parte, la negociación de alta frecuencia (HFT) se refiere generalmente a una estrategia que mantiene los activos intradía. La negociación de ultra alta frecuencia (UHFT) se refiere a las estrategias que mantienen activos en el orden de segundos y milisegundos. Como profesional minorista, la HFT y la UHFT son ciertamente posibles, pero sólo con un conocimiento detallado de la «pila tecnológica» de la negociación y de la dinámica del libro de órdenes. No discutiremos estos aspectos en gran medida en este artículo introductorio.
Una vez que se ha identificado una estrategia, o un conjunto de estrategias, es necesario probar su rentabilidad en datos históricos. Ese es el ámbito del backtesting.
Strategy Backtesting
El objetivo del backtesting es proporcionar pruebas de que la estrategia identificada a través del proceso anterior es rentable cuando se aplica a los datos históricos y fuera de la muestra. Esto establece la expectativa de cómo funcionará la estrategia en el «mundo real». Sin embargo, el backtesting NO es una garantía de éxito, por varias razones. Es quizás el área más sutil del trading cuantitativo, ya que conlleva numerosos sesgos, que deben ser cuidadosamente considerados y eliminados en la medida de lo posible. Hablaremos de los tipos de sesgo más comunes, como el sesgo de anticipación, el sesgo de supervivencia y el sesgo de optimización (también conocido como sesgo de «espionaje de datos»). Otros aspectos importantes del backtesting son la disponibilidad y la limpieza de los datos históricos, la consideración de los costes de transacción realistas y la elección de una plataforma de backtesting sólida. Discutiremos los costes de transacción más adelante en la sección Sistemas de Ejecución.
Una vez que se ha identificado una estrategia, es necesario obtener los datos históricos con los que llevar a cabo las pruebas y, quizás, el refinamiento. Hay un número importante de proveedores de datos en todas las clases de activos. Sus costes suelen variar en función de la calidad, la profundidad y la puntualidad de los datos. El punto de partida tradicional para los operadores cuánticos principiantes (al menos a nivel minorista) es utilizar el conjunto de datos gratuitos de Yahoo Finance. No me detendré demasiado en los proveedores, sino que me gustaría concentrarme en las cuestiones generales cuando se trata de conjuntos de datos históricos.
Las principales preocupaciones con los datos históricos incluyen la precisión/limpieza, el sesgo de supervivencia y el ajuste de las acciones corporativas, como los dividendos y las divisiones de acciones:
- La precisión se refiere a la calidad general de los datos, es decir, si contienen errores. A veces, los errores pueden ser fáciles de identificar, por ejemplo, con un filtro de picos, que detectará los «picos» incorrectos en los datos de las series temporales y los corregirá. Otras veces pueden ser muy difíciles de detectar. A menudo es necesario contar con dos o más proveedores y comprobar todos sus datos entre sí.
- El sesgo de supervivencia es a menudo una «característica» de los conjuntos de datos gratuitos o baratos. Un conjunto de datos con sesgo de supervivencia significa que no contiene activos que ya no se negocian. En el caso de la renta variable, se trata de acciones que han dejado de cotizar o que han quebrado. Este sesgo significa que cualquier estrategia de negociación de acciones probada en un conjunto de datos de este tipo probablemente tendrá un mejor rendimiento que en el «mundo real», ya que los «ganadores» históricos ya han sido preseleccionados.
- Las acciones corporativas incluyen actividades «logísticas» llevadas a cabo por la empresa que suelen provocar un cambio de función en el precio en bruto, que no debería incluirse en el cálculo de los rendimientos del precio. Los ajustes por dividendos y desdoblamientos de acciones son los culpables habituales. En cada una de estas acciones es necesario llevar a cabo un proceso conocido como ajuste retroactivo. Hay que tener mucho cuidado de no confundir un desdoblamiento de acciones con un verdadero ajuste de rendimientos. Más de un operador ha sido sorprendido por una acción corporativa
Para llevar a cabo un procedimiento de backtest es necesario utilizar una plataforma de software. Puede elegir entre un software de backtest dedicado, como Tradestation, una plataforma numérica como Excel o MATLAB o una implementación completa personalizada en un lenguaje de programación como Python o C++. No me detendré demasiado en Tradestation (o similares), Excel o MATLAB, ya que creo en la creación de una pila tecnológica interna completa (por las razones que se exponen a continuación). Una de las ventajas de hacerlo así es que el software de backtest y el sistema de ejecución pueden estar estrechamente integrados, incluso con estrategias estadísticas extremadamente avanzadas. Para las estrategias de HFT, en particular, es esencial utilizar una implementación personalizada.
Cuando se realiza el backtesting de un sistema hay que ser capaz de cuantificar su rendimiento. Las métricas «estándar de la industria» para las estrategias cuantitativas son la reducción máxima y el ratio de Sharpe. La reducción máxima caracteriza la mayor caída entre el pico y el valle de la curva de renta variable de la cuenta durante un periodo de tiempo determinado (normalmente anual). Suele indicarse en forma de porcentaje. Las estrategias LFT tienden a tener mayores reducciones que las estrategias HFT, debido a una serie de factores estadísticos. Un backtest histórico mostrará la reducción máxima pasada, que es una buena guía para el rendimiento futuro de la estrategia. La segunda medida es el Ratio de Sharpe, que se define heurísticamente como la media de los excesos de rentabilidad dividida por la desviación estándar de esos excesos de rentabilidad. En este caso, el exceso de rentabilidad se refiere al rendimiento de la estrategia por encima de un índice de referencia predeterminado, como el S&P500 o un bono del Tesoro a 3 meses. Tenga en cuenta que la rentabilidad anualizada no es una medida que se utilice habitualmente, ya que no tiene en cuenta la volatilidad de la estrategia (a diferencia del Ratio de Sharpe).
Una vez que una estrategia ha sido sometida a un backtesting y se considera libre de sesgos (¡en la medida de lo posible!), con un buen Sharpe y drawdowns minimizados, es el momento de construir un sistema de ejecución.
Sistemas de ejecución
Un sistema de ejecución es el medio por el cual la lista de operaciones generadas por la estrategia son enviadas y ejecutadas por el broker. A pesar de que la generación de operaciones puede ser semiautomatizada o incluso totalmente automatizada, el mecanismo de ejecución puede ser manual, semimanual (es decir, «un clic») o totalmente automatizado. Para las estrategias de LFT, las técnicas manuales y semimanuales son habituales. Para las estrategias HFT es necesario crear un mecanismo de ejecución totalmente automatizado, que a menudo estará estrechamente vinculado con el generador de operaciones (debido a la interdependencia de la estrategia y la tecnología).
Las consideraciones clave a la hora de crear un sistema de ejecución son la interfaz con el corredor, la minimización de los costes de transacción (incluyendo la comisión, el deslizamiento y el diferencial) y la divergencia del rendimiento del sistema en vivo con respecto al rendimiento backtested.
Hay muchas maneras de interactuar con un corredor. Van desde llamar a su corredor por teléfono hasta una interfaz de programación de aplicaciones (API) totalmente automatizada y de alto rendimiento. Lo ideal es automatizar la ejecución de las operaciones en la medida de lo posible. Esto le libera para concentrarse en la investigación, además de permitirle ejecutar múltiples estrategias o incluso estrategias de mayor frecuencia (de hecho, la HFT es esencialmente imposible sin la ejecución automatizada). Los programas comunes de backtesting mencionados anteriormente, como MATLAB, Excel y Tradestation, son buenos para las estrategias más simples y de menor frecuencia. Sin embargo, será necesario construir un sistema de ejecución interno escrito en un lenguaje de alto rendimiento, como C++, para poder realizar cualquier tipo de HFT real. Como anécdota, en el fondo en el que solía trabajar, teníamos un «bucle de negociación» de 10 minutos en el que descargábamos nuevos datos del mercado cada 10 minutos y luego ejecutábamos operaciones basadas en esa información en el mismo periodo de tiempo. Para ello se utilizaba un script de Python optimizado. Para cualquier cosa que se acerque a los datos de un minuto o un segundo de frecuencia, creo que C/C++ sería más ideal.
En un fondo más grande, a menudo no es el dominio del comerciante quant para optimizar la ejecución. Sin embargo, en las tiendas más pequeñas o en las empresas de HFT, los operadores SON los ejecutores, por lo que a menudo es deseable un conjunto de habilidades mucho más amplio. Téngalo en cuenta si desea ser contratado por un fondo. Sus conocimientos de programación serán tan importantes, si no más, que sus conocimientos de estadística y econometría. En general, los costes de transacción tienen tres componentes: Las comisiones (o impuestos), que son las tasas que cobran los agentes de bolsa, la bolsa y la SEC (u otro organismo regulador gubernamental similar); el deslizamiento, que es la diferencia entre el precio al que pretendía que se ejecutara su orden y el precio al que se ejecutó realmente; el diferencial, que es la diferencia entre el precio de compra y el de venta del valor negociado. Tenga en cuenta que el diferencial NO es constante y depende de la liquidez actual (es decir, la disponibilidad de órdenes de compra/venta) en el mercado.
Los costes de transacción pueden marcar la diferencia entre una estrategia extremadamente rentable con un buen ratio de Sharpe y una estrategia extremadamente poco rentable con un terrible ratio de Sharpe. Puede ser un reto predecir correctamente los costes de transacción a partir de un backtest. Dependiendo de la frecuencia de la estrategia, necesitará acceder a los datos bursátiles históricos, que incluirán datos de ticks para los precios de compra y venta. Por estas razones, equipos enteros de quants se dedican a optimizar la ejecución en los fondos más grandes. Consideremos el caso de un fondo que necesita descargar una cantidad sustancial de operaciones (¡las razones para hacerlo son muchas y variadas!). Al «volcar» tantas acciones en el mercado, deprimen rápidamente el precio y pueden no obtener una ejecución óptima. De ahí que existan algoritmos que «alimentan por goteo» las órdenes en el mercado, aunque entonces el fondo corre el riesgo de deslizamiento. Además, otras estrategias se «aprovechan» de estas necesidades y pueden explotar las ineficiencias. Este es el ámbito del arbitraje de la estructura del fondo.
El último problema importante para los sistemas de ejecución se refiere a la divergencia del rendimiento de la estrategia con respecto al rendimiento comprobado. Esto puede ocurrir por varias razones. Ya hemos analizado en profundidad el sesgo de anticipación y el sesgo de optimización, al considerar las pruebas retrospectivas. Sin embargo, algunas estrategias no facilitan la comprobación de estos sesgos antes de su despliegue. Esto ocurre sobre todo en la HFT. Puede haber errores en el sistema de ejecución, así como en la propia estrategia de negociación, que no aparecen en un backtest, pero que SÍ aparecen en la negociación en vivo. El mercado puede haber sido objeto de un cambio de régimen con posterioridad al despliegue de su estrategia. Los nuevos entornos normativos, los cambios en el sentimiento de los inversores y los fenómenos macroeconómicos pueden provocar divergencias en el comportamiento del mercado y, por tanto, en la rentabilidad de su estrategia.
Gestión del riesgo
La última pieza del rompecabezas del trading cuantitativo es el proceso de gestión del riesgo. «Riesgo» incluye todos los sesgos anteriores que hemos discutido. Incluye el riesgo tecnológico, como el hecho de que los servidores ubicados en la bolsa desarrollen repentinamente una avería en el disco duro. Incluye el riesgo de intermediación, como la quiebra del intermediario (no es tan descabellado como parece, dado el reciente susto con MF Global). En resumen, cubre casi todo lo que podría interferir en la ejecución de las operaciones, de las que hay muchas fuentes. Hay libros enteros dedicados a la gestión del riesgo para las estrategias cuantitativas, por lo que no intentaré dilucidar aquí todas las posibles fuentes de riesgo.
La gestión del riesgo también abarca lo que se conoce como asignación óptima del capital, que es una rama de la teoría de la cartera. Es el medio por el que se asigna el capital a un conjunto de estrategias diferentes y a las operaciones dentro de esas estrategias. Es un área compleja y se basa en algunas matemáticas no triviales. La norma del sector por la que se relacionan la asignación óptima de capital y el apalancamiento de las estrategias se denomina criterio de Kelly. Como este es un artículo introductorio, no me detendré en su cálculo. El criterio de Kelly hace algunas suposiciones sobre la naturaleza estadística de los rendimientos, que no suelen cumplirse en los mercados financieros, por lo que los operadores suelen ser conservadores a la hora de ponerlo en práctica.
Otro componente clave de la gestión del riesgo está en tratar el propio perfil psicológico. Hay muchos sesgos cognitivos que pueden introducirse en el trading. Aunque hay que reconocer que esto es menos problemático con el trading algorítmico si la estrategia se deja sola. Un sesgo común es el de la aversión a las pérdidas, cuando una posición perdedora no se cierra por el dolor de tener que realizar una pérdida. Del mismo modo, los beneficios pueden tomarse demasiado pronto porque el miedo a perder un beneficio ya obtenido puede ser demasiado grande. Otro sesgo común es el conocido como sesgo de recencia. Se manifiesta cuando los operadores ponen demasiado énfasis en los acontecimientos recientes y no en el largo plazo. Y, por supuesto, está el clásico par de sesgos emocionales: el miedo y la codicia. Estos a menudo pueden conducir a un apalancamiento insuficiente o excesivo, lo que puede causar un estallido (es decir, que la equidad de la cuenta se dirija a cero o peor) o la reducción de los beneficios.
Resumen
Como se puede ver, el comercio cuantitativo es un área extremadamente compleja, aunque muy interesante, de las finanzas cuantitativas. En este artículo he arañado literalmente la superficie del tema y ya se está alargando bastante. Se han escrito libros y artículos enteros sobre cuestiones a las que yo sólo he dedicado una o dos frases. Por eso, antes de solicitar puestos de trabajo en el ámbito de la negociación de fondos cuantitativos, es necesario llevar a cabo una cantidad significativa de estudio de base. Como mínimo, necesitará una amplia formación en estadística y econometría, con mucha experiencia en la implementación, a través de un lenguaje de programación como MATLAB, Python o R. Para estrategias más sofisticadas en el extremo de mayor frecuencia, es probable que su conjunto de habilidades incluya la modificación del núcleo de Linux, C/C++, la programación en ensamblador y la optimización de la latencia de la red.
Si está interesado en tratar de crear sus propias estrategias de negociación algorítmica, mi primera sugerencia sería ser bueno en la programación. Mi preferencia es construir la mayor parte del capturador de datos, el backtester de la estrategia y el sistema de ejecución por ti mismo como sea posible. Si su propio capital está en juego, ¿no dormiría mejor por la noche sabiendo que ha probado completamente su sistema y que es consciente de sus escollos y problemas particulares? Subcontratar esto a un proveedor, aunque potencialmente ahorre tiempo a corto plazo, podría ser extremadamente caro a largo plazo.