The following template framework algorithm 

class BasicTemplateFrameworkAlgorithm(QCAlgorithmFramework):

def Initialize(self):

# Set requested data resolution
self.UniverseSettings.Resolution = Resolution.Daily
self.SetStartDate(2018, 1, 1) #Set Start Date
self.SetEndDate(2019, 3, 5) #Set End Date
self.SetCash(100000) #Set Strategy Cas
self.SetUniverseSelection(QC500UniverseSelectionModel())
self.SetAlpha(MacdAlphaModel(12, 26, 9, MovingAverageType.Simple, Resolution.Daily))
self.SetPortfolioConstruction(EqualWeightingPortfolioConstructionModel())
self.SetExecution(ImmediateExecutionModel())
self.SetRiskManagement(NullRiskManagementModel())

def OnOrderEvent(self, orderEvent):
if orderEvent.Status == OrderStatus.Filled:
# self.Debug("Purchased Stock: {0}".format(orderEvent.Symbol))
pass

Has a mimimum rebalancing frequency of once per day, apparently. How can I set the same algorithm up, such that the minimum trading frequency is once per month, on the first trading day of each month?