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 = [] def enter_trade(): job_process = Process(target = enter_iron_condor) job_process.start() 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 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.')