Overall Statistics
Total Trades
557
Average Win
0.88%
Average Loss
-0.09%
Compounding Annual Return
23.218%
Drawdown
39.100%
Expectancy
8.682
Net Profit
878.835%
Sharpe Ratio
1.15
Probabilistic Sharpe Ratio
56.328%
Loss Rate
14%
Win Rate
86%
Profit-Loss Ratio
10.30
Alpha
0.208
Beta
-0.007
Annual Standard Deviation
0.18
Annual Variance
0.032
Information Ratio
0.319
Tracking Error
0.239
Treynor Ratio
-29.426
Total Fees
$1099.00
### <summary>
### All Weather Strategy 3x leverraged
### https://dashboard.m1finance.com/share/H4sIAAAAAAACA43OwQqCQBAG4FdZ5uxBMSkED4EdOqgFWoeIkG3SqU1FJ8xk373t0MmLt5nh_35mBB4aBB8q7C8NIVhQ5c_fwX2LtVLiiDmX2Ipd3fKtVlSLnrgUGZMiJuwM6BRJM_inEbgGf_xXdihfLfFgInQ1e2YfwuQunTjdBKAtaLCVWHFemLBra2sWj7wonHLHm8mlE6X7CV_O1FsvDh-fqAgmDau57y-StJjoha3P-gugjRT1iwEAAA?referrerCode=LreWpXh53TiZ&affiliateCode=x6FwSF3HjxyLWX00EOSREQreUkEWi5QVAVXDxI0&utm_source=2113381&utm_medium=referral&utm_campaign=10646&irgwc=1
### https://www.optimizedportfolio.com/all-weather-portfolio/
### </summary>>


class AllWeatherStrategy(QCAlgorithm):
    def Initialize(self):
        self.SetStartDate(2010, 1, 31)  
        self.SetEndDate(2020, 12, 31)  
        self.SetCash(100000) 
        self.monthCounter = 0
        self.SetBrokerageModel(BrokerageName.AlphaStreams)
        self.etfs = [
            (self.AddEquity('UPRO', Resolution.Daily).Symbol,0.3), #ProShares UltraPro S&P500
            #(self.AddEquity('EDC', Resolution.Daily).Symbol,0.1),  #Direxion Emerging Markets Bull 3X ETFs
            (self.AddEquity('TMF', Resolution.Daily).Symbol,0.4),  #Direxion Daily 20+ Year Treasury Bull 3X Shares
            (self.AddEquity('TYD', Resolution.Daily).Symbol,0.15),  #Direxion Daily 7-10 Year Treasury Bull 3x Shares
            (self.AddEquity('UGL', Resolution.Daily).Symbol,0.075), #ProShares Ultra Gold
            (self.AddEquity('UTSL', Resolution.Daily).Symbol,0.075) #Direxion Daily Utilities Bull 3X Shares
            ]
        self.Schedule.On(self.DateRules.MonthStart(self.etfs[0][0]), self.TimeRules.AfterMarketOpen(self.etfs[0][0]), self.Rebalance)
        self.leverage = 1
     
    def Rebalance(self):
        self.SetHoldings([PortfolioTarget(etf,target*self.leverage) for etf,target in self.etfs])