1 votos

Un libro de órdenes a límite genérico: ¿Cuáles son las consultas más importantes a las que debería poder responder?

Supongamos una clase LimitOrderBook que representa un libro de órdenes limitadas en un sistema de negociación.

Para poder representar el libro de órdenes limitadas, un gestor de datos lee un feed que añade datos a la representación del libro de órdenes limitadas utilizando los tres métodos siguientes:

  • public OrderReference add(Order order)
  • public boolean cancel(OrderReference orderReference)
  • public void execute(...)

Estos tres métodos modifican el estado del libro de órdenes a límite. Estos tres están más o menos dados, son necesarios para implementar la representación del LOB.

Además de esos tres métodos necesarios de "alteración del estado", una representación típica de LOB también proporciona una serie de métodos de consulta que los modelos comerciales pueden llamar. Un ejemplo obvio de este método sería getBestBid(...) .

¿Cuáles son los métodos de consulta más importantes que debe proporcionar una LOB general? O más concretamente, en los LOB que has construido, ¿qué métodos de consulta has incluido? ¿Por qué?

6voto

lomaxx Puntos 32540

No hay necesidad de complicar las cosas:

...
d = getBdepth();
d = getOdepth();
// for the calls below pos == 0 means the best bid/offer
p = getB(int pos); // bid price at pos
p = getO(int pos); // offer price at pos
q = getBq(int pos); // bid quantity at pos
q = getOq(int pos);// offer quantity at pos

Tenga en cuenta que la API anterior no es la mejor opción si su instancia de LimitOrderBook se actualiza en segundo plano. Pero mientras actualices su estado dentro del mismo hilo que realiza los cálculos de la estrategia estarás a salvo. En caso de actualizaciones asíncronas las cosas se complican un poco - necesitarás dos clases. La primera tendrá todos los métodos que describes más uno para obtener una instantánea estática del libro de órdenes en el momento actual:

...
public LimitOrderBookSnapshot getSnapshot();

La instancia LimitOrderBookSnapshot se realiza copiando sincrónicamente los datos que subyacen a su instancia LimitOrderBook. La API de LimitOrderBookSnapshot se compone de las seis llamadas que he descrito al principio de este post.

Tenga en cuenta también que en la solución real debe recordar la hora de obtención de la instantánea - si no lo hace puede acabar utilizando comillas que no estaban disponibles en el momento de obtener los datos del libro de órdenes.

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