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 -6.514 Tracking Error 0.126 Treynor Ratio 0 Total Fees $0.00 |
import json class HorizontalVerticalAntennaArray(QCAlgorithm): def Initialize(self): self.SetStartDate(2020, 11, 3) # Set Start Date self.SetCash(100000) # Set Strategy Cash symbols = [Symbol.Create(x, SecurityType.Equity, Market.USA) for x in ['IBM','AAPL','AIG']] #symbols = [ Symbol.Create("SPY", SecurityType.Equity, Market.USA) ] self.SetUniverseSelection( ManualUniverseSelectionModel(symbols) ) #self.AddUniverseSelection(FineFundamentalUniverseSelectionModel(self.SelectCoarse, self.SelectFine)) self.UniverseSettings.Resolution = Resolution.Daily self.SetAlpha(MyAlpha()) def SelectCoarse(self, coarse): tickers = ["AAPL", "AIG", "IBM"] return [Symbol.Create(x, SecurityType.Equity, Market.USA) for x in tickers] def SelectFine(self, fine): return [f.Symbol for f in fine] class MyAlpha(AlphaModel): def __init__(self, *args, **kwargs): self.list_by_symbol = {} self.symbol_data_by_symbol = {} self.symbolName = '' def Update(self, algorithm, data): #algorithm.Log(type(self.symbol_data_by_symbol.items())) for symbol, symbol_data in self.symbol_data_by_symbol.items(): symbol_data.pass_list(symbol) return [] def OnSecuritiesChanged(self, algorithm, changes): #algorithm.Log(changes.AddedSecurities[0]) for security in changes.AddedSecurities: symbol = security.Symbol #if symbol == changes.AddedSecurities[0]: #self.list_by_symbol[symbol] = symbol self.symbol_data_by_symbol[symbol] = SymbolData(symbol,self,algorithm) self.symbolName = symbol class SymbolData: def __init__(self, symbol, alpha, algorithm): self.symbol = symbol self.alpha = alpha self.algorithm = algorithm def pass_list(self, lst): self.algorithm.Log(f"List passed to SymbolData: {lst}")