| Overall Statistics |
|
Total Trades 278 Average Win 4.50% Average Loss -2.63% Compounding Annual Return 19.560% Drawdown 42.900% Expectancy 0.566 Net Profit 574.196% Sharpe Ratio 0.668 Probabilistic Sharpe Ratio 11.908% Loss Rate 42% Win Rate 58% Profit-Loss Ratio 1.71 Alpha 0.191 Beta -0.038 Annual Standard Deviation 0.279 Annual Variance 0.078 Information Ratio 0.213 Tracking Error 0.312 Treynor Ratio -4.936 Total Fees $10206.98 |
class LeverageForTheLongRun(QCAlgorithm):
def Initialize(self):
self.SetStartDate(2009,6, 1) #Set Start Date
self.SetEndDate(2020,2,2) #Set End Date
self.SetCash(100000) #Set Strategy Cash
self.spy = self.AddEquity("SPY", Resolution.Daily)
self.upro = self.AddEquity("UPRO", Resolution.Daily)
self.agg = self.AddEquity("AGG", Resolution.Daily)
self.SetBrokerageModel(BrokerageName.InteractiveBrokersBrokerage)
self.sma = self.SMA("SPY", 40)
# Create weekly consolidator
consolidator =self.Consolidate("SPY", CalendarType.Weekly, self.OnDataConsolidated)
# Register the SMA to use weekly consolidator.
self.RegisterIndicator("SPY", self.sma, consolidator)
# warm up the indicators
self.SetWarmUp(40)
# define the Weekly Trade bar for SPY from Initialize
def OnDataConsolidated(self, bar):
self.CurrentBar = bar
if self.CurrentBar.Close > self.sma.Current.Value:
self.SetHoldings("AGG", 0)
self.SetHoldings("UPRO", 1)
if self.CurrentBar.Close < self.sma.Current.Value:
self.SetHoldings("UPRO", 0)
self.SetHoldings("AGG", 1)