import shinybroker as sb
import pandas as pd
con_id = 265598 # AAPL Stock
ib_conn = sb.create_ibkr_socket_conn()
ib_socket = ib_conn['ib_socket']
sb.send_ib_message(
s=ib_socket,
msg=sb.req_sec_def_opt_params(
reqId=1,
underlyingSymbol="AAPL",
futFopExchange="",
underlyingSecType="STK",
underlyingConId=265598
)
)
# start_time = datetime.datetime.now()
# while (datetime.datetime.now() - start_time).seconds < timeout:
incoming_msg = sb.read_ib_msg(sock=ib_socket)
sdops = []
while incoming_msg[0] != sb.functionary['incoming_msg_codes'][
'SECURITY_DEFINITION_OPTION_PARAMETER_END'
]:
incoming_msg = sb.read_ib_msg(sock=ib_socket)
if incoming_msg[0] == sb.functionary['incoming_msg_codes'][
'SECURITY_DEFINITION_OPTION_PARAMETER'
]:
sdops.append(sb.format_sec_def_opt_params_input(sdop=incoming_msg[2:]))
ib_socket.close()
print(
pd.concat(sdops, ignore_index=True)
.sort_values('exchange')
)"Headless Mode" for In-App Scripting and Development
“Somewhat Interactive” Development Mode
As you’re developing apps, it’s sometimes useful to just create a scratch file containing a bit of code that grabs some input. You can watch the information get printed by the async reader loop as it becomes available off the socket, and maybe copy-paste it from the terminal printout do perform some of your exploratory development work.