Conozco la metodología FIFO de compensación de compras y ventas para obtener una cuenta de resultados realizada y una posición pendiente. Supongamos que hay una estrategia que se ejecuta en dos lugares diferentes A, y B y trata de colocar operaciones en A y B que se compensan (como el comercio de pares). En la práctica, ambos generarán un registro de operaciones (A.trades y B.trades). Cuando hago el backtest de la estrategia, miro las operaciones en el orden de concatenación de B.trades a A.trades. Este pnl puede ser muy diferente de concatenar de la otra manera, o intercalar de forma más realista haciendo coincidir las operaciones ajustadas a la zona horaria. Por ejemplo. Sólo a título ilustrativo. Supongamos que tenemos:
A.oficios
Sell 1 for 10$
Buy 2 for 10$
Sell 3 for 7$
y B.trades:
Buy 1 for 5$
Buy 2 for 5$
Si concateno B.trades con A.trades y ejecuto un algoritmo fifo obtengo una PNL realizada de 1$ con 1 acción que queda larga. Sin embargo, si los intercalo podría tener:
Interleaved.trades:
Sell 1 for 10$
Buy 1 for 5$
Buy 2 for 5$
Buy 2 for 10$
Sell 3 for 7$
Y entonces en ese caso el algoritmo FIFO me da un P&L realizado de 6$ con una acción larga al final. Puedo ver al ejecutar esto a mano que la razón es que la compra "más cara" se deja sin emparejar en el segundo caso. Pero ilustra lo mucho que puede influir en P&L. Ahora bien, no siempre es sencillo intercalar las operaciones en el orden correcto de tiempo si las unidades son pequeñas y hay desviación del reloj (midiendo el tiempo en dos lugares diferentes con relojes diferentes) por lo que no siempre está claro que podamos capturar un ordenamiento universal. ¿Qué se podría hacer o se hace en la práctica con una situación como ésta?