def get_process_name(data): process_names = get_dict_of_process_controls(data) menu_of_options = dict(list(enumerate(process_names))) print("Process name?") option = print_menu_and_get_response(menu_of_options, default_option=1) ans = menu_of_options[option] return ans
def print_capital_and_get_user_input(data: dataBlob): data_capital = dataCapital(data) all_calcs = data_capital.get_series_of_all_global_capital() print("\n") if all_calcs is missing_data: # No capital no_capital_setup = True print("No capital setup yet") else: no_capital_setup = False print(all_calcs.tail(10)) print("\n") if no_capital_setup: possible_options = { 1: "Setup initial capital parameters"} else: possible_options = { 2: "Update capital from IB account value", 3: "Adjust account value for withdrawal or deposit", 4: "Modify any/all values", 5: "Delete values of capital since time T", 6: "Delete everything and start again"} user_option_int = print_menu_and_get_response(possible_options, default_option=0, default_str="EXIT") return user_option_int
def view_errors(data): diag_logs = diagLogs(data) msg_levels = diag_logs.get_possible_log_level_mapping() print("This will get all log messages with a given level of criticality") print("Use view logs to filter by log attributes") lookback_days = get_and_convert("How many days?", type_expected=int, default_value=7) print("Which level of error/message?") log_level = print_menu_and_get_response(msg_levels) log_item_list = diag_logs.get_log_items_with_level(log_level, attribute_dict=dict(), lookback_days=lookback_days) print_log_items(log_item_list)
def get_valid_status_for_process(): status_int = print_menu_and_get_response( { 1: "Go", 2: "Do not run (don't stop if already running)", 3: "Stop (and don't run if not started)", }, default_option=0, default_str="<CANCEL>", ) return status_int
def change_process_control_status(data): data_process = dataControlProcess(data) process_name = get_process_name(data) status_int = print_menu_and_get_response({1:"Go", 2:"Do not run (don't stop if already running)", 3:"Stop (and don't run if not started)"}, default_option=0, default_str="<CANCEL>") if status_int==1: data_process.change_status_to_go(process_name) if status_int==2: data_process.change_status_to_no_run(process_name) if status_int==3: data_process.change_status_to_stop(process_name) return None
def enter_manual_contract_order(data, instrument_order): strategy_name = instrument_order.strategy_name instrument_code = instrument_order.instrument_code qty = instrument_order.trade leg_count = get_and_convert("How many legs?", type_expected=int, default_value=1) contract_id_list = [] for leg_idx in range(leg_count): print("Choose contract for leg %d" % leg_idx) _, contract_date = get_valid_instrument_code_and_contractid_from_user( data, instrument_code=instrument_code) contract_id_list.append(contract_date) trade_qty_list = [] for trade_idx in range(leg_count): trade_qty = get_and_convert("Enter quantity for leg %d" % trade_idx, type_expected=int, allow_default=False) trade_qty_list.append(trade_qty) if sum(trade_qty_list) != sum(qty): print( "Sum of instrument quantity %s is different from sum of contract quantity %s" % (str(qty), str(trade_qty_list))) print("It's unlikely you meant to do this...") menu_of_options = dict(enumerate(list_of_algos)) algo_idx = print_menu_and_get_response(menu_of_options) algo_to_use = list_of_algos[algo_idx] limit_price = get_and_convert( "Limit price? (will override instrument order limit price, will be ignored by some algo types", type_expected=float, default_str="None", default_value=None) contract_order = contractOrder( strategy_name, instrument_code, contract_id_list, trade_qty_list, algo_to_use=algo_to_use, reference_price=None, limit_price=limit_price, manual_trade=True, ) return contract_order
def update_order_stack(): with dataBlob(log_name="Update-Order-Stack") as data: stack_handler = instrument_to_contract_stack_handler(data) still_running = True while still_running: option_chosen = print_menu_and_get_response(menu_of_options, default_option=-1, default_str="EXIT") if option_chosen == -1: print("FINISHED") return None method_chosen = dict_of_functions[option_chosen] method_chosen(stack_handler)