Path: blob/master/ invest-robot-contest_sirius-master/prod_control.py
5925 views
from api_calls.get_info import get_share_by_ticker1from api_calls.prod_account import *2from services.instruments_info_cache import get_instrument_info3from strategy.buy_sell_utils import place_order_and_wait_for_finish456def prod_control():7help_str = """8Вспомогательный режим для управления prod-аккаунтом.9В примерах - 2000012345 - это account_id, который можно получить с помощью10команды info11Основные команды (вводить без кавычек):12'info' - вывести информацию по аккаунту13'portfolio 2000012345' - вывести подробное портфолио по счёту14'positions 2000012345' - вывести список позиций по счёту15'buy 2000012345 MOEX ORUP' - купить акцию ORUP на бирже MOEX16'sell 2000012345 SPB VEON' - продать акцию VEON на бирже SPB17'q' или 'quit' - выход18"""19logging.info(help_str)2021while True:22line = input('')23if len(line) == 0:24continue25if line.lower() in ['q', 'quit']:26break27else:28do_operation(line)293031def do_operation(line):32command = line.split()[0]33args = line.split()[1:]3435if command == 'info':36logging.info("Prod accounts = {}\n".format(pretty_dict(get_prod_accounts())))37elif command == 'portfolio':38logging.info("Prod portfolio = {}\n".format(pretty_dict(get_prod_portfolio(args[0]))))39elif command == 'positions':40logging.info("Prod positions = {}\n".format(pretty_dict(get_prod_positions(args[0]))))41elif command == 'buy':42do_operation_deal(account_id=args[0], exchange=args[1], ticker=args[2], deal_type=command)43elif command == 'sell':44do_operation_deal(account_id=args[0], exchange=args[1], ticker=args[2], deal_type=command)45else:46logging.warning("Unknown command '{}'".format(command))474849def do_operation_deal(account_id, exchange, ticker, deal_type):50instrument_info = get_instrument_info(exchange, ticker)51place_order_and_wait_for_finish({'account_id': account_id}, instrument_info, deal_type, False)52535455