Implement colors for hyperopt-output

This commit is contained in:
Matthias 2024-07-07 16:28:02 +02:00
parent 8f0ac0aaea
commit 4d6f399131

View File

@ -56,52 +56,60 @@ class HyperoptOutput:
"""Format one or multiple rows and add them""" """Format one or multiple rows and add them"""
stake_currency = config["stake_currency"] stake_currency = config["stake_currency"]
res = [ for r in results:
[ self.table.add_row(
# "Best": *[
( # "Best":
("*" if r["is_initial_point"] or r["is_random"] else "") (
+ (" Best" if r["is_best"] else "") ("*" if r["is_initial_point"] or r["is_random"] else "")
).lstrip(), + (" Best" if r["is_best"] else "")
# "Epoch": ).lstrip(),
f"{r['current_epoch']}/{total_epochs}", # "Epoch":
# "Trades": f"{r['current_epoch']}/{total_epochs}",
r["results_metrics"]["total_trades"], # "Trades":
# "Win Draw Loss Win%": str(r["results_metrics"]["total_trades"]),
generate_wins_draws_losses( # "Win Draw Loss Win%":
r["results_metrics"]["wins"], generate_wins_draws_losses(
r["results_metrics"]["draws"], r["results_metrics"]["wins"],
r["results_metrics"]["losses"], r["results_metrics"]["draws"],
r["results_metrics"]["losses"],
),
# "Avg profit":
f"{r['results_metrics']['profit_mean']:.2%}",
# "Profit":
Text(
"{} {}".format(
fmt_coin(
r["results_metrics"]["profit_total_abs"],
stake_currency,
keep_trailing_zeros=True,
),
f"({r['results_metrics']['profit_total']:,.2%})".rjust(10, " "),
)
if r["results_metrics"]["profit_total_abs"] != 0.0
else "--",
style="green" if r["results_metrics"]["profit_total_abs"] > 0 else "red",
),
# "Avg duration":
r["results_metrics"]["holding_avg"],
# "Objective":
f"{r["loss"]:,.5f}" if r["loss"] != 100000 else "N/A",
# "Max Drawdown (Acct)":
"{} {}".format(
fmt_coin(
r["results_metrics"]["max_drawdown_abs"],
stake_currency,
keep_trailing_zeros=True,
),
(f"({r["results_metrics"]['max_drawdown_account']:,.2%})").rjust(10, " "),
)
if r["results_metrics"]["max_drawdown_account"] != 0.0
else "--",
],
style=" ".join(
[
"bold " if r["is_best"] and highlight_best else "",
"italic " if r["is_initial_point"] else "",
]
), ),
# "Avg profit": )
f"{r['results_metrics']['profit_mean']:.2%}",
# "Profit":
"{} {}".format(
fmt_coin(
r["results_metrics"]["profit_total_abs"],
stake_currency,
keep_trailing_zeros=True,
),
f"({r['results_metrics']['profit_total']:,.2%})".rjust(10, " "),
)
if r["results_metrics"]["profit_total_abs"] != 0.0
else "--",
# "Avg duration":
r["results_metrics"]["holding_avg"],
# "Objective":
f"{r["loss"]:,.5f}" if r["loss"] != 100000 else "N/A",
# "Max Drawdown (Acct)":
"{} {}".format(
fmt_coin(
r["results_metrics"]["max_drawdown_abs"],
stake_currency,
keep_trailing_zeros=True,
),
(f"({r["results_metrics"]['max_drawdown_account']:,.2%})").rjust(10, " "),
)
if r["results_metrics"]["max_drawdown_account"] != 0.0
else "--",
]
for r in results
]
self._add_rows(res)