Hello All, 

 I am a little confused how to ensure I am scheduling events at the times that I think I am scheduling them for. 

I have checked the Exchange.TimeZone property of my returned CFD. This part seems nice enough. However, when I cross check the data that I am receiving with other sources of the same feed, I cannot seem to make a connection between the time I think I am sceduling an event for and the data I am receiving. 

To validate my setup, I am just check the most recent data when event is triggered and comparing it to Oanda's feed on Tradingview at the same time. However, I can't seem to find matching data. 

It might be an issue with the way I am saving the last close value in OnData(). The following is my code and some screenshots of my debugs and data on Tradingview. 

import numpy as np from System import * ### <summary> ### Basic template algorithm simply initializes the date range and cash. This is a skeleton ### framework you can use for designing an algorithm. ### </summary> class FTSEFridays(QCAlgorithm): '''Basic template algorithm simply initializes the date range and cash''' def Initialize(self): '''Initialise the data and resolution required, as well as the cash and start-end dates for your algorithm. All algorithms must initialized.''' self.SetStartDate(2018,7, 1) #Set Start Date self.SetEndDate(2018,7,11) #Set End Date self.SetCash(10000) #Set Strategy Cash self.Allocate = 1 # Percentage of holdings to risk # Setup Oanda Broker simulation self.SetBrokerageModel(BrokerageName.OandaBrokerage) # Find more symbols here: http://quantconnect.com/data # THIS NEEDS TO BE ADDED AFTER THE BROKERAGE MODEL! self._ftse = self.AddCfd("UK100GBP", Resolution.Minute) #Logging / Debugs self.Logging_On = True self.Debug_On = True # Other stuff self.lastClose = None #Set Shcedule # self.Schedule.On(self.DateRules.Every(DayOfWeek.Monday,DayOfWeek.Friday), self.TimeRules.At(6, 55), self.MorningBuy) # self.Schedule.On(self.DateRules.Every(DayOfWeek.Monday,DayOfWeek.Friday), self.TimeRules.At(16, 29), self.AfternoonSell) self.Schedule.On(self.DateRules.WeekEnd(), self.TimeRules.At(6, 55), self.MorningBuy) self.Schedule.On(self.DateRules.WeekEnd(), self.TimeRules.At(16, 29), self.AfternoonSell) if self.Debug_On: self.Debug("INIT: Exchange Hours: {}".format(self._ftse.Exchange.Hours)) self.Debug("INIT: Exchange Timezone: {}".format(self._ftse.Exchange.TimeZone)) self.Debug("INIT: Local Time: {}".format(self._ftse.Exchange.LocalTime)) self.Debug("INIT: Self.Time {}".format(self.Time)) def OnData(self, data): '''OnData event is the primary entry point for your algorithm. Each new data point will be pumped in here. Arguments: data: Slice object keyed by symbol containing the stock data ''' self.lastClose = data["UK100GBP"].Close def MorningBuy(self): if self.Debug_On: self.Debug("MorningBuy: Fired at : {0}, Local Time: {1}, Close Price: {2}".format( self.Time, self._ftse.Exchange.LocalTime, self.lastClose)) self.SetHoldings("UK100GBP", self.Allocate) def AfternoonSell(self): if self.Debug_On: self.Debug("AfternoonSell: Fired at : {0}, Local Time: {1}, Close Price: {2}".format( self.Time, self._ftse.Exchange.LocalTime, self.lastClose)) self.Liquidate

Here is my output


It shows that the close was 7611.4 at 06:55am (self.Time) and 11:55am Local Exchange Time) 

Then if I look at the data for both self.Time and Exchange.LocalTime on Tradingview (06:55am and 11:55am respectively), I don't see any close matching it or within a bar. 

First 6:55 am - Close = 7632.6


Second 11:55am - Close = 7570.3


I assume that this might be something at my end. Any pointers would be greatly appreciated. 

PS. Where does self.Time come from? is it NYC?