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
-1.857
Tracking Error
0.107
Treynor Ratio
0
Total Fees
$0.00
Estimated Strategy Capacity
$0
Lowest Capacity Asset
from AlgorithmImports import *
#Futures.Indices.Dow30EMini NASDAQ100EMini SP500EMini
class BasicTemplateContinuousFutureAlgorithm(QCAlgorithm):
    def Initialize(self):
        self.SetStartDate(2021, 1, 1)
        self.SetEndDate(2021, 12, 31)
        self.ym = self.AddFuture(Futures.Indices.Dow30EMini, Resolution.Hour,
                                                  dataNormalizationMode = DataNormalizationMode.BackwardsRatio,
                                                  dataMappingMode = DataMappingMode.LastTradingDay,
                                                  contractDepthOffset= 0)
        

        self.consolidator_by_symbol = {}
        consolidator = QuoteBarConsolidator(timedelta(hours=2))
        consolidator.DataConsolidated += self.OnDataConsolidated
        self.SubscriptionManager.AddConsolidator(self.ym.Symbol, consolidator)
        self.consolidator_by_symbol[self.ym.Symbol] = consolidator
    def OnData(self, data):
        for changedEvent in data.SymbolChangedEvents.Values:
            if changedEvent.Symbol == self.ym.Symbol:
                self.Log(f"SymbolChanged event: {changedEvent}")


    def OnOrderEvent(self, orderEvent):
        self.Debug("Purchased Stock: {0}".format(orderEvent.Symbol))

    def OnSecuritiesChanged(self, changes):
        self.Debug(f"{self.Time}-{changes}")
        
    def OnDataConsolidated(self, sender, bar: TradeBar):
        self.Debug(f"{bar.Symbol} {bar.Price}@{bar.Time}")