Overall Statistics
Total Trades
10
Average Win
1.70%
Average Loss
-1.13%
Compounding Annual Return
-0.149%
Drawdown
2.100%
Expectancy
0.000
Net Profit
-0.063%
Sharpe Ratio
-0.013
Probabilistic Sharpe Ratio
23.607%
Loss Rate
60%
Win Rate
40%
Profit-Loss Ratio
1.50
Alpha
0.002
Beta
-0.011
Annual Standard Deviation
0.039
Annual Variance
0.002
Information Ratio
-1.983
Tracking Error
0.136
Treynor Ratio
0.044
Total Fees
$10.00
Estimated Strategy Capacity
$720000000.00
Lowest Capacity Asset
SPY R735QTJ8XC9X
import numpy as np
from datetime import timedelta

class PreHolidayEffectAlgorithm(QCAlgorithm):

    def Initialize(self):

        # self.SetStartDate(2016, 1, 1)  
        # self.SetEndDate(2020, 12, 31)    
        # self.SetCash(100000)           
        self.SetStartDate(2021, 1, 1)  
        self.SetEndDate(2021, 6, 4)    
        # self.SetCash(22670) #high low
        self.SetCash(46160) # low
        
        
        self.AddEquity("SPY", Resolution.Daily)


    def OnData(self, data):
        calendar1 = self.TradingCalendar.GetDaysByType(TradingDayType.PublicHoliday, self.Time, self.Time+timedelta(days=2))
        calendar2 = self.TradingCalendar.GetDaysByType(TradingDayType.Weekend, self.Time, self.Time+timedelta(days=2))
        holidays = [i.Date for i in calendar1]
        weekends = [i.Date for i in calendar2]
        # subtract weekends in all holidays
        public_holidays = list(set(holidays) - set(weekends))

        if not self.Portfolio.Invested and len(public_holidays)>0:
            self.SetHoldings("SPY", 1)
        elif self.Portfolio.Invested and len(public_holidays)==0:
            self.Liquidate()