Overall Statistics
Total Trades
252
Average Win
0.53%
Average Loss
-0.01%
Compounding Annual Return
13.365%
Drawdown
25.400%
Expectancy
74.729
Net Profit
321.169%
Sharpe Ratio
1.134
Probabilistic Sharpe Ratio
58.081%
Loss Rate
1%
Win Rate
99%
Profit-Loss Ratio
75.36
Alpha
0.027
Beta
0.71
Annual Standard Deviation
0.124
Annual Variance
0.015
Information Ratio
-0.356
Tracking Error
0.056
Treynor Ratio
0.197
Total Fees
$255.91
Estimated Strategy Capacity
$10000000.00
Lowest Capacity Asset
TLT SGNKIKYGE9NP
# Trading Quandl SHILLER_PE_RATIO_MONTH

# -------------------------------------
STOCK = 'SPY'; BOND = 'TLT'; LEV = 1.0; 
# -------------------------------------

class SHILLER_PE_RATIO_MONTH(QCAlgorithm):

   def Initialize(self):
       self.SetStartDate(2010, 1, 1)
       self.SetEndDate(2021, 6, 15)
       self.SetCash(100000) 
      
       self.stock = self.AddEquity(STOCK, Resolution.Minute).Symbol 
       self.bond = self.AddEquity(BOND, Resolution.Minute).Symbol 
       Quandl.SetAuthCode("zkdoRxRXbAQdUxzXZKBy")
       self.shiller = self.AddData(QuandlCustomColumns, "MULTPL/SHILLER_PE_RATIO_MONTH", Resolution.Daily, TimeZones.NewYork)
       self.Schedule.On(self.DateRules.MonthStart(self.stock), self.TimeRules.AfterMarketOpen(self.stock, 61), 
            self.trade)  


   def trade(self):
       if self.shiller.Close < 10:
          self.SetHoldings(self.stock, .40,)
          self.SetHoldings(self.bond, .60)
          
       elif self.shiller.Close < 14 and  self.shiller.Close > 10:
           self.SetHoldings(self.stock, .60,)
           self.SetHoldings(self.bond, .40)
       else:
           self.SetHoldings(self.stock, .8)
           self.SetHoldings(self.bond, .20)
           
       
class QuandlCustomColumns(PythonQuandl): 
    def __init__(self):
        self.ValueColumnName = "value"