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
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
from clr import AddReference
AddReference("System")
AddReference("QuantConnect.Algorithm")
AddReference("QuantConnect.Common")

from System import *
from QuantConnect import *
from QuantConnect.Algorithm import *
from QuantConnect.Securities import *
from datetime import timedelta
import decimal as d
import numpy as np

from datetime import datetime
import decimal

class FutureTimeOffsetBug(QCAlgorithm):

    def Initialize(self):
        
        self.SetStartDate(2018, 1, 16)
        self.SetEndDate(2018, 1, 16)
        self.SetCash(100000)
        

        self.SetWarmUp(30);

        #setup scheduler for all USA traded ETF funds
        self.equity = self.AddSecurity(SecurityType.Equity, "SPY", Resolution.Minute)
        self.future = self.AddFuture( Futures.Indices.SP500EMini )
        self.future.SetFilter(timedelta(0), timedelta(180))


    def OnData(self,slice):
        
        '''OnData event is the primary entry point for your algorithm. Each new data point will be pumped in here.'''
        if self.IsWarmingUp:
            return
        chain = None
        contracts = None
        contract = None


        for chain in slice.FuturesChains:
            # find the front contract expiring no earlier than in 90 days
            contracts = filter(lambda x: x.Expiry > self.Time + timedelta(15), chain.Value)
            # if there is any contract, trade the front contract
            if len(contracts) == 0: continue
            contract = sorted(contracts, key = lambda x: x.Expiry, reverse=False)[0]
            self.Log("SPY slice date: {0}  price: {1}  contract symbol: {2}  slice date: {3}  price: {4}".format(self.equity.LocalTime, self.equity.Price, contract.Symbol.Value, contract.Time, contract.LastPrice))
#            self.Log("contract symbol: {0}  slice date: {1}  price: {2}".format(contract.Symbol.Value, contract.Time, contract.LastPrice))