I am trying to combine long and short strategies into an L/S strategy in my backtesting program.
The way I have my backtester set up is it takes a signals
object (either from a short, or a long strategy). That signals
object tells the backtesting program the desired allocation for each ticker in my universe on each turn. Based on the target allocations, current positions, and account value, the backtesting program generates orders and simulates them.
To get a combined backtest, I don't think simply averaging, or adding the signals from different strategies is a good idea in my case. The signals are not standardized between strategies and act as more of a rank indicator (within a strategy).
I think one path forward is for me to create a virtual account for each strategy, so the backtester handles them separately and then pools the emitted orders and returns. However, I am not sure if I should share the cash position between these virtual accounts. It is also not clear how to manage exposure (on each strategy and overall). For example, if the orders from the two strategies start to cancel each other out, I think my exposure would be lower than the target. Plus, one strategy might start overweighing another. I am also not sure this approach would generalize well to more than two strategies / virtual accounts.
Another thing I can do is train another model that combines the signals. But I would rather hold off on that, as I would need additional data. Plus, I would prefer to get a working flat model first (to have as a baseline) before I try stacking.
I feel there should be an established preferred way of achieving what I am trying to do but I couldn't find much info on the topic. If you have some experience with this, please share your thoughts. Any advice would be helpful.
Thanks!