Overall Statistics |
Total Trades 19 Average Win 35.39% Average Loss 0% Compounding Annual Return 24.415% Drawdown 18.700% Expectancy 0 Net Profit 1781.830% Sharpe Ratio 1.447 Probabilistic Sharpe Ratio 85.411% Loss Rate 0% Win Rate 100% Profit-Loss Ratio 0 Alpha 0.223 Beta 0.299 Annual Standard Deviation 0.18 Annual Variance 0.032 Information Ratio 0.611 Tracking Error 0.221 Treynor Ratio 0.869 Total Fees $467.26 Estimated Strategy Capacity $58000000.00 Lowest Capacity Asset QQQ RIWIV7K5Z9LX |
## SIMON LesFlex June 2021 ## ## Modified by Vladimir from QuantConnect.Python import PythonQuandl # ----------------------------------------------- STOCK = 'QQQ'; BOND = 'TLT'; MA = 2; MOM = 1; # ----------------------------------------------- class LeadingIndicator(QCAlgorithm): def Initialize(self): self.quandlCode = "OECD/KEI_LOLITOAA_KOR_ST_M" # LeadInd ## Optional argument - personal token necessary for restricted dataset Quandl.SetAuthCode("MLNarxdsMU92vk-ZJDvg") self.SetStartDate(2008,1,1) self.SetEndDate(2021, 6, 4) self.SetCash(100000) self.SetWarmup((MA + MOM)*21, Resolution.Daily) self.init = True self.AddData(QuandlCustomColumns, self.quandlCode, Resolution.Daily, TimeZones.NewYork) self.sma = self.SMA(self.quandlCode, MA) self.mom = self.MOMP(self.quandlCode, MOM) self.stock = self.AddEquity(STOCK, Resolution.Hour).Symbol self.bond = self.AddEquity(BOND, Resolution.Hour).Symbol self.Schedule.On(self.DateRules.WeekStart(self.stock), self.TimeRules.AfterMarketOpen(self.stock, 31), self.Rebalance) def Rebalance(self): if self.IsWarmingUp or not self.mom.IsReady or not self.sma.IsReady: return initial_asset = self.stock if self.mom.Current.Value > 0 else self.bond if self.init: self.SetHoldings(initial_asset, 1) self.init = False if self.mom.Current.Value > 0 and not self.Securities[self.stock].Invested: self.Liquidate(self.bond) self.SetHoldings(self.stock, 1) # self.Debug("Purchased {0} >> {1}".format(self.stock, self.Time)) elif self.mom.Current.Value < 0 and self.sma.Current.Value < 100 and self.Securities[self.stock].Invested: self.Liquidate(self.stock) self.SetHoldings(self.bond, 1) # self.Debug("Liquidated {0} >> {1}".format(self.stock, self.Time)) self.Plot("LeadInd", "SMA(LeadInd)", self.sma.Current.Value) self.Plot("LeadInd", "THRESHOLD", 100) self.Plot("MOMP", "MOMP(LeadInd)", self.mom.Current.Value) self.Plot("MOMP", "THRESHOLD", 0) class QuandlCustomColumns(PythonQuandl): def __init__(self): self.ValueColumnName = "Value"