I'm rebalancing my portfolio every week and I'm using the algorithm framework.

To send correct signals I send insights with duration of 5 days at time of the rebalance: basically with the following code (which works but I'm wondering if there is better / more correct way):

 

insights = [] for eq, weight in pos.items(): if weight != 0: insight = Insight.Price(eq, timedelta(days=5), InsightDirection.Up, weight, weight) insight.Weight = weight insights.append(insight) self.EmitInsights(Insight.Group(insights))

 

 

Is this correct way to do this? How I specify a signal that is active until next week start day so that the position is never liquidated (for example with InsightWeightingPortfolioConstructionModel and ImmediateExecutionModel)