Overall Statistics
Total Trades
783
Average Win
1.47%
Average Loss
-0.05%
Compounding Annual Return
8.434%
Drawdown
33.200%
Expectancy
1.335
Net Profit
17.631%
Sharpe Ratio
0.451
Probabilistic Sharpe Ratio
19.253%
Loss Rate
93%
Win Rate
7%
Profit-Loss Ratio
32.16
Alpha
0.221
Beta
-0.756
Annual Standard Deviation
0.273
Annual Variance
0.075
Information Ratio
-0.012
Tracking Error
0.493
Treynor Ratio
-0.163
Total Fees
$9399866.35
class VentralParticlePrism(QCAlgorithm):

    def Initialize(self):
        self.SetStartDate(2018, 7, 17)  # Set Start Date
        self.SetEndDate(2020, 7, 17)
        self.SetCash(250000000)  # Set Strategy Cash
        self.AddEquity("QQQ", Resolution.Minute)
        self.AddEquity("TQQQ", Resolution.Minute)
        self.AddEquity("UVXY", Resolution.Minute)
        self.vma = self.SMA("QQQ", 365, Resolution.Daily, Field.Volume)
        #I need the MOMP of this 'object', self.vma --> The moving average of trading volume for 'QQQ'
        #                                               over the course of a year.
        self.vmaSlope = MomentumPercent(14)
        #Do I need to specify resolution?
        self.Schedule.On(
            self.DateRules.EveryDay("QQQ"),
            self.TimeRules.AfterMarketOpen("QQQ", 5),
            self.Derp)
        
        self.SetWarmup(365)
        
    def OnData(self, data):
        if self.IsWarmingUp:
            return
        self.vmaSlope.Update(self.Time, self.vma.Current.Value)
        #Here is where I am getting the error message: Runtime Error: Trying to dynamically access a method 
        #                                           that does not exist throws a TypeError exception. To 
        #                                           prevent the exception, ensure each parameter type matches
        #                                           those required by the Update method. Please checkout the 
        #                                           API documentation.
        #                                           at OnData in main.py:line 24
        #                                           TypeError : No method matches given arguments for Update
        
    def Derp(self):
        if not self.vmaSlope.IsReady:
            return
        if self.vmaSlope.Current.Value <= -0.1:
            self.SetHoldings("TQQQ", 0.9)
            self.SetHoldings("QQQ", 0)
            self.SetHoldings("UVXY", 0.1)
        if self.vmaSlope.Current.Value <= -0.01:
            self.Liquidate("TQQQ")