The Online Portfolio Selection problem has been extensively researched over the years, and various models have been implemented in open-source projects on GitHub. However the theoretical frameworks of the papers are quite convenient for their authors and make assumptions that are incompatible with real-life trading (no transaction fees and impact costs, perfect market liquidity, buying & selling arbitrary quantities of shares...).
As expected, I found multiple strategies that work well without transaction fees but whose performance degrade rapidly, being unprofitable with more than 0.1% of fees.
Also, in production, it is possible to rebalance the weights :
- after a buy/sell sequence to account for the fees;
- after rounding to the shares' quantities accepted by the exchange;
- after network issues, server maintenances... where orders didn't go through;
- after no/partial order execution;
All these real-life constraints bring us away from the optimal solution of the model implemented in the algo. I confirmed it live over the course of a month: a spiral down to hell. What is the point of implementing and tweaking the best state-of-the-art model if it only works in utopic conditions and is going to be wrecked in real-life? I could not find any guidelines on adapting OLPS models to live trading, any insight would be welcome.