31 lines
927 B
Python
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) |