| Overall Statistics |
|
Total Trades 582 Average Win 1.16% Average Loss -0.98% Compounding Annual Return 2.042% Drawdown 18.700% Expectancy 0.098 Net Profit 27.943% Sharpe Ratio 0.365 Probabilistic Sharpe Ratio 0.531% Loss Rate 50% Win Rate 50% Profit-Loss Ratio 1.18 Alpha 0 Beta 0 Annual Standard Deviation 0.041 Annual Variance 0.002 Information Ratio 0.365 Tracking Error 0.041 Treynor Ratio 0 Total Fees $6337.59 Estimated Strategy Capacity $83000.00 Lowest Capacity Asset VIXM UT076X30D0MD |
#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(2011, 1, 1) #Set Start Date
self.SetEndDate(2025, 3, 1) #Set End Date
self.SetCash(1000000) #Set Strategy Cash
self.position1 = self.AddEquity("VIXY", Resolution.Minute).Symbol
self.position2 = self.AddEquity("VIXM", 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.position1, -.1)
self.SetHoldings(self.position2, .1)
def exit(self):
if self.Portfolio.Invested:
self.Liquidate()
def OnData(self, data):
pass