Add starting date parameter for which to retrieve the best entry times for the purpose of backtesting on historical data

This commit is contained in:
moshferatu 2024-02-02 13:07:15 -08:00
parent e0d1783715
commit 477afffefa
2 changed files with 5 additions and 5 deletions

View File

@ -1,14 +1,14 @@
from database.backtest import backtest_results
from datetime import datetime, timedelta
def best_entry_times(lookback_period: int = 10):
end_date = datetime.now().replace(hour = 0, minute = 0, second = 0, microsecond = 0)
start_date = end_date - timedelta(days = lookback_period)
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)
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)
backtest['Entry Time'] = backtest['Entry Time'].dt.time
profit_by_entry_time = backtest.groupby('Entry Time')['Profit'].sum().reset_index()
best_entry_times = profit_by_entry_time.sort_values(by='Profit', ascending=False).head(10)
best_entry_times = profit_by_entry_time.sort_values(by = 'Profit', ascending = False).head(10)
return [str(entry_time) for entry_time in best_entry_times['Entry Time'].tolist()]

View File

@ -2,4 +2,4 @@ from backtesting import best_entry_times
print(best_entry_times())
print(best_entry_times(lookback_period = 30)) # Days.
print(best_entry_times(days_to_look_back = 30)) # Days.