示例#1
0
    def list_configs(
            self,  # type: HummingbotApplication
    ):
        columns = ["Key", "  Value"]
        data = [[cv.key, cv.value] for cv in global_config_map.values()
                if cv.key in global_configs_to_display and not cv.is_secure]
        df = map_df_to_str(pd.DataFrame(data=data, columns=columns))
        self._notify("\nGlobal Configurations:")
        lines = [
            "    " + line for line in format_df_for_printout(
                df, max_col_width=50).split("\n")
        ]
        self._notify("\n".join(lines))

        data = [[cv.key, cv.value] for cv in global_config_map.values()
                if cv.key in color_settings_to_display and not cv.is_secure]
        df = map_df_to_str(pd.DataFrame(data=data, columns=columns))
        self._notify("\nColor Settings:")
        lines = [
            "    " + line for line in format_df_for_printout(
                df, max_col_width=50).split("\n")
        ]
        self._notify("\n".join(lines))

        if self.strategy_name is not None:
            data = [[cv.printable_key or cv.key, cv.value]
                    for cv in self.strategy_config_map.values()
                    if not cv.is_secure]
            df = map_df_to_str(pd.DataFrame(data=data, columns=columns))
            self._notify("\nStrategy Configurations:")
            lines = [
                "    " + line for line in format_df_for_printout(
                    df, max_col_width=50).split("\n")
            ]
            self._notify("\n".join(lines))
示例#2
0
    def list_client_configs(self  # type: HummingbotApplication
                            ):
        data = self.build_model_df_data(self.client_config_map,
                                        to_print=client_configs_to_display)
        df = map_df_to_str(pd.DataFrame(data=data, columns=columns))
        self.notify("\nGlobal Configurations:")
        lines = [
            "    " + line for line in format_df_for_printout(
                df,
                table_format=self.client_config_map.tables_format,
                max_col_width=50).split("\n")
        ]
        self.notify("\n".join(lines))

        data = self.build_model_df_data(self.client_config_map,
                                        to_print=color_settings_to_display)
        df = map_df_to_str(pd.DataFrame(data=data, columns=columns))
        self.notify("\nColor Settings:")
        lines = [
            "    " + line for line in format_df_for_printout(
                df,
                table_format=self.client_config_map.tables_format,
                max_col_width=50).split("\n")
        ]
        self.notify("\n".join(lines))
示例#3
0
 def test_map_df_to_str(self):
     df = pd.DataFrame(data=[0.2, 0, 1, 100., 1.00])
     df = map_df_to_str(df)
     self.assertEqual(
         df.to_string(), "     0\n"
         "0  0.2\n"
         "1    0\n"
         "2    1\n"
         "3  100\n"
         "4    1")
示例#4
0
 def list_strategy_configs(self  # type: HummingbotApplication
                           ):
     if self.strategy_name is not None:
         config_map = self.strategy_config_map
         data = self.build_df_data_from_config_map(config_map)
         df = map_df_to_str(pd.DataFrame(data=data, columns=columns))
         self.notify("\nStrategy Configurations:")
         lines = [
             "    " + line for line in format_df_for_printout(
                 df,
                 table_format=self.client_config_map.tables_format,
                 max_col_width=50).split("\n")
         ]
         self.notify("\n".join(lines))
示例#5
0
    def format_status(self) -> str:
        if not self._all_markets_ready:
            return "Market connectors are not ready."
        lines = []
        warning_lines = []

        markets_df = self.market_status_data_frame()
        lines.extend(["", "  Markets:"] + [
            "    " + line
            for line in markets_df.to_string(index=False).split("\n")
        ])

        assets_df = map_df_to_str(self.perpetual_mm_assets_df())

        first_col_length = max(*assets_df[0].apply(len))
        df_lines = assets_df.to_string(index=False,
                                       header=False,
                                       formatters={
                                           0: ("{:<" + str(first_col_length) +
                                               "}").format
                                       }).split("\n")
        lines.extend(["", "  Assets:"] + ["    " + line for line in df_lines])

        # See if there're any open orders.
        if len(self.active_orders) > 0:
            df = self.active_orders_df()
            lines.extend(["", "  Orders:"] + [
                "    " + line for line in df.to_string(index=False).split("\n")
            ])
        else:
            lines.extend(["", "  No active maker orders."])

        # See if there're any active positions.
        if len(self.active_positions) > 0:
            df = self.active_positions_df()
            lines.extend(["", "  Positions:"] + [
                "    " + line for line in df.to_string(index=False).split("\n")
            ])
        else:
            lines.extend(["", "  No active positions."])

        if len(warning_lines) > 0:
            lines.extend(["", "*** WARNINGS ***"] + warning_lines)

        return "\n".join(lines)