Overall Statistics |
Total Trades 15 Average Win 16.60% Average Loss -0.92% Compounding Annual Return 7.618% Drawdown 18.600% Expectancy 15.957 Net Profit 214.489% Sharpe Ratio 0.597 Loss Rate 11% Win Rate 89% Profit-Loss Ratio 18.08 Alpha 0 Beta 3.991 Annual Standard Deviation 0.092 Annual Variance 0.008 Information Ratio 0.447 Tracking Error 0.092 Treynor Ratio 0.014 Total Fees $101.68 |
from QuantConnect.Python import PythonQuandl class BasicTemplateAlgorithm(QCAlgorithm): def Initialize(self): self.SetStartDate(2003,1, 1) #Set Start Date self.SetEndDate(2018,8,5) #Set End Date self.SetCash(100000) #Set Strategy Cash self.AddEquity("SPY", Resolution.Daily) self.AddEquity("AGG", Resolution.Daily) self.qGDP = "FRED/GDP" self.qNCBCEL = "FRED/NCBCEL" Quandl.SetAuthCode("YjQrjz6zF8mVWdGTz3fa") self.AddData(Fred, self.qGDP, Resolution.Daily, TimeZones.NewYork, True) self.AddData(Fred, self.qNCBCEL, Resolution.Daily, TimeZones.NewYork, True) self.Schedule.On(self.DateRules.MonthStart("SPY"), self.TimeRules.At(23, 0), self.rebalance) self.months = -1 self.quarterly_rebalance = False #to help notice trends self.prev_value = 0 def rebalance(self): #quarterly rebalance self.months+=1 if self.months%3 == 0: self.quarterly_rebalance = True if self.quarterly_rebalance: indicator = float(self.Securities[self.qNCBCEL].Price)/float(self.Securities[self.qGDP].Price) self.Plot("Buffet Indicator","Indicator", indicator) if indicator <= 1: if self.prev_value < indicator: if self.Portfolio["AGG"].Invested: self.Liquidate() self.SetHoldings("SPY",1) else: if self.Portfolio["SPY"].Invested: self.Liquidate() self.SetHoldings("AGG",1) self.quarterly_rebalance = False self.prev_value = indicator def OnData(self, data): pass class Fred(PythonQuandl): def __init__(self): self.ValueColumnName = 'value'