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.279 Tracking Error 0.107 Treynor Ratio 0 Total Fees $0.00 Estimated Strategy Capacity $0 Lowest Capacity Asset |
class LogicalBrownManatee(QCAlgorithm): def Initialize(self): self.SetStartDate(2020, 11, 15) self.SetEndDate(2020, 12, 15) self.SetCash(100000) self.dataByContract = {} self.fut_sp = self.AddFuture(Futures.Indices.SP500EMini) self.fut_sp.SetFilter(TimeSpan.Zero, TimeSpan.FromDays(60)) self.fut_gold = self.AddFuture(Futures.Metals.Gold) self.fut_gold.SetFilter(TimeSpan.FromDays(30), TimeSpan.FromDays(60)) def OnSecuritiesChanged(self,changes): for security in changes.RemovedSecurities: if security.Symbol in self.dataByContract: self.Debug("removed contract: "+str(security.Symbol)) symbol_data = self.dataByContract.pop(security.Symbol, None) if symbol_data: symbol_data.dispose() for security in changes.AddedSecurities: if security.Symbol not in self.dataByContract: self.dataByContract[security.Symbol] = SymbolData(self,security.Symbol) def OnData(self, data): for chain in data.FutureChains: for contract in chain.Value: if contract.Symbol in self.dataByContract: self.Plot("STD", str(contract.Symbol), self.dataByContract[contract.Symbol].std.Current.Value) class SymbolData: def __init__(self,algo,symbol): self.symbol = symbol self.algo = algo self.std = StandardDeviation(50) self.consolidator = algo.ResolveConsolidator(self.symbol, Resolution.Minute) self.algo.RegisterIndicator(self.symbol, self.std, self.consolidator) algo.WarmUpIndicator(self.symbol, self.std, Resolution.Minute) def dispose(self): self.algo.SubscriptionManager.RemoveConsolidator(self.symbol, self.consolidator)