Hi Brian!
I hope you are doing well!
According to the usage guide, capital is currently distributed between multiple strategies using static quantrocket.moonshot.allocations.yml file. This seems pretty basic. What if, for instance, a strategy is only effective during some market conditions? Or intraday strategy that only enters into positions during certain times a day? Or a strategy that enters a position after certain rare events? Money allocated to such strategies need not lay in cash, while they are not used by the strategy. So how can we implement a more complex logic for multiple strategy rebalancing?
I currently see this as creating some meta-strategy, that will encapsulate all strategies (as a list), and define its own trade method with its own logic, sometimes simply calling target strategy trade method, sometimes going through the modified trade logic on itself and calling target strategy methods separately. However, before I start writing the code I wanted to confer with you - this seems to be a rather typical task for a trading system, so maybe there are already some recommendations on how to implement strategy rebalancing logic. Maybe there are some code samples for this too?
Additionally question about current rebalancing system: the strategy gets Net Liquidation Value for the account and calculates allocations from it, but it seems like it only rebalances assets it owns (using order-ref). So what if there is not enough cash and assets owned by the strategy to meet NLV * strategy_allocation?
Thank you!