Overall Statistics
Total Trades
0
Average Win
0%
Average Loss
0%
Compounding Annual Return
0%
Drawdown
0%
Expectancy
0
Net Profit
0%
Sharpe Ratio
0
Probabilistic Sharpe Ratio
0%
Loss Rate
0%
Win Rate
0%
Profit-Loss Ratio
0
Alpha
0
Beta
0
Annual Standard Deviation
0
Annual Variance
0
Information Ratio
-3.926
Tracking Error
0.224
Treynor Ratio
0
Total Fees
$0.00
import datetime

class ModulatedUncoupledAutosequencers(QCAlgorithm):

    def Initialize(self):
        self.SetStartDate(2020, 4, 1)  # Set Start Date
        self.SetCash(100000)  # Set Strategy Cash
        self.spy = self.AddEquity("SPY", Resolution.Daily).Symbol

    def OnData(self, data):
        today = data.Time.date()
        if self.FirstTradingDayOfMonth(today):
            self.Debug(str(today) + " is the first trading day of the month.")
        else:
            self.Debug(str(today) + " isn't the first trading day of the month.")
        
    def FirstTradingDayOfMonth(self, today):
        firstDayOfCurrentMonth = datetime.date(today.year, today.month, 1)
        tradingDays = self.TradingCalendar.GetTradingDays(firstDayOfCurrentMonth, self.EndDate)
        firstTradingDay = next(day for index, day in enumerate(tradingDays) if day.BusinessDay)
        self.Debug("Comparing " + str(today) + " to " + str(firstTradingDay.Date.date()))
        # Compare datetime.date objects
        return today == firstTradingDay.Date.date()