| Overall Statistics |
|
Total Orders 1 Average Win 0% Average Loss 0% Compounding Annual Return 2.502% Drawdown 0.200% Expectancy 0 Start Equity 100000 End Equity 119136.34 Net Profit 19.136% Sharpe Ratio -6.01 Sortino Ratio -5.666 Probabilistic Sharpe Ratio 100% Loss Rate 0% Win Rate 0% Profit-Loss Ratio 0 Alpha -0.014 Beta 0 Annual Standard Deviation 0.002 Annual Variance 0 Information Ratio -0.695 Tracking Error 0.163 Treynor Ratio -105.715 Total Fees $6.52 Estimated Strategy Capacity $15000000.00 Lowest Capacity Asset BIL TT1EBZ21QWKL Portfolio Turnover 0.04% Drawdown Recovery 862 |
#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(2023, 11, 1) # Set Start Date
# self.SetEndDate(2024, 3, 1) # Set End Date
self.SetStartDate(2019, 1, 1) # Set Start Date
self.SetEndDate(2026, 1, 31) # Set End Date
self.SetCash(1e5)
# self.AddEquity("SPY", Resolution.Daily)#Minute)
# self.AddEquity("TLT", Resolution.Daily)#Minute)
# self.AddEquity("FTLS", Resolution.Daily)#Minute)
self.AddEquity("BIL", Resolution.Daily)#Minute)
# self.AddEquity("GVIP", Resolution.Daily)#Minute)
# self.AddEquity("QLS", Resolution.Daily)#Minute)
# self.AddEquity("AGG", Resolution.Daily)#Minute)
# self.AddEquity("SCHG", Resolution.Daily)#Minute)
# self.AddEquity("BOXX", Resolution.Daily)#Minute)
# self.AddEquity("AAPL", Resolution.Daily)#Minute)
# self.AddEquity("GOOGL", Resolution.Daily)#Minute)
# self.AddEquity("TSLA", 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("TLT", 1.0)
# self.SetHoldings("TLT", 0.2)
# self.SetHoldings("FTLS", 1.0)
self.SetHoldings("BIL", 1.0)
#self.SetHoldings("XLI", 1)
#self.SetHoldings("VTV", 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)
# self.SetHoldings("BOXX", 1.0)
# self.SetHoldings("AAPL", 0.5)
# self.SetHoldings("GOOGL", 0.5)
# self.SetHoldings("TSLA", 1.0)
if self.Time.hour==15 and self.Time.minute==59:
self.Plot("AlgoValue",self.Portfolio.TotalPortfolioValue)