Exemple #1
0
    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
Exemple #2
0
    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
Exemple #3
0
 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
Exemple #4
0
 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
Exemple #5
0
 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
Exemple #6
0
 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
Exemple #7
0
    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
Exemple #8
0
    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
Exemple #9
0
    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