

En este artículo, exploraremos el diseño y la implementación de algoritmos comerciales en criptomonedas. En particular, nos centramos en algoritmos de ejecución, algoritmos de creación de mercado y varias consideraciones sobre la microestructura del mercado. También examinamos dónde la práctica se desvía de la teoría, particularmente al abordar las peculiaridades de los mercados de criptomonedas.
El objetivo del algoritmo de ejecución es transformar el estado de la cartera en un estado diferente minimizando el costo de hacerlo. Por ejemplo, si desea aumentar su exposición a BTCUSD en 1000, probablemente no desee lanzar una orden de mercado en el canal comercial de BitMEX de inmediato, lo que provocaría un deslizamiento masivo. En lugar de ello, podría considerar construir lentamente su posición deseada a través de una combinación de órdenes de mercado y limitadas en múltiples bolsas diferentes.
Generalmente hay 3 capas de algoritmos de ejecución: macrotrader, microtrader y enrutador inteligente.
La capa macrotrader divide una orden inicial grande o una orden principal en subórdenes más pequeñas a lo largo del tiempo. Esta es en realidad la parte de programación de todo el algoritmo. VWAP, TWAP y POV son ejemplos comunes y simples de algoritmos macrotrader. Normalmente, existen muchos modelos de impacto de mercado diferentes que se pueden utilizar para diseñar una capa macrocomercial compleja. Los modelos de impacto del mercado están diseñados para analizar la reacción del mercado ante una ejecución. ¿El mercado seguirá siendo el mismo después de la ejecución? ¿O ir más allá? ¿O volverá a ocurrir en cierta medida? Dos de los modelos de impacto de mercado más importantes son el modelo de impacto de mercado permanente de Almgren-Chriss (1999, 2000) y el modelo de impacto de mercado transitorio de Obizhaeva-Wang (2013). En base a esto, en la práctica los efectos del mercado no son permanentes, por lo que el modelo de Obizhaeva-Wang parece ser más realista y desde entonces se han desarrollado muchos modelos nuevos para abordar sus deficiencias.

Lectura adicional: La influencia del mercado comienza a decaer después del trading algorítmico https://arxiv.org/pdf/1412.2152.pdf
La capa de microtrader decide para cada orden secundaria si ejecutarla como una orden de mercado o una orden limitada y, si es como una orden limitada, a qué precio. Hay poca literatura sobre el diseño de microtraders porque el tamaño de una suborden suele ser una pequeña fracción del mercado total, por lo que la forma en que se ejecuta no es importante. Sin embargo, el mercado de criptomonedas es diferente porque la liquidez es muy escasa y el deslizamiento es muy notorio incluso para subórdenes de tamaño normal en la práctica. Los diseños de microtraders a menudo se centran en el tiempo y la profundidad, la posición de la cola y otras características de la microestructura del mercado. Se garantiza que las órdenes de mercado (que son lo mismo que las órdenes limitadas si ignoramos la latencia) se ejecutarán, mientras que las órdenes limitadas no tienen tal garantía. Si no se garantiza la ejecución, podría retrasarse en el plan de negociación que estableció con su macrotrader.
La capa de enrutador inteligente decide cómo dirigir las órdenes a diferentes intercambios. Por ejemplo, si Kraken tiene el 60% de la liquidez y GDAX (Coinbase ProPrime) tiene el 40% de la liquidez en un nivel de precio específico, entonces el microtrader debería importar órdenes a los intercambios Kraken y GDAX en una proporción del 60% y 40% respectivamente. . Lugar.
Ahora, se podría decir que los arbitrajistas y los creadores de mercado en el mercado mueven liquidez de un intercambio a otro, por lo que si ejecuta la mitad de su orden en Kraken y espera unos segundos, parte de la liquidez irá de los arbitrajistas a los arbitrajistas. Añade arbitrajes estadísticos a la liquidez de GDAX en Kraken y podrás hacer el resto a precios similares. Sin embargo, incluso en este caso, los arbers le cobrarán una prima para su propio beneficio y trasladarán sus propios costos de cobertura a la tarifa de creación de mercado de Kraken. Además, algunos participantes del mercado colocan órdenes en cantidades mayores a las que desean colocar en múltiples intercambios y cancelan las cantidades excedentes una vez que se detienen.
Al final, es mejor tener tu propio enrutador inteligente local. Este enrutador inteligente local también tiene una ventaja de latencia frente a los servicios de enrutadores inteligentes de terceros. En el primer caso, puede enrutar directamente al intercambio, mientras que en el segundo caso, primero debe enviar un mensaje a un servicio de enrutador de terceros, que luego envía su pedido al intercambio (además, debe enviar un El tercero paga la tarifa del enrutador). La suma de dos catetos de un triángulo es mayor que el tercer cateto.
La creación de mercado implica proporcionar liquidez inmediata a otros participantes del mercado y recibir una compensación por ello. Usted asume el riesgo de inventario a cambio de un valor esperado positivo. En última instancia, los creadores de mercado reciben compensación por dos razones. En primer lugar, los tomadores de mercado tienen una gran preferencia temporal y necesitan inmediatez. A cambio, los creadores de mercado que facilitan la liquidez pueden compensar su menor preferencia temporal y su paciencia. En segundo lugar, las ganancias y pérdidas de los creadores de mercado se inclinan hacia la izquierda y, por lo general, la mayoría de los traders tienen una preferencia hacia la derecha. En otras palabras, los creadores de mercado son similares a los corredores de apuestas en los mercados de apuestas, casinos, compañías de seguros y loterías nacionales. A menudo ganan poco y pierden mucho con poca frecuencia. Como recompensa por este retorno inesperado, los creadores de mercado reciben una compensación con el valor esperado.

Lectura adicional: Asimetría https://en.wikipedia.org/wiki/Skewness
Desde una perspectiva de alto nivel, las órdenes limitadas son opciones gratuitas en otros mercados. El resto del mercado tiene el derecho, pero no la obligación, de comprar o vender el activo al precio límite de la orden limitada. En un mercado donde la información es perfectamente conocida, nadie vendería opciones gratuitas. Esto se debe a que el mercado en general no es uno donde la información sea perfectamente conocida y vender opciones gratuitas nunca tiene sentido. Por otro lado, si la información del mercado es completamente desconocida, entonces los creadores de mercado neutrales al riesgo están dispuestos a vender estas opciones de órdenes limitadas gratuitas con spreads extremadamente pequeños porque todas las transacciones son ruido. Obviamente, los participantes reales del mercado son un grupo heterogéneo, cada uno con un grado único de información conocida y desconocida.
Al diseñar un algoritmo de creación de mercado, hay tres perspectivas a considerar: la del creador de mercado, la de los participantes del mercado y la de otros creadores de mercado.
Las propias opiniones de los creadores de mercado están representadas por sus inventarios. Si ya tiene demasiada exposición a activos, entonces podría querer ofertar un precio más bajo y viceversa. Esto lo haces por dos razones diferentes. En primer lugar, como corporación tienes un cierto grado de aversión al riesgo (probablemente menor que un individuo, pero tu curva de utilidad monetaria sigue siendo cóncava).
Existen muchas estructuras para la forma de esta función de utilidad (por ejemplo, CARA, CRRA, HARA, etc.). En segundo lugar, como proveedor de liquidez pasivo en el mercado, enfrentará el riesgo de selección adversa. Los receptores de liquidez positiva pueden saber algo que usted no sabe, o simplemente ser más inteligentes que usted. Se trata básicamente de vender opciones gratuitas al mercado.
Además, incluso a nivel mecánico, una orden de mercado que mueve el precio reduce el precio a valor de mercado, mientras que una orden de mercado que mueve el precio hacia arriba mueve el precio a valor de mercado. En el momento exacto de cualquier operación, usted siempre está en el lado equivocado. Además, las cotizaciones de los creadores de mercado tendrán un impacto pasivo en el mercado. En otras palabras, el acto de enviar una orden a un libro de órdenes no completado al menos aleja el mercado de usted.

Lectura adicional: Función de aversión al riesgo https://en.wikipedia.org/wiki/Risk_aversion
La visión del tomador de mercado está representada por el flujo de órdenes. La frecuencia de llegada de pedidos ponderada por volumen en función de la profundidad debería tener algunas propiedades clave.
La función debería ser:
Más allá de eso, está el factor desconocido de cuál debería ser un “precio medio justo”. Al enviar y cancelar órdenes profundas, el precio medio entre la mejor oferta y la mejor demanda es susceptible a precios de ruido.
Además, dados dos casos con formas de cartera de órdenes idénticas, la mejor oferta de la última cartera de órdenes indicará un precio justo que es inferior a la mejor oferta de la primera cartera de órdenes. Otra pregunta es si el historial de la cartera de órdenes es importante y, de ser así, ¿deberíamos centrarnos en el precio-tiempo o en el volumen-tiempo? Entonces, ¿dónde debería colocarse la orden límite óptima del creador de mercado, dadas las características de la liquidez del mercado? Si reduce la profundidad en la parte superior del libro de órdenes, sus órdenes profundas serán abundantes, pero pocas a la vez. Si reduce la profundidad en la parte inferior del libro de órdenes, sus órdenes de profundidad serán escasas, pero habrá muchas de ellas en todo momento.
En realidad, se trata de un problema de optimización convexa con un máximo global único. Otra consideración es que el flujo de órdenes llega a través del tiempo y se parece un poco a un “proceso de Poisson” (https://zh.wikipedia.org/wiki/%E6%B3%8A%E6%9D%BE%E8%BF% 87%E7%A8%8B). Algunos sostienen que está más cerca del “Proceso de Hawkes” (http://jheusser.github.io/2013/09/08/hawkes.html). Además, los rebotes de compra y venta que los creadores de mercado intentan capturar son los más cortos. versión del término reversión a la media. Dado que esta reversión a la media de ultracorto plazo se escala según la volatilidad local, tiene sentido que los creadores de mercado amplíen sus cotizaciones cuando los precios son altos y las ajusten cuando los volúmenes son bajos.

Lectura adicional: intensidad de llegada de orden con respecto a la profundidad (https://arxiv.org/pdf/1204.0148.pdf)

Lectura adicional: Proceso de Hawkes (http://jheusser.github.io/2013/09/08/hawkes.html)
Las opiniones de otros creadores de mercado están representadas en este libro de órdenes. La cartera de órdenes revela información sobre otros creadores de mercado. Hay más ofertas que solicitudes cerca de la parte superior del libro de órdenes, lo que indica que otros creadores de mercado están más dispuestos a vender que a comprar. Es posible que estos creadores de mercado ya tengan grandes excedentes de inventario desequilibrados o simplemente crean que es más probable que los precios bajen que suban en el corto plazo. En cualquier caso, como creador de mercado, usted puede ajustar sus cotizaciones en función de las desviaciones en la cartera de órdenes.
Además, cuando los creadores de mercado compiten entre sí, a menudo verá este comportamiento de “tick de centavo” si los ticks son pequeños. Los creadores de mercado trabajan compitiendo entre sí para determinar el precio hasta que se llega a un punto de capitulación y sólo un “ganador” tiene prioridad. Una vez determinado el ganador, el segundo puesto generalmente retrocederá al precio anterior antes de la siguiente mejor oferta o puja. Si pierde una prioridad de cotización, es posible que pueda obtener una segunda prioridad de cotización. Esto da como resultado un fenómeno de regresión donde el ganador ahora retrocede un movimiento de precio por delante del segundo lugar y el juego de la misma escalera con dos escaladores comienza de nuevo.

Lectura adicional: http://parasec.net/transmission/order-book-visualisation/
Finalmente, las señales direccionales de largo plazo pueden anular los algoritmos de creación de mercado, donde el objetivo del algoritmo de creación de mercado ya no es mantener los inventarios estables o sin cambios, sino tener en cuenta algunos objetivos a largo plazo y las desviaciones correspondientes para que se hagan realidad.
La velocidad es importante por dos razones principales. En primer lugar, puedes completar los pedidos en el libro de pedidos antes de que se cancelen. En segundo lugar, puedes cancelar un pedido en el libro de pedidos antes de que se complete. En otras palabras, desea tener la iniciativa en la ejecución y cancelación de órdenes en todo momento. Los algoritmos de arbitraje (activos) y los algoritmos de ejecución (activos) se preocupan más por los primeros, mientras que los algoritmos de creación de mercado (pasivos) se preocupan más por los segundos.
En general, en principio, las estrategias que más se benefician de la velocidad son aquellas con la lógica más simple. Cualquier lógica compleja seguramente ralentizará el tiempo de ida y vuelta. Estos complejos tipos de estrategias algorítmicas son los coches de Fórmula 1 del mundo del trading. La validación de datos, los controles de seguridad, la configuración del hardware, los métodos de orquestación, etc. pueden eliminarse en favor de la velocidad. Omita OMS, EMS y PMS (sistema de gestión de cartera de proyectos) y conecte directamente la lógica computacional en la GPU a la interfaz API binaria del intercambio ubicado conjuntamente. Un juego rápido y peligroso.
Otro tipo de estrategia sensible a la velocidad, la estrategia de arbitraje estadístico relativo, es que el servidor está ubicado en realidad entre múltiples intercambios en lugar de coexistir con un solo intercambio. Si bien no serán los más rápidos con los datos de un solo exchange, obtendrán los precios antes que cualquier otra estrategia y podrán actuar sobre datos correlacionados y cointegrados.

Lectura adicional: Ubicaciones óptimas de nodos de negociación intermedios para las bolsas de valores más grandes del mundo (https://www.alexwg.org/publications/PhysRevE_82-056104.pdf)
En el juego de velocidad, el ganador se lo lleva todo. En el ejemplo más simple, si existe una oportunidad de arbitraje, entonces quien pueda aprovecharla primero se beneficiará. El segundo lugar obtiene migajas, el tercer lugar no obtiene nada. Es probable que los rendimientos se distribuyan según una ley de potencia. (Acerca de la ley de potencia: https://zh.wikipedia.org/wiki/%E5%86%AA%E5%AE%9A%E5%BE%8B)
El juego de velocidad también es una competición. Una vez que todos pasen de redes de fibra a redes de microondas o láser, todos volverán a estar en igualdad de condiciones y cualquier ventaja inicial se convertirá en un producto básico.
La mayoría de los motores que combinan pedidos siguen un enfoque que prioriza el precio y luego el tiempo (la coincidencia proporcional es una alternativa menos común, pero no las consideraremos por ahora). El mejor precio se ejecutará antes de que se ejecute la orden límite al peor precio. Para órdenes limitadas al mismo precio, la orden enviada anteriormente se ejecutará antes que la orden enviada posteriormente.
Binance divide las órdenes hasta 8 decimales. Si el precio de una transacción es .000001, entonces el precio de .00000001 es el 1% de la transacción. Si el precio de la transacción es 0,0001, entonces el precio de 0,00000001 es 1bps (es decir, un salto). Esa es una gran diferencia. En el primer caso, saltarse un pedido grande cuesta un punto completo, por lo que la prioridad temporal es más importante, mientras que en el segundo caso, es 100 veces más barato, por lo que la prioridad del precio es más importante.
En otras palabras, si tiene que pagar el 1% completo para obtener prioridad, puede que no valga la pena porque está pagando una cantidad relativamente grande mientras aumenta la probabilidad de que se complete una cantidad relativamente pequeña, y probablemente una mejor opción sería esperar en fila, pero si solo tiene que pagar 1 punto básico para obtener prioridad comercial, puede hacerlo porque está reduciendo el costo marginal en una cantidad relativamente pequeña mientras aumenta la probabilidad de que se complete una cantidad relativamente grande de transacciones. Los ticks de precios más pequeños favorecen la prioridad del precio, los ticks de precios más grandes favorecen la prioridad del tiempo.
Esto nos lleva naturalmente a la siguiente pregunta: ¿Cuánto vale tu posición en la cola? (Lectura ampliada: https://moallemi.com/ciamac/papers/queue-value-2016.pdf)

Sólo hay dos maneras de reducir el número de transacciones en un libro de órdenes: o se cancela activamente o se completa. Si la reducción es causada por el proceso comercial, entonces todos los demás precios, excepto éste, también se reducirán debido al proceso comercial. Podemos ordenar estos registros de transacciones ordenándolos y marcando si cada reducción se debe a una transacción o una cancelación.
Intuitivamente, un intercambio significa que dos partes acuerdan comerciar a un precio específico, mientras que una cancelación significa que una parte decide que ya no está dispuesta a comprar o vender a un precio específico. Entonces, en la superficie, podríamos decir que una cancelación en la mejor oferta es una señal muy fuerte de que el precio del mercado se moverá hacia abajo en el corto plazo, seguido por un precio comercial que lo seguirá de cerca.
Por otro lado, el precio en el libro de órdenes comienza a subir, lo que solo puede tener una posibilidad: aumentar el número de órdenes límite restantes.
Tanto los incrementos como las disminuciones en la cartera de órdenes indican las intenciones privadas de los participantes del mercado, proporcionando así señales de movimientos de precios a corto plazo.
Actualmente, la mayoría de los índices de precios toman datos comerciales de múltiples bolsas y los agregan para obtener un precio promedio ponderado por volumen. En particular, el Índice Tradeblock también aumentará el mecanismo de penalización para los pesos de cambio, ya que los pesos de cambio están estrechamente relacionados con los intercambios inactivos y los intercambios cuyos precios se desvían demasiado. ¿Qué más podemos mejorar?
En GDAX, la comisión del creador es de 0 puntos básicos y la del tomador es de 30 puntos básicos. Por ejemplo, si el precio de la transacción se muestra como \(4000/BTC, el precio de venta real es \)4000/BTC y el precio de compra es \(4012/BTC. . El “precio justo” para esta transacción debería estar más cerca de \)4006/BTC que del precio real mostrado. Por otro lado, dado que la tarifa de 25 puntos básicos de Bittrex se aplica tanto a los creadores como a los tomadores, el precio real es el precio que se muestra. En otras palabras, el precio mostrado de \(4000/BTC es en realidad un comprador que compra a \)4010/BTC y un vendedor que vende a $3990/BTC, siendo el precio promedio el precio mostrado en sí.
Por lo tanto, desde la perspectiva de descubrimiento de precios, los precios de los registros de transacciones no son directamente comparables entre intercambios, sino que deberían estandarizarse después de tener en cuenta lo anterior al construir un índice de precios. Por supuesto, existen algunos factores complejos que dan lugar a diferentes comisiones en función del volumen de operaciones. Por ejemplo, algunas bolsas establecen y cobran comisiones a los tomadores y creadores de transacciones en función del tamaño del volumen de operaciones. Esto también sugiere dos corolarios interesantes.
En primer lugar, el descubrimiento de precios es limitado, en cierto modo, y al mismo tiempo refuerza la asimetría entre las tarifas de los creadores y los tomadores que divide a los intercambios. Suponiendo que la mayoría de las cuentas en GDAX están en el nivel de tarifa de creador y tomador de 0/30bps y GDAX normalmente tiene un diferencial de 1 centavo en su libro de órdenes BTCUSD, el precio que se muestra en la oferta/demanda para cada operación es aproximadamente el “valor justo”, dentro de 15 puntos de contado y cada transacción alta o baja, el precio mostrado en el medio es aproximadamente el “valor justo”. Así, el “precio justo” en tiempos de calma oscila rápidamente entre estos dos puntos, sin que se produzca ningún refinamiento adicional en el descubrimiento de precios entre ellos.

Libro de órdenes de GDAX
En segundo lugar, como ocurre con la relación fiscal entre productores y consumidores, existe una cierta equivalencia en las tasas de comisiones que se pagan entre creadores y receptores. Si se cobran a los creadores tarifas relativamente mayores, ellos ampliarán la cartera de órdenes y pasarán algunas de las tarifas a los tomadores. Si le cobras al tomador comisiones relativamente más altas, entonces el creador restringirá la cartera de órdenes y absorberá parte de las comisiones del tomador.
Un caso extremo aquí es cuando te gusta tanto el creador que el libro de órdenes se comprime en un solo tick en el spread (como vemos a menudo en GDAX) y el libro de órdenes no puede ser más ajustado. En base a esto, cualquier tarifa adicional ahora recaerá sobre el propio exchange como pérdida de ingresos.
Aparte de este ejemplo extremo, podemos ver que no importa qué lado recauda las tarifas, sino la suma de las tarifas del tomador y del creador. En última instancia, como ocurre con la curva de Laffer en la política fiscal, las bolsas enfrentan un problema de optimización de ingresos en su política de tarifas. Podemos ver que el ingreso por ganancias es lo mismo que la política fiscal. Si los exchanges no cobran ninguna comisión, no tienen ingresos. Si el exchange cobrara comisiones del 100%, no habría transacciones y, por lo tanto, no habría ingresos para ellos. Con un poco de investigación adicional, queda claro que los ingresos por intercambio a nivel de tarifa total son una función cóncava con un máximo único.

Glosario: Curva de Laffer (https://en.wikipedia.org/wiki/Laffer_curve)
Continuará