Overall Statistics
Total Trades
1
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
$37.00
class MultidimensionalNadionCircuit(QCAlgorithm):

    def Initialize(self):
        self.SetStartDate(2019, 11, 17)  # Set Start Date
        self.SetEndDate(2019, 11, 17)  # Set Start Date
        self.SetCash(100000)  # Set Strategy Cash
        # self.AddEquity("SPY", Resolution.Minute)
        
        self.gold = self.AddFuture(Futures.Metals.Gold,Resolution.Minute) 
        self.gold.SetFilter(0, 90)
        
        self.lookback = 70
        self.signalDeltaPercent = 0

    def OnData(self, slice):
        for chain in slice.FutureChains:
            self.popularContracts = [contract for contract in chain.Value if contract.OpenInterest > 1000]
  
            if len(self.popularContracts) == 0:
                continue
    
            sortedByOIContracts = sorted(self.popularContracts, key=lambda k : k.OpenInterest, reverse=True)
            self.liquidContract = sortedByOIContracts[0]
            
            if self.Portfolio[self.liquidContract.Symbol].Invested:
                self.__macd.Update(slice.Time, self.liquidContract.LastPrice)
                #self.Log(f"Current Value: {self.__macd.Current.Value}")
                #self.Log(f"Signal: {self.signalDeltaPercent}")
                return
            self.Log(f"Signal: {self.signalDeltaPercent}")
            
            self.__macd = self.MACD(self.liquidContract.Symbol, 12, 26, 9, MovingAverageType.Exponential, Resolution.Minute)
            hist = self.History(self.liquidContract.Symbol, self.lookback)['close']
            #self.Log(hist.to_string())
            for k, v in hist.items():
                self.__macd.Update(k[2], v)
            self.signalDeltaPercent = (self.__macd.Current.Value - self.__macd.Signal.Current.Value)
            if self.signalDeltaPercent > 0.003:
                self.SetHoldings(self.liquidContract.Symbol, 1)
        #self.Log(f"Signal: {self.signalDeltaPercent}")
                
            
    
    def OnEndOfDay(self):
        pass