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.662
Tracking Error
0.208
Treynor Ratio
0
Total Fees
$0.00
Estimated Strategy Capacity
$0
Lowest Capacity Asset
class UncoupledVentralPrism(QCAlgorithm):

    def Initialize(self):
        self.SetStartDate(2020, 1, 1)
        #self.SetEndDate(2017, 5, 19)
        self.SetCash(100000)

        self.tickers = ['ZW', 
                        'ZN',
                        'CL',
                        'GC'] 
        self.fast = {}
        self.slow = {}
        
        for ticker in self.tickers:
            future = self.AddFuture(ticker)
            future.SetFilter(lambda x: x.FrontMonth().OnlyApplyFilterAtMarketOpen())
            self.symbol = None
            self.fast[future] = ExponentialMovingAverage(10)
            self.slow[future] = ExponentialMovingAverage(50)      

    def OnData(self, slice):
        
        holding = None if self.symbol is None else self.Portfolio.get(future)
        if holding is not None:
            # Buy the futures' front contract when the fast EMA is above the slow one
            if self.fast.Current.Value > self.slow.Current.Value:
                if not holding.Invested:
                    self.SetHoldings(future, .1)
            elif holding.Invested:
                self.Liquidate(future)