Overall Statistics
Total Trades
228
Average Win
1.05%
Average Loss
-2.06%
Compounding Annual Return
-99.763%
Drawdown
83.400%
Expectancy
-0.576
Net Profit
-79.480%
Sharpe Ratio
-0.589
Probabilistic Sharpe Ratio
0.685%
Loss Rate
72%
Win Rate
28%
Profit-Loss Ratio
0.51
Alpha
-0.766
Beta
0.738
Annual Standard Deviation
1.601
Annual Variance
2.562
Information Ratio
-0.454
Tracking Error
1.547
Treynor Ratio
-1.276
Total Fees
$228.00
class SpyTrendAlphaModel(AlphaModel):
    def __init__(self):
        pass
    
    def OnSecuritiesChanged(self, algorithm, changes):
        
        self.symbols = [x.Symbol for x in changes.AddedSecurities]
        
        
            
            
        
    def Update(self, algorithm, data):
        insights = []
        self.spy = ["SPY R735QTJ8XC9X"]
        for x in self.symbols:
            history = algorithm.History(self.symbols, 7, Resolution.Daily)
            price = history.loc["SPY"]["close"]
            TF_3 = price.pct_change(3)[-1]
            if TF_3 > 0:
                if x not in self.spy:
                    insights.append(Insight.Price(x, timedelta(3), InsightDirection.Up))
                    
          
        return insights
        
                
    #     for x in history:        
            
    #         
    #             if x not in self.spy:
    #                 insights.append(Insight.Price(x, timedelta(1), InsightDirection.Up))
    #         # # 
                
    
        
                
        
        
    # def CheckTrend(self, algorithm, data):
        
    #     
    #     
    #     
    #         return TF_check == 1
    #     else :
    #         return TF_check == 0
# Inspired by the theory here:
# https://seekingalpha.com/article/4299701-leveraged-etfs-for-long-term-investing

import pandas as pd
from SpyTrendAlphaModel import SpyTrendAlphaModel
class MultidimensionalTransdimensionalPrism(QCAlgorithm):

    def Initialize(self):
        self.SetStartDate(2020, 2, 1)               # Earliest start date for all ETFs in universe 2/1/10
        self.SetEndDate(2020, 5, 6)
        self.SetCash(10000) 
        symbols = [Symbol.Create("SPY", SecurityType.Equity, Market.USA), Symbol.Create("UST", SecurityType.Equity, Market.USA), Symbol.Create("TQQQ", SecurityType.Equity, Market.USA), Symbol.Create("UBT", SecurityType.Equity, Market.USA)]
        self.SetUniverseSelection(ManualUniverseSelectionModel(symbols))
        self.SetAlpha(SpyTrendAlphaModel())
        self.SetRiskManagement(CompositeRiskManagementModel(
            MaximumUnrealizedProfitPercentPerSecurity(0.2), 
            MaximumDrawdownPercentPerSecurity(0.3)
            ))
        self.SetPortfolioConstruction(EqualWeightingPortfolioConstructionModel())
        self.SetExecution(ImmediateExecutionModel())
        self.Schedule.On(self.DateRules.Every(DayOfWeek.Monday), self.TimeRules.At(12, 0), self.Sell)
        
    def Sell(self):
        self.Liquidate()