Overall Statistics |
Total Trades 0 Average Win 0% Average Loss 0% Compounding Annual Return 0% Drawdown 0% Expectancy 0 Net Profit 0% Sharpe Ratio 0 Probabilistic Sharpe Ratio 0% Loss Rate 0% Win Rate 0% Profit-Loss Ratio 0 Alpha 0 Beta 0 Annual Standard Deviation 0 Annual Variance 0 Information Ratio -3.906 Tracking Error 0.203 Treynor Ratio 0 Total Fees $0.00 Estimated Strategy Capacity $0 Lowest Capacity Asset |
from AlgorithmImports import * class CoinAPIDataAlgorithm(QCAlgorithm): def Initialize(self): self.SetStartDate(2020, 6, 25) self.SetEndDate(2020, 7, 5) symbols = ["AAPL", "MSFT"] self.symbols = [self.AddEquity(ticker, Resolution.Daily).Symbol for ticker in symbols] self.UniverseSettings.Resolution = Resolution.Daily self.AddUniverse(self.CoarseFilterFunction, self.FineFilterFunction) def CoarseFilterFunction(self, coarse): return [x.Symbol for x in coarse if x.Symbol in self.symbols] def FineFilterFunction(self, fine): return [x.Symbol for x in fine] def OnData(self, data): fundamentals = ["ValuationRatios.SustainableGrowthRate", "ValuationRatios.PayoutRatio"] #setting empty dataframe that we can concat with dataframe = pd.DataFrame() #Get the returns of the stocks, and get them shaped proberly dataframe = self.History(self.symbols, 10, Resolution.Daily) dataframe = dataframe.drop_duplicates().close.unstack(level=0) dataframe = dataframe.iloc[0] / dataframe.iloc[-1] dataframe.name = 'returns' fundamental_dataframe = pd.DataFrame() #we need to get the symbols and symbol object, so we can set the name in the dataframe, and also get the fundamental value (ticker = setting name) for symbol in self.symbols: fundamental = self.Securities[symbol].Fundamentals if not fundamental: continue ratio = [fundamental.ValuationRatios.SustainableGrowthRate, fundamental.ValuationRatios.PayoutRatio] # Use the SID as index to ensure same naming to concatenate the dataframe ratio = pd.DataFrame([ratio], index=[str(symbol.ID)], columns=fundamentals) fundamental_dataframe = pd.concat([ratio, fundamental_dataframe], axis=0) dataframe = pd.concat([fundamental_dataframe, dataframe.T], axis=1) self.Log(dataframe)