| Overall Statistics |
|
Total Trades 36 Average Win 0.14% Average Loss -0.17% Compounding Annual Return -6.127% Drawdown 2.000% Expectancy -0.391 Net Profit -1.205% Sharpe Ratio -2.256 Loss Rate 67% Win Rate 33% Profit-Loss Ratio 0.83 Alpha -0.083 Beta 0.022 Annual Standard Deviation 0.029 Annual Variance 0.001 Information Ratio -4.598 Tracking Error 0.197 Treynor Ratio -2.99 Total Fees $36.00 |
class CommunityTemplate(QCAlgorithm):
def Initialize(self):
self.ticker = 'SPY'
self.AddEquity(self.ticker, Resolution.Daily)
self.SetBenchmark(self.ticker)
self.symbol_ = self.Symbol(self.ticker)
self.cash = 100000
self.SetCash(self.cash)
self.SetStartDate(2018, 12, 22)
self.SetEndDate(2019, 3, 1)
#already_traded = False
#usa_after_hours = True
#opentime = self.TimeRules.At(9, 30)
#closetime = self.TimeRules.At(15, 59, 45)
#if int(self.time) >= int(opentime) and <= int(closetime):
'''
if self.IsMarketOpen:
usa_after_hours = False
elif not self.IsMarketOpen:
usa_after_hours = True
'''
self.Schedule.On(self.DateRules.Every(DayOfWeek.Friday), self.TimeRules.At(15, 0), self.endOfWeek)
self.Consolidate(self.ticker, CalendarType.Weekly, self.CalendarTradeBarHandler)
self.window = RollingWindow[TradeBar](2)
def CalendarTradeBarHandler(self, tradeBar):
self.window.Add(tradeBar)
self.Log(f'{tradeBar.Time}: {tradeBar.Open} - {tradeBar.EndTime}: {tradeBar.Close}')
def endOfWeek(self):
self.Liquidate(self.symbol_)
def OnData(self, data):
if not (self.window.IsReady): return
currBar = self.window[0] # Current bar had index zero.
pastBar = self.window[1]
currP = self.Securities[self.ticker].Price
prehigh = pastBar.High
if not self.Portfolio.Invested: #and already_traded and not usa_after_hours:
if currP > prehigh: #'''basic conditional statement'''
self.SetHoldings(self.ticker, .01)
self.MarketOrder(self.ticker, 200)
self.LimitOrder(self.ticker, -200 , prehigh * 1.001)
#already_traded = True