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 Tracking Error 0 Treynor Ratio 0 Total Fees $0.00 Estimated Strategy Capacity $0 |
class Example(QCAlgorithm): def Initialize(self): self.SetCash(100000) self.SetStartDate(2021, 3, 20) # self.SetEndDate(2021, 2, 21) self.SetTimeZone("America/New_York") self.symbol = "ETHUSD" self.AddCrypto(self.symbol, Resolution.Minute, Market.GDAX) self.SetBrokerageModel(BrokerageName.Bitfinex); self.SetBenchmark(self.symbol) self.period = 15 # Consolidate minute data into X minute blocks Consolidated = TradeBarConsolidator(timedelta(minutes=self.period)) Consolidated.DataConsolidated += self.onDataConsolidated self.SubscriptionManager.AddConsolidator(self.symbol, Consolidated) # technicals self.HA = HeikinAshi() self.ema10 = IndicatorExtensions.Of(ExponentialMovingAverage(10), self.HA) self.ema50 = IndicatorExtensions.Of(ExponentialMovingAverage(50), self.HA) self.sma25 = IndicatorExtensions.Of(SimpleMovingAverage(25), self.HA) self.macd = IndicatorExtensions.Of(MovingAverageConvergenceDivergence(12, 26, 9), self.HA) self.RegisterIndicator(self.symbol, self.HA, Consolidated) self.RegisterIndicator(self.symbol, self.ema10, Consolidated) self.RegisterIndicator(self.symbol, self.sma25, Consolidated) self.RegisterIndicator(self.symbol, self.ema50, Consolidated) self.RegisterIndicator(self.symbol, self.macd, Consolidated) self.window = RollingWindow[float](2) self.SetWarmup(50) def onData(self, data): pass def onDataConsolidated(self, sender, data): # check if we are warming up if self.IsWarmingUp: return # add our ema to a window self.window.Add(self.ema10.Current.Value) # wait for window to be ready if not self.window.IsReady: return self.Debug(f"O: {self.HA.Open.Current.Value} H: {self.HA.High.Current.Value} L: {self.HA.Low.Current.Value} C: {self.HA.Close.Current.Value} @ {self.Time}")