Add a method to retrieve the best performing entry times over the specified period of time
This commit is contained in:
parent
2335f6798c
commit
e0d1783715
@ -1,5 +1,6 @@
|
||||
from .available_entry_times import available_entry_times
|
||||
from .backtest_iron_condor import backtest_iron_condor
|
||||
from .best_entry_times import best_entry_times
|
||||
from .credit_target_strategy import CreditTargetStrategy
|
||||
from .delta_target_strategy import DeltaTargetStrategy
|
||||
from .option_spread_strategy import OptionSpreadStrategy
|
||||
|
14
backtesting/best_entry_times.py
Normal file
14
backtesting/best_entry_times.py
Normal file
@ -0,0 +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)
|
||||
|
||||
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)
|
||||
return [str(entry_time) for entry_time in best_entry_times['Entry Time'].tolist()]
|
5
test/best_entry_times_test.py
Normal file
5
test/best_entry_times_test.py
Normal file
@ -0,0 +1,5 @@
|
||||
from backtesting import best_entry_times
|
||||
|
||||
print(best_entry_times())
|
||||
|
||||
print(best_entry_times(lookback_period = 30)) # Days.
|
Loading…
Reference in New Issue
Block a user