Overall Statistics |
Total Trades 390 Average Win 1.74% Average Loss -1.75% Compounding Annual Return 0.468% Drawdown 13.500% Expectancy 0.028 Net Profit 3.888% Sharpe Ratio 0.096 Probabilistic Sharpe Ratio 0.088% Loss Rate 48% Win Rate 52% Profit-Loss Ratio 0.99 Alpha 0 Beta 0 Annual Standard Deviation 0.043 Annual Variance 0.002 Information Ratio 0.096 Tracking Error 0.043 Treynor Ratio 0 Total Fees $20046.90 Estimated Strategy Capacity $23000.00 Lowest Capacity Asset UNL UHQJ0EDGU6HX |
#region imports from AlgorithmImports import * #endregion # https://quantpedia.com/Screener/Details/4 # buy SPY ETF at its closing price and sell it at the opening each day. import numpy as np class OvernightTradeAlgorithm(QCAlgorithm): def Initialize(self): self.SetStartDate(2015, 1, 1) #Set Start Date self.SetEndDate(2025, 3, 1) #Set End Date self.SetCash(1000000) #Set Strategy Cash self.position = self.AddEquity("BOIL", Resolution.Minute).Symbol self.position2 = self.AddEquity("UNL", Resolution.Minute).Symbol self.spy = self.AddEquity("SPY", Resolution.Minute).Symbol self.SetBrokerageModel(BrokerageName.InteractiveBrokersBrokerage) #monthly # self.Schedule.On(self.DateRules.MonthEnd("SPY", 1), self.Schedule.On(self.DateRules.MonthEnd("SPY",1), self.TimeRules.AfterMarketOpen("SPY", 5), self.enter) self.Schedule.On(self.DateRules.MonthEnd("SPY", 1), self.TimeRules.AfterMarketOpen("SPY", 4), self.exit) # self.Schedule.On(self.DateRules.EveryDay(self.spy), self.TimeRules.BeforeMarketClose("SPY", 15), self.enter) # self.Schedule.On(self.DateRules.EveryDay(self.spy), self.TimeRules.AfterMarketOpen("SPY", 0), self.exit) def enter(self): if not self.Portfolio.Invested: # self.SetHoldings(self.spy, 1) self.SetHoldings(self.position, -.1) self.SetHoldings(self.position2, .2) def exit(self): if self.Portfolio.Invested: self.Liquidate() def OnData(self, data): pass