Overall Statistics |
Total Trades 16 Average Win 14.27% Average Loss -1.85% Compounding Annual Return 2.853% Drawdown 52.400% Expectancy 4.449 Net Profit 78.550% Sharpe Ratio 0.218 Loss Rate 38% Win Rate 62% Profit-Loss Ratio 7.72 Alpha 0.001 Beta 1.924 Annual Standard Deviation 0.125 Annual Variance 0.016 Information Ratio 0.108 Tracking Error 0.125 Treynor Ratio 0.014 Total Fees $79.14 |
from QuantConnect.Python import PythonQuandl class BasicTemplateAlgorithm(QCAlgorithm): def Initialize(self): self.SetStartDate(1998,1, 2) #Set Start Date self.SetEndDate(2018,8,5) #Set End Date self.SetCash(100000) #Set Strategy Cash self.AddEquity("SPY", 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 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: self.SetHoldings("SPY",1) else: if self.Portfolio["SPY"].Invested: self.Liquidate() self.quarterly_rebalance = False self.prev_value = indicator def OnData(self, data): pass class Fred(PythonQuandl): def __init__(self): self.ValueColumnName = 'value'