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)