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 0.366 Tracking Error 0.117 Treynor Ratio 0 Total Fees $0.00 Estimated Strategy Capacity $0 Lowest Capacity Asset Portfolio Turnover 0% |
from AlgorithmImports import * import pandas as pd import os from QuantConnect import Globals class Testlocal(QCAlgorithm): def Initialize(self): self.SetStartDate(2019, 9, 19) # Will be ignored in live trading self.SetEndDate(2019, 10, 20) # Will be ignored in live trading self.SetWarmup(20) self.SetCash(100000) # Will be ignored in live trading self.fundamentals_dict = {} self.UniverseSettings.Resolution = Resolution.Daily self.tickers = ["MSFT", "AEP", "CAT", "BAC"] self.SetBenchmark("SPY") self.AddUniverseSelection(FineFundamentalUniverseSelectionModel(self.CoarseFilter, self.FineFilter)) self.Schedule.On(self.DateRules.MonthStart(0), self.TimeRules.Midnight, self.Trade) def CoarseFilter(self, coarse): usEquities = [c for c in coarse if (c.Symbol.ID.Market.lower() == "usa") and (c.Symbol.SecurityType == SecurityType.Equity) and c.HasFundamentalData and (c.Symbol.Value in self.tickers)] return [c.Symbol for c in usEquities] def FineFilter(self, fine): self.fundamentals_dict = {} for f in fine: self.fundamentals_dict[f.Symbol.Value] = f.ValuationRatios.PERatio return [f.Symbol for f in fine] def OnSecuritiesChanged(self, changes): for security in changes.RemovedSecurities: self.RemoveSecurity(security.Symbol) for security in changes.AddedSecurities: self.AddEquity(security.Symbol, Resolution.Daily) def OnWarmupFinished(self): self.Debug("Warmed Up") self.Trade() def Trade(self): # Triggered by time event current_portfolio = [(sec.Symbol.Value,sec.Quantity) for sec in self.Portfolio.Values if sec.Quantity>0] self.Debug(f"Current Portfolio:{current_portfolio}") flag = "BAC" in list(self.fundamentals_dict.keys()) self.Debug(f"Dict contains BAC {flag}") # self.Debug([elem.Value for elem in list(self.ActiveSecurities.Keys)]) df = self.History(self.Portfolio.Keys, 5, resolution=Resolution.Daily) self.Debug(f"Shape of hist {df.shape}") def OnData(self, data): """OnData event is the primary entry point for your algorithm. Each new data point will be pumped in here. Arguments: data: Slice object keyed by symbol containing the stock data """ self.Trade()