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
# EMA of the Midpoint of the Resampled Bar

# -------------------------------------
CRYPTO = "BTCUSD"; PERIOD = 5; BAR = 5;
# -------------------------------------

class EmaOfTheMidpointOfTheResampledBar(QCAlgorithm):
    
    def Initialize(self):
        self.SetStartDate(2022, 5, 11) 
        self.SetEndDate(2022, 5, 11)   
        self.crypto = self.AddCrypto(CRYPTO, Resolution.Minute).Symbol
        consolidator = TradeBarConsolidator(timedelta(minutes=BAR))
        consolidator.DataConsolidated += self.OnDataConsolidated
        high = SimpleMovingAverage(1)
        low = SimpleMovingAverage(1)
        self.RegisterIndicator(self.crypto, high, consolidator, Field.High)
        self.RegisterIndicator(self.crypto, low, consolidator, Field.Low)
        midpoint = IndicatorExtensions.Over(IndicatorExtensions.Plus(high, low), 2)
        self.midpoint_ema = IndicatorExtensions.EMA(midpoint, PERIOD)
        self.SetWarmUp(5*PERIOD*BAR, Resolution.Minute)


    def OnDataConsolidated(self, sender, data):
        if self.IsWarmingUp: return
        if not self.midpoint_ema.IsReady: return
    
        price = self.Securities[self.crypto].Price       
        midpoint_ema = self.midpoint_ema.Current.Value

        self.Plot(self.crypto, "Price", price)
        self.Plot(self.crypto, "EMA of the Midpoint of the Resampled Bar", midpoint_ema)