Overall Statistics
Total Orders
1
Average Win
0%
Average Loss
0%
Compounding Annual Return
5.087%
Drawdown
0.100%
Expectancy
0
Start Equity
100000
End Equity
109069.23
Net Profit
9.069%
Sharpe Ratio
-5.154
Sortino Ratio
-7.159
Probabilistic Sharpe Ratio
100%
Loss Rate
0%
Win Rate
0%
Profit-Loss Ratio
0
Alpha
-0.018
Beta
0
Annual Standard Deviation
0.004
Annual Variance
0
Information Ratio
-1.471
Tracking Error
0.107
Treynor Ratio
-101.82
Total Fees
$5.00
Estimated Strategy Capacity
$250000.00
Lowest Capacity Asset
BOXX Y4OZG1TN6IXX
Portfolio Turnover
0.16%
#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, 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)
        self.AddEquity("BOXX", 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)
            self.SetHoldings("BOXX", 1.0)
            
        if self.Time.hour==15 and self.Time.minute==59:
            self.Plot("AlgoValue",self.Portfolio.TotalPortfolioValue)