options-automation/iron_condor_scheduler.py

39 lines
981 B
Python

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.')