backtest-automation/backtest_scheduler.py

31 lines
927 B
Python

import schedule
import time
import traceback
from datetime import datetime, timedelta
from discord_messaging import send_message
from dotenv import load_dotenv
from os import getenv
from download_spx_quotes import download_quotes
from run_backtest import run_backtest
load_dotenv()
def backtest_automation():
try:
download_quotes()
# TODO: Update backtest to eliminate the need for setting this to midnight.
end_date = datetime.now().replace(hour = 0, minute = 0, second = 0, microsecond = 0)
start_date = end_date - timedelta(days = 1)
run_backtest(start_date, end_date)
except:
send_message('Backtest automation failed!', to_user_id = getenv('USER_ID'))
traceback.print_exc()
if __name__ == '__main__':
schedule.every().day.at('03:00', 'America/Los_Angeles').do(backtest_automation)
while True:
schedule.run_pending()
time.sleep(1)