| 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()