Overall Statistics
Total Trades
3781
Average Win
0.06%
Average Loss
-0.01%
Compounding Annual Return
9.438%
Drawdown
8.300%
Expectancy
5.768
Net Profit
146.553%
Sharpe Ratio
1.27
Probabilistic Sharpe Ratio
77.984%
Loss Rate
38%
Win Rate
62%
Profit-Loss Ratio
9.90
Alpha
0.081
Beta
-0.016
Annual Standard Deviation
0.062
Annual Variance
0.004
Information Ratio
-0.26
Tracking Error
0.149
Treynor Ratio
-4.819
Total Fees
$3889.99
class TransdimensionalParticleRadiator(QCAlgorithm):

     def Initialize(self):
        self.SetStartDate(2010, 1, 4) #start Date
        self.SetEndDate(2020, 1, 4) # End Date
        self.SetCash(100000)  # Set Strategy Cash
        self.AddEquity("VTI", Resolution.Daily) # Set Equity for different companies
        self.AddEquity("IAU", Resolution.Daily)
        self.AddEquity("VGLT", Resolution.Daily)
        self.AddEquity("VGIT", Resolution.Daily)
        self.AddEquity("PDBC", Resolution.Daily)
        self.smavti = self.SMA("VTI", 305)
        self.smavglt = self.SMA("VGLT", 305) # SMA for both vglt and vti
        
        self.rebal = 4                              # Rebalance every 2 weeks
        self.rebalTimer = self.rebal - 1            # Initialize to trigger first week
        self.flag1 = 0      
        
        self.Schedule.On(self.DateRules.On(2020, 10, 7), self.TimeRules.AfterMarketOpen("VTI", 150), self.Event) # set both events one for the first set holdings 
        self.Schedule.On(self.DateRules.WeekStart("VTI"), self.TimeRules.AfterMarketOpen("VTI", 150), self.Rebalance) # Set event for rebalance

     def OnData(self, data):
        if data.HasData == False: return
        if not data.get(self.Symbol("VTI")): return
        if not data.get(self.Symbol("VGLT")): return
        
        if self.flag1 == 0:
            if data["VTI"].Close < self.smavti.Current.Value: # Check for Vti data more than the SMA
                self.SetHoldings("VTI", .50)
                self.SetHoldings("VGLT", .30)
                self.SetHoldings("VGIT", .15)
                self.SetHoldings("IAU", .08)
                self.SetHoldings("PDBC", .07)
            
            elif data["VGLT"].Close < self.smavglt.Current.Value:  # Check for Vti data more than the SMA
                self.SetHoldings("VGLT", .50)
                self.SetHoldings("VTI", .20)
                self.SetHoldings("VGIT", .15)
                self.SetHoldings("IAU", .08)
                self.SetHoldings("PDBC", .07)
            
            else:
                pass
            self.rebaltimer = 0  # Reset timer and flag
        self.flag1 = 0
 
 
     def Rebalance(self): # Define Rebalance
         self.rebalTimer +=1
         if self.rebalTimer == self.rebal:
             self.flag1 = 1
            
     def Event(self): # Define first event
         self.SetHoldings("VTI", .30)
         self.SetHoldings("VGLT", .50)
         self.SetHoldings("VGIT", .15)
         self.SetHoldings("IAU", .08)
         self.SetHoldings("PDBC", .07)