Trading de Alta Frecuencia [cerrado]


En el último par de semanas me he encontrado con un montón de artículos sobre el comercio de alta frecuencia. Todos hablan de lo importantes que son las computadoras y el software para esto, pero como todos están escritos desde un punto de vista financiero, no hay detalles sobre lo que hace el software.

¿Puede alguien explicar desde el punto de vista de los programadores qué es el comercio de alta frecuencia? ¿y por qué la informática / software es tan importante en este campo?

 57
Author: Itay Karo, 2009-07-24

6 answers

Para ampliar lo que Pablo dijo:

El servidor que ejecuta HFT o UHFT casi siempre está colocado en el centro de datos del exchange. Esto minimiza la latencia y también permite que los algos usen órdenes Flash (que podrían ser prohibidas pronto) para obtener un primer vistazo al flujo de órdenes antes de que la orden se transmita al mercado. muchos algo evaluarán un orden en solo unos pocos milisegundos y este es un juego donde los milisegundos importan. Se sabe que los grupos comerciales retiran todas las paradas, incluida la contratación desarrolladores de kernel para construir componentes de SO personalizados para optimizar mejor el tiempo entre cuando una orden llega a la NIC y cuando se toma la acción resultante.

Hay un par de grandes cubos de estrategias que se utilizan comúnmente hoy en día:

El primero es operar frente a órdenes de bloque grandes. Para usar el ejemplo de Paul de comprar un millón de acciones de IBM, HFT algo buscará presión de compra. Las computadoras de las firmas en diversos intercambios y piscinas oscuras necesitarán compartir la información ya que la orden se dividirá y generalmente se ejecutará a través de múltiples intercambios y grupos oscuros. Un HFT algo utilizará modelos estadísticos / aprendidos por máquina para predecir el tamaño de la presión de compra y, si determina que hay suficiente, también acumulará acciones de todos los mercados e intentará venderlas a un precio ligeramente más alto.

El segundo es el intercambio de reembolsos de liquidez, en el que las bolsas pagarán a los participantes del mercado para que agreguen liquidez. ( Ver Borde directo Precios ) Las acciones que se compran o venden solo pueden mantenerse durante un período muy corto de tiempo. El objetivo es solo para recoger el reembolso y punto de equilibrio en todo lo demás.

En ambos tipos de estrategia la idea es hacer centavos (o fracciones) en un comercio y hacer esto muchas veces al día.

Como puede haber notado, hay muchos empleos HFT disponibles y, por lo tanto, los oficios se están volviendo más concurridos. Veo esto como una especie de stat arb desde principios de la década de 2000 y, finalmente, el el comercio no será muy rentable ya que muchos jugadores están tratando de hacerlo.

En cuanto a por qué el software es importante: los milisegundos importan. La latencia es muy importante y el código debe ser apretado, rápido y estable como una roca. Tener un desplome de algo y ser atrapado con acciones cuando el mercado se mueve en su contra no es muy rentable. La ingeniería para estos requisitos es necesariamente diferente y requiere habilidades diferentes. Crunching el libro de pedidos completo en tiempo real requiere algunos caballos de fuerza y buenos algoritmos. Sin embargo, es divertido e interesante.

 58
Author: Steve Severance,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2010-01-04 19:24:45

Hay dos partes en cualquier sistema HFT:

  1. Trading de latencia súper baja en tiempo real: suscríbase a la información del libro de órdenes y precios en tiempo real de muchas fuentes diferentes, ejecute algoritmos calibrados diseñados para llevar a cabo una orden grande con un deslizamiento mínimo (es decir, desea comprar 1 millón de acciones de IBM al final del día sin mover demasiado el mercado), o simplemente para tratar de ganar dinero estadísticamente basado en el arbitraje a corto plazo. Este sistema también tiene que proporcionar buenas herramientas de gestión de riesgos y posiciones para permitir que uno o más operadores humanos monitoreen y controlen de manera efectiva lo que está haciendo el sistema.

  2. Noche / Semana, etc. análisis de grandes cantidades de " tick data "(información de precio, tiempo y libro de órdenes, y datos históricos sobre la actividad comercial anterior de los sistemas), buscando optimizar y" buscar " los mejores algoritmos para ser ejecutados en tiempo real por parte #1. es decir, "calibrar" y probar los algoritmos que se ejecutarán en #1.

El primero requiere baja latencia y un acceso extremadamente bueno a los mercados (es decir, una conexión de red directa a la bolsa con saltos mínimos). Esta parte generalmente tiene que ser escrita en un lenguaje no GC como C o C++ (un retraso de medio segundo mientras el recolector de basura detiene el mundo podría ser muy costoso). El segundo generalmente requiere una cuadrícula y un montón de buen software de simulación y análisis estadístico, algoritmos de IA, etc.

 20
Author: Paul Hollingsworth,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2009-07-24 11:22:19

Yo solo añadiría, que las aplicaciones más frecuentes en este tipo de comercio tienden a ser CEP (procesamiento de eventos complejos). Algunos ejemplos son Streambase, Apama y Aleri. Por otro lado, para hacer frente a las cantidades masivas de datos, las personas utilizan bases de datos de alta velocidad, como KDB, OneTick y Vhayu.

Si desea comprender el tipo de desafíos técnicos, le sugiero que primero mire a estos proveedores. Sus materiales de marketing le darán un buen sentido del negocio aplicaciones así como los desafíos técnicos.

 8
Author: Shane,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2009-09-10 06:19:35

En ciertos momentos (por ejemplo, en una expiración de futuros) es necesario hacer miles de operaciones por minuto - obviamente los seres humanos no pueden hacer esto sin ayuda. Por cierto, este es un momento muy estresante para el programador, ya que si algo sale mal, casi no hay posibilidad de recuperación: los programadores tienden a ver sus archivos de registro pasar por streaming con sus corazones algo en la boca.

 7
Author: ,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2009-07-24 11:16:44

Es necesario realizar un seguimiento de los precios, decidir rápidamente lo que está subiendo y bajando y comprar y vender en consecuencia. Dado que hay un montón de diferentes posiciones negociadas el mejor software que utiliza para ese análisis y la realización de ofertas de más dinero que potencialmente puede hacer.

Mejor significaría actualizar datos con frecuencia, identificar tendencias interesantes de tal manera que pueda reaccionar rápidamente, siendo fácil de usar cuando se realizan operaciones frecuentemente requeridas.

 3
Author: sharptooth,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2009-07-24 11:10:58

¿Por qué la computadora/software es tan importante en este campo?

El rendimiento más alto y la latencia más baja es deseable, ya que cuanto más rápido pueda reaccionar a las cosas, más dinero puede ganar potencialmente.

 1
Author: xyz,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2009-07-24 11:09:23