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 -18.451 Tracking Error 0.067 Treynor Ratio 0 Total Fees $0.00 |
from sklearn.linear_model import LinearRegression import numpy as np import pandas as pd class CalibratedHorizontalThrustAssembly(QCAlgorithm): def Initialize(self): self.SetBrokerageModel(BrokerageName.InteractiveBrokersBrokerage, AccountType.Margin) self.SetStartDate(2017, 1, 1) self.SetEndDate(2017, 1, 5) # self.SetEndDate(2020, 5, 2) self.SetCash(100000) self.AddUniverse(self.CoarseSelectionFilter) self.UniverseSettings.Resolution = Resolution.Hour self.spy = self.AddEquity("SPY", Resolution.Hour).Symbol self.market_rw = RollingWindow[float](20) self.rws = {} def CoarseSelectionFilter(self, coarse): sortedByDollarVolume = sorted(coarse, key=lambda x: x.DollarVolume, reverse=True) filteredByPrice = [x.Symbol for x in sortedByDollarVolume if x.Price > 10 and x.HasFundamentalData == True] self.filteredByPrice = filteredByPrice[:10] return self.filteredByPrice def OnData(self, data): portfolio_invested = [x.Symbol for x in self.Portfolio.Values if x.Invested] symbols = self.filteredByPrice if data.Bars.ContainsKey(self.spy): self.market_rw.Add(data.Bars[self.spy].Close) for x in symbols: if data.Bars.ContainsKey(x): self.rws[x].Add(data.Bars[x].Close) closes = list(self.rws[x]) # cast to list when using # if you want time-based ordering: # closes = list(self.rws[x])[::-1] self.Log(closes) def OnSecuritiesChanged(self, changed): for security in changed.AddedSecurities: symbol = security.Symbol if symbol not in self.rws: self.rws[symbol] = RollingWindow[float](20) hist = self.History([symbol], 20, Resolution.Hour).loc[symbol] for close in hist['close']: self.rws[symbol].Add(close) for security in changed.RemovedSecurities: symbol = security.Symbol self.rws.pop(symbol, None)