| 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}")