1 votos

¿Qué tan bueno es el código administrado para el comercio de algo?

Actualmente trabajo en una empresa que se dedica al comercio de algo. Lo hacemos todo en Java. Y ganamos dinero con ello. Tenemos debates todo el tiempo sobre si habríamos hecho más dinero con nativo o VHDL en las tarjetas de red.

No hacemos operaciones de súper alta frecuencia, aunque sí más complicadas. Aunque tenemos que ser los primeros. Después de trabajar allí durante bastante tiempo me interesa más saber si Java es popular en esta área. (Y como nadie habla en ese campo me gustaría plantear este tema aquí).

Por mi experiencia he notado que tiene mucho que ver con la fiabilidad de la bolsa o del broker. Si no es muy fiable (como en muchas bolsas del mundo) un retraso de 2 milisegundos sería mucho más significativo que el idioma que elijas. Pero aún así, ¿cuántos eligen código gestionado?

7voto

Can Berk Güder Puntos 661

Sé (por boca de personas directamente implicadas, así que no puedo respaldarlo con una referencia) que Goldman Sachs utiliza mucho Java en el comercio de algo.

3voto

katie Puntos 21

Tengo experiencia en C# como cliente de estrategia al final de una planta de ticker VB .Net. ¡Las fluctuaciones de latencia causadas por la recolección de basura podían ser del orden de segundos! Y ocurrían cada cuatro o cinco minutos con un flujo de unos 1000 ticks por segundo.

Fui el primer ingeniero que probó nuestro sistema de comercio de esta manera, fue un shock para todos los involucrados y explicó muchos de los problemas que habíamos tenido.

Un sistema Java mucho más sencillo lo hacía mucho mejor, pero seguía inyectando 300 ms cada 10 minutos más o menos.

Un conjunto de adaptadores de alimentación gestionados en C++ sustituyó a la única planta de teletipos muy ocupada. El cliente de estrategia se mantuvo en C#: recogía manualmente la basura cada vez que tenía algo de tiempo libre.

2voto

Leahn Novash Puntos 1151

Otra razón para C++ es el control, o al menos la ilusión de tenerlo.

Si realmente te interesa saber qué va a pasar exactamente y cuándo va a pasar, entonces C++ es la mejor opción. Si estás dispuesto a esforzarte puedes conocer y controlar todo hasta el final.

Por supuesto, el precio de un mayor control en C++ es que a menudo hay que controlar cosas como la limpieza de la memoria que los entornos de código gestionado no requieren.

En la actualidad, la instrumentación y la predictibilidad, y no sólo la velocidad bruta, son aspectos importantes del comercio algorítmico. A menudo no basta con ser el más rápido de media si la varianza es demasiado alta, o si los eventos críticos se manejan con demasiada lentitud cuando el mercado está haciendo algo interesante.

1voto

Chris Puntos 378

Es muy posible producir código en Java que:

  1. No crea ninguna basura, por lo que la GC nunca entra en acción.

  2. Es un sistema JIT, por lo que las partes críticas serán compiladas por el punto de acceso.

Si lo haces, puedes obtener código tan rápido como en C++. Algunos de los fondos de cobertura HFT más exitosos utilizan Java.

Por ejemplo, hemos desarrollado un motor FIX ( CoralFIX ) que produce cero basura. Nuestros puntos de referencia muestran que es mucho más rápido que otros motores FIX desarrollados en C++.

Descargo de responsabilidad: Soy uno de los desarrolladores de CoralFIX

Finanhelp.com

FinanHelp es una comunidad para personas con conocimientos de economía y finanzas, o quiere aprender. Puedes hacer tus propias preguntas o resolver las de los demás.

Powered by:

X