diff --git a/iron_condor_scheduler.py b/iron_condor_scheduler.py index 6826448..0bf3fed 100644 --- a/iron_condor_scheduler.py +++ b/iron_condor_scheduler.py @@ -1,8 +1,13 @@ import schedule import time +from dotenv import load_dotenv +from ibkr import Client from iron_condor import enter_iron_condor from multiprocessing import Process +from os import getenv + +load_dotenv() # TODO: Look up entry times from database. entry_times = [] @@ -11,10 +16,24 @@ def enter_trade(): job_process = Process(target = enter_iron_condor) job_process.start() -if __name__ == '__main__': - for entry_time in entry_times: - schedule.every().day.at(entry_time, 'America/Los_Angeles').do(enter_trade) +def connection_successful(): + try: + ibkr_host = getenv('IBKR_HOST') + ibkr_port = getenv('IBKR_PORT') + Client(host = ibkr_host, port = ibkr_port) + return True + except: + return False - while True: - schedule.run_pending() - time.sleep(1) \ No newline at end of file +if __name__ == '__main__': + if connection_successful(): + print('Connected to IBKR.') + + for entry_time in entry_times: + schedule.every().day.at(entry_time, 'America/Los_Angeles').do(enter_trade) + + while True: + schedule.run_pending() + time.sleep(1) + else: + print('ERROR: Cannot connect to IBKR. Ensure that TWS / Gateway is running.') \ No newline at end of file