¿Cómo puedo calcular el retorno de una serie de acciones, posiciones múltiples desigual de las transacciones que puedo comparar con el equivalente de comprar y mantener retorno sobre el mismo período?
Random Example: Starting cash = $6000
Day[0]: Buy 100 shares of stock A @ $50 -- Long Position opened
Day[3]: Buy 10 shares of stock A @ $52
Day[6]: Sell 50 shares of stock A @ $60
Day[7]: Sell 60 shares of stock A @ $58 -- Position closed w/ zero shares
Day[10]: Buy 100 shares of stock A @ $55 -- Long Position opened
Day[16]: Sell 50 shares of stock A @ $65
Day[20]: Sell 50 shares of stock A @ $58 -- Position closed w/ zero shares
Return: ?
Buy and Hold:
Day[0]: Buy $6000 worth of stock A @ $50 (120 shares)
Day[20]: Sell 120 shares @ $58 ($6960)
Return = ($6960 - $6000) / $6000 * 100 = 16%
Estoy tratando de implementar esto en el código y la necesidad de encontrar una fórmula genérica/algoritmo que abarcaría cualquier caso.
EDITAR:
Yo podría haber sido overthinking esto antes...
Sólo el seguimiento de el valor de la cuenta a través de cada transacción y el cálculo de la cantidad final al final me puede conseguir la respuesta. Por ejemplo: el valor final después de todas las operaciones bursátiles es de $7610. Por lo tanto:
Return = (7610-6000)/6000 * 100 = 26.8%
Tal vez hay otra avanzada de retorno métrica que no soy consciente, pero esta parece ser la solución obvia para mí.