| Overall Statistics |
|
Total Orders 1 Average Win 0% Average Loss 0% Compounding Annual Return 13.686% Drawdown 33.700% Expectancy 0 Start Equity 100000 End Equity 237766.27 Net Profit 137.766% Sharpe Ratio 0.502 Sortino Ratio 0.505 Probabilistic Sharpe Ratio 12.436% Loss Rate 0% Win Rate 0% Profit-Loss Ratio 0 Alpha -0.001 Beta 0.998 Annual Standard Deviation 0.163 Annual Variance 0.027 Information Ratio -0.478 Tracking Error 0.002 Treynor Ratio 0.082 Total Fees $2.07 Estimated Strategy Capacity $920000000.00 Lowest Capacity Asset SPY R735QTJ8XC9X Portfolio Turnover 0.04% |
#region imports
from AlgorithmImports import *
#endregion
class BenchAlgo(QCAlgorithm):
def Initialize(self):
#self.SetStartDate(2009, 9, 30) # Set Start Date
# self.SetStartDate(2010, 1, 1) # Set Start Date
# self.SetStartDate(2008, 1, 1) # Set Start Date
#self.SetEndDate(2019, 10, 31) # Set Start Date
#self.SetStartDate(2019, 6, 28) # Set Start Date
#self.SetStartDate(2013, 1, 1) # Set Start Date
# self.SetStartDate(2015, 6, 1) # Set Start Date
# self.SetStartDate(2016, 1, 1) # Set Start Date
# self.SetStartDate(2022, 3, 2) # Set Start Date
# self.SetEndDate(2021, 12, 31) # Set End Date
# self.SetEndDate(2022, 5, 2) # Set End Date
#self.SetCash(929375) # Set Strategy Cash
#self.SetCash(1e6) # Set Strategy Cash
# self.SetCash(1e5)
#self.AddEquity("ICE25T4T", Resolution.Daily)#Minute)
# self.AddEquity("SPY", Resolution.Daily)#Minute)
#self.AddEquity("XLI", Resolution.Daily)#Minute)
# self.AddEquity("TLT", Resolution.Daily)#Minute)
#self.AddEquity("VTV", Resolution.Daily)#Minute)
# BACKTEST Saltare Post-Earnings Announcement Drift Combined with Strong Momentum
self.SetStartDate(2018, 1, 1) # Set Start Date
self.SetEndDate(2024, 9, 30) # Set End Date
self.SetCash(1e5)
self.AddEquity("SPY", Resolution.Daily)#Minute)
# self.AddEquity("FTLS", Resolution.Daily)#Minute)
# self.AddEquity("GVIP", Resolution.Daily)#Minute)
# self.AddEquity("QLS", Resolution.Daily)#Minute)
# self.AddEquity("TLT", Resolution.Daily)#Minute)
# self.AddEquity("AGG", Resolution.Daily)#Minute)
# self.AddEquity("SCHG", Resolution.Daily)#Minute)
# Crisis Alpha Greenblatt - Alpha Cloning – Following 13F Fillings
# self.SetStartDate(2016, 1, 1) # Set Start Date
# self.SetEndDate(2022, 12, 31) # Set End Date
# self.SetCash(1e5)
# self.AddEquity("SPY", Resolution.Daily)#Minute)
# self.AddEquity("GSLC", Resolution.Daily)#Minute)
# GLD Dragon and Dividend Paydate
# self.SetStartDate(2016, 1, 1) # Set Start Date
# self.SetEndDate(2022, 12, 31) # Set End Date
# self.SetCash(1e5)
# self.AddEquity("SPY", Resolution.Daily)#Minute)
# self.AddEquity("AOM", Resolution.Daily)#Minute)
# self.AddEquity("FAAR", Resolution.Daily)#Minute)
def OnData(self, data):
'''OnData event is the primary entry point for your algorithm. Each new data point will be pumped in here.
Arguments:
data: Slice object keyed by symbol containing the stock data
'''
if not self.Portfolio.Invested:
#self.SetHoldings("ICE25T4T", 1)
self.SetHoldings("SPY", 1.0)
# self.SetHoldings("SPY", 0.8)
#self.SetHoldings("XLI", 1)
# self.SetHoldings("TLT", 1.0)
# self.SetHoldings("TLT", 0.2)
#self.SetHoldings("VTV", 1.0)
# self.SetHoldings("FTLS", 1.0)
# self.SetHoldings("QLS", 1.0)
# self.SetHoldings("GSLC", 1.0)
# self.SetHoldings("AOM", 1.0)
# self.SetHoldings("GVIP", 1.0)
# self.SetHoldings("AGG", 1.0)
# self.SetHoldings("FAAR", 1.0)
# self.SetHoldings("SCHG", 1.0)
if self.Time.hour==15 and self.Time.minute==59:
self.Plot("AlgoValue",self.Portfolio.TotalPortfolioValue)