La mayoría de los intercambios de proporcionar agresor lateral de la propiedad de oficios (por ejemplo, Etiqueta=5797 AggressorSide en CME) en los datos en bruto. Pero muchos de los proveedores de datos no proporcionan esta información a través de su datafeed de la API. Necesito un algoritmo para estimar con gran precisión el comercio del agresor lado.
Supongamos, puedo recibir la profundidad de las actualizaciones de los datos y de las operaciones de las actualizaciones. El más simple algoritmo es (en código Java):
public static int get_aggressor(int bid, int ask, int trade_price){
int aggr = Tags.UNKNOWN_SIDE;
if (bid < ask){ // i.e. no cross
if (trade_price >= ask){
aggr = Tags.BUY_SIDE;
} else if (trade_price <= bid){
aggr = Tags.SELL_SIDE;
}
}
return aggr;
}
donde bid
y ask
son los mejores los precios bid/ask en un momento en que el comercio fue recibido. Este algoritmo puede no detectar el agresor cuando el comercio en la cuestión afecta a la mejor oferta/demanda.
Pregunta: Supongamos que tengo la historia de las recientes actualizaciones de precios. Cómo mejorar la precisión de que el agresor algoritmo de detección? También, considere la posibilidad de dos tipos de alimentación de datos:
- Los oficios siempre llega antes de que la dio como resultado el precio de las actualizaciones
- El orden de las actualizaciones de llegada en #1 no está garantizada.
Por favor, hágamelo saber si hay investigaciones publicadas sobre este tema.