| Overall Statistics |
|
Total Orders 0 Average Win 0% Average Loss 0% Compounding Annual Return 0% Drawdown 0% Expectancy 0 Start Equity 100000 End Equity 100000 Net Profit 0% Sharpe Ratio 0 Sortino 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 $0.00 Estimated Strategy Capacity $0 Lowest Capacity Asset Portfolio Turnover 0% |
from AlgorithmImports import *
class TSLAFiveMinLateSession(QCAlgorithm):
def Initialize(self):
self.Debug("Initialize() called")
start_dt = datetime(2025, 6, 23)
end_dt = datetime(2025, 6, 30)
self.Debug(f"Start Date: {start_dt.date()} | End Date: {end_dt.date()}")
self.SetStartDate(start_dt)
self.SetEndDate(end_dt)
self.SetCash(100000)
# Use positional arguments to enable extended market hours
self.symbol = self.AddEquity("TSLA", Resolution.Minute, Market.USA, True, 0, True).Symbol
# Call analysis immediately
self.AnalyzeLateBars(start_dt, end_dt)
def OnData(self, data: Slice):
self.Debug("OnData() called")
pass
def AnalyzeLateBars(self, start_dt, end_dt):
self.Debug("AnalyzeLateBars() called")
history = self.History(self.symbol, start_dt, end_dt, Resolution.Minute)
if history.empty:
self.Debug("No history returned")
return
self.Debug(f"Total 1-min bars retrieved: {len(history)}")
df = history.loc[self.symbol].reset_index()
df = df[['time', 'open', 'high', 'low', 'close']]
df = df.set_index('time')
# Resample to 5-minute bars
df_5min = df.resample('5T').agg({
'open': 'first',
'high': 'max',
'low': 'min',
'close': 'last'
}).dropna()
self.Debug(f"Total 5-min bars after resampling: {len(df_5min)}")
# Filter between 3:55 PM and 5:30 PM
filtered = df_5min.between_time("15:55", "17:30")
self.Debug(f"Total filtered bars (15:55–17:30): {len(filtered)}")
for time, row in filtered.iterrows():
self.Debug(f"{time} | Open: {row['open']:.2f} | High: {row['high']:.2f} | "
f"Low: {row['low']:.2f} | Close: {row['close']:.2f}")