Prevent lookahead bias when determining the best performing entry times by not including the date being requested
This commit is contained in:
parent
477afffefa
commit
b4a79cf3aa
@ -3,9 +3,11 @@ from datetime import datetime, timedelta
|
||||
|
||||
def best_entry_times(date: datetime = datetime.now(), days_to_look_back: int = 10):
|
||||
end_date = date.replace(hour = 0, minute = 0, second = 0, microsecond = 0)
|
||||
end_date -= timedelta(days = 1) # Subtract one day in order to prevent lookahead bias.
|
||||
start_date = end_date - timedelta(days = days_to_look_back)
|
||||
|
||||
backtest = backtest_results('SPX', '10 Delta Iron Condor', start_date = start_date, end_date = end_date)
|
||||
print(backtest)
|
||||
backtest['Entry Time'] = backtest['Entry Time'].dt.time
|
||||
|
||||
profit_by_entry_time = backtest.groupby('Entry Time')['Profit'].sum().reset_index()
|
||||
|
@ -1,5 +1,8 @@
|
||||
from backtesting import best_entry_times
|
||||
from datetime import datetime
|
||||
|
||||
print(best_entry_times())
|
||||
|
||||
print(best_entry_times(datetime(2024, 1, 31)))
|
||||
|
||||
print(best_entry_times(days_to_look_back = 30)) # Days.
|
Loading…
Reference in New Issue
Block a user