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 Lowest Capacity Asset |
#region imports from AlgorithmImports import * #endregion # EMA of the midpoint # ------------------------- CRYPTO = "BTCUSD"; PERIOD = 3; # ------------------------- class EmaOfTheMidpoint(QCAlgorithm): def Initialize(self): self.SetStartDate(2022, 5, 1) self.SetEndDate(2022, 5, 1) self.crypto = self.AddCrypto(CRYPTO, Resolution.Minute).Symbol self.SetWarmUp(5*PERIOD, Resolution.Minute) data_consolidator = TradeBarConsolidator(timedelta(minutes=2)) data_consolidator.DataConsolidated += self.OnDataConsolidated openp = self.Identity(self.crypto, Resolution.Minute, Field.High) close = self.Identity(self.crypto, Resolution.Minute, Field.Low) midpoint = IndicatorExtensions.Over(IndicatorExtensions.Plus(openp, close), 2) self.custom_ema = IndicatorExtensions.EMA(midpoint, PERIOD) self.RegisterIndicator(self.crypto, self.custom_ema, data_consolidator, Field.Median) self.ema = ExponentialMovingAverage(PERIOD) self.RegisterIndicator(self.crypto, self.ema, data_consolidator, Field.Median) stockPlot = Chart(self.crypto) stockPlot.AddSeries(Series("price", SeriesType.Line, "", Color.Red)) stockPlot.AddSeries(Series("ema", SeriesType.Line, "", Color.Yellow)) stockPlot.AddSeries(Series("custom_ema", SeriesType.Line, "", Color.Orange)) self.AddChart(stockPlot) def OnDataConsolidated(self, sender, data): self.Debug('withing dataconsolidated') # this is getting printed def OnData(self, data): if self.IsWarmingUp: return price = data[self.crypto].Close ema_ = self.ema.Current.Value custom_ema_ = self.custom_ema.Current.Value self.Plot(self.crypto, "price", price) self.Plot(self.crypto, "ema", ema_) self.Plot(self.crypto, "custom_ema", custom_ema_) def OnEndOfAlgorithm(self): pass