def get_command_profitability(markdown=False): _, b, c = PrettyPrinter.get_markets(markdown) has_real_trader, has_simulated_trader, \ real_global_profitability, simulated_global_profitability, \ real_percent_profitability, simulated_percent_profitability, \ real_no_trade_profitability, simulated_no_trade_profitability, \ market_average_profitability = get_global_profitability() profitability_string = "" if has_real_trader: real_profitability_pretty = PrettyPrinter.portfolio_profitability_pretty_print(real_global_profitability, None, get_reference_market()) profitability_string = \ f"{b}{REAL_TRADER_STR}{b}Global profitability : {c}{real_profitability_pretty}" \ f"({PrettyPrinter.get_min_string_from_number(real_percent_profitability, 2)}%){c}, market: {c}" \ f"{PrettyPrinter.get_min_string_from_number(market_average_profitability, 2)}%{c}, initial portfolio:" \ f" {c}{PrettyPrinter.get_min_string_from_number(real_no_trade_profitability, 2)}%{c}{EOL}" if has_simulated_trader: simulated_profitability_pretty = \ PrettyPrinter.portfolio_profitability_pretty_print(simulated_global_profitability, None, get_reference_market()) profitability_string += \ f"{b}{SIMULATOR_TRADER_STR}{b}Global profitability : {c}{simulated_profitability_pretty}" \ f"({PrettyPrinter.get_min_string_from_number(simulated_percent_profitability, 2)}%){c}, " \ f"market: {c}{PrettyPrinter.get_min_string_from_number(market_average_profitability, 2)}%{c}, " \ f"initial portfolio: {c}" \ f"{PrettyPrinter.get_min_string_from_number(simulated_no_trade_profitability, 2)}%{c}" if not profitability_string: profitability_string = NO_TRADER_MESSAGE return profitability_string
def get_command_configuration(markdown=False): _, b, c = PrettyPrinter.get_markets(markdown) message = f"{b}My configuration:{b}{EOL}{EOL}" message += f"{b}Traders: {b}{EOL}" has_real_trader, has_simulated_trader = has_real_and_or_simulated_traders() if has_real_trader: message += f"{c}- Real trader{c}{EOL}" if has_simulated_trader: message += f"{c}- Simulated trader{c}{EOL}" message += f"{EOL}{b}Exchanges:{b}{EOL}" for exchange in get_bot().get_exchanges_list().values(): message += f"{c}- {exchange.get_name()}{c}{EOL}" message += f"{EOL}{b}Evaluators:{b}{EOL}" first_evaluator = next(iter(get_bot().get_symbols_tasks_manager().values())).get_evaluator() evaluators = copy.copy(first_evaluator.get_social_eval_list()) evaluators += first_evaluator.get_ta_eval_list() evaluators += first_evaluator.get_real_time_eval_list() for evaluator in evaluators: message += f"{c}- {evaluator.get_name()}{c}{EOL}" first_symbol_evaluator = next(iter(get_bot().get_symbol_evaluator_list().values())) first_exchange = next(iter(get_bot().get_exchanges_list().values())) message += f"{EOL}{b}Strategies:{b}{EOL}" for strategy in first_symbol_evaluator.get_strategies_eval_list(first_exchange): message += f"{c}- {strategy.get_name()}{c}{EOL}" message += f"{EOL}{b}Trading mode:{b}{EOL}" message += f"{c}- {next(iter(get_bot().get_exchange_trading_modes().values())).get_name()}{c}" return message
def _print_trades(trades_history, trader_str, markdown=False): _, b, c = PrettyPrinter.get_markets(markdown) trades_history_string = f"{b}{trader_str}{b}{c}Trades :{EOL}{c}" if trades_history: for trade in trades_history: trades_history_string += f"{PrettyPrinter.trade_pretty_printer(trade, markdown=markdown)}{EOL}" else: trades_history_string += f"{c}No trade yet.{c}" return trades_history_string
def _print_portfolio(current_val, ref_market, portfolio, trader_str, markdown=False): _, b, c = PrettyPrinter.get_markets(markdown) portfolios_string = f"{b}{trader_str}{b}Portfolio value : " \ f"{b}{PrettyPrinter.get_min_string_from_number(current_val)} {ref_market}{b}" \ f"{EOL}" portfolio_str = PrettyPrinter.global_portfolio_pretty_print(portfolio, markdown=markdown) if not portfolio_str: portfolio_str = "Nothing there." portfolios_string += f"{b}{trader_str}{b}Portfolio : {EOL}{c}{portfolio_str}{c}" return portfolios_string
def _print_open_orders(open_orders, trader_str, markdown=False): _, b, c = PrettyPrinter.get_markets(markdown) orders_string = f"{b}{trader_str}{b}{c}Open orders :{c}{EOL}" for orders in open_orders: if orders: for order in orders: orders_string += PrettyPrinter.open_order_pretty_printer(order, markdown=markdown) + EOL else: orders_string += f"{c}No open order yet.{c}" return orders_string
def get_command_fees(markdown=False): _, b, _ = PrettyPrinter.get_markets(markdown) real_trader_fees, simulated_trader_fees = get_total_paid_fees() result_str = "" if real_trader_fees is not None: result_str = f"{b}{REAL_TRADER_STR}{b}{PAID_FEES_STR}: " \ f"{PrettyPrinter.pretty_print_dict(real_trader_fees, markdown=markdown)}" if simulated_trader_fees is not None: result_str = f"{result_str}\n{b}{SIMULATOR_TRADER_STR}{b}{PAID_FEES_STR}: " \ f"{PrettyPrinter.pretty_print_dict(simulated_trader_fees, markdown=markdown)}" if not result_str: result_str = NO_TRADER_MESSAGE return result_str
def get_command_market_status(markdown=False): _, b, c = PrettyPrinter.get_markets(markdown) message = f"{b}My cryptocurrencies evaluations are:{b} {EOL}{EOL}" at_least_one_currency = False for currency_pair, currency_info in get_currencies_with_status().items(): at_least_one_currency = True message += f"{c}{currency_pair}:{c}{EOL}" for exchange_name, evaluation in currency_info.items(): message += f"{c}- {exchange_name}: {evaluation[0]}{c}{EOL}" if not at_least_one_currency: message += f"{c}{NO_CURRENCIES_MESSAGE}{c}{EOL}" message += f"{EOL}{c}My current risk is: {get_risk()}{c}" return message
def get_command_open_orders(markdown=False): _, b, c = PrettyPrinter.get_markets(markdown) has_real_trader, has_simulated_trader = has_real_and_or_simulated_traders() portfolio_real_open_orders, portfolio_simulated_open_orders = get_open_orders() orders_string = "" if has_real_trader: orders_string += InterfaceBot._print_open_orders(portfolio_real_open_orders, REAL_TRADER_STR, markdown) if has_simulated_trader: orders_string += f"{EOL}" \ f"{InterfaceBot._print_open_orders(portfolio_simulated_open_orders, SIMULATOR_TRADER_STR, markdown)}" if not orders_string: orders_string = NO_TRADER_MESSAGE return orders_string
def get_command_portfolio(markdown=False): _, b, c = PrettyPrinter.get_markets(markdown) has_real_trader, has_simulated_trader, \ portfolio_real_current_value, portfolio_simulated_current_value = get_portfolio_current_value() reference_market = get_reference_market() real_global_portfolio, simulated_global_portfolio = get_global_portfolio_currencies_amounts() portfolios_string = "" if has_real_trader: portfolios_string += InterfaceBot._print_portfolio(portfolio_real_current_value, reference_market, real_global_portfolio, REAL_TRADER_STR, markdown) if has_simulated_trader: portfolio_str = InterfaceBot._print_portfolio(portfolio_simulated_current_value, reference_market, simulated_global_portfolio, SIMULATOR_TRADER_STR, markdown) portfolios_string += f"{EOL}{portfolio_str}" if not portfolios_string: portfolios_string = NO_TRADER_MESSAGE return portfolios_string