Add max_drawdown to profit plot
This commit is contained in:
parent
e050511ddc
commit
88e7cab5b9
@ -5,7 +5,8 @@ from typing import Any, Dict, List
|
|||||||
import pandas as pd
|
import pandas as pd
|
||||||
|
|
||||||
from freqtrade.configuration import TimeRange
|
from freqtrade.configuration import TimeRange
|
||||||
from freqtrade.data.btanalysis import (combine_tickers_with_mean,
|
from freqtrade.data.btanalysis import (calculate_max_drawdown,
|
||||||
|
combine_tickers_with_mean,
|
||||||
create_cum_profit,
|
create_cum_profit,
|
||||||
extract_trades_of_period, load_trades)
|
extract_trades_of_period, load_trades)
|
||||||
from freqtrade.data.converter import trim_dataframe
|
from freqtrade.data.converter import trim_dataframe
|
||||||
@ -111,6 +112,36 @@ def add_profit(fig, row, data: pd.DataFrame, column: str, name: str) -> make_sub
|
|||||||
return fig
|
return fig
|
||||||
|
|
||||||
|
|
||||||
|
def add_max_drawdown(fig, row, trades: pd.DataFrame, df_comb: pd.DataFrame) -> make_subplots:
|
||||||
|
"""
|
||||||
|
Add scatter points indicating max drawdown
|
||||||
|
"""
|
||||||
|
try:
|
||||||
|
max_drawdown, highdate, lowdate = calculate_max_drawdown(trades)
|
||||||
|
|
||||||
|
drawdown = go.Scatter(
|
||||||
|
x=[highdate, lowdate],
|
||||||
|
y=[
|
||||||
|
df_comb.loc[highdate, 'cum_profit'],
|
||||||
|
df_comb.loc[lowdate, 'cum_profit'],
|
||||||
|
],
|
||||||
|
mode='markers',
|
||||||
|
name='Max Drawdown',
|
||||||
|
text=f"Max drawdown {max_drawdown}",
|
||||||
|
marker=dict(
|
||||||
|
symbol='square-open',
|
||||||
|
size=9,
|
||||||
|
line=dict(width=2),
|
||||||
|
color='green'
|
||||||
|
|
||||||
|
)
|
||||||
|
)
|
||||||
|
fig.add_trace(drawdown, row, 1)
|
||||||
|
except ValueError:
|
||||||
|
logger.warning("No trades found - not plotting max drawdown.")
|
||||||
|
return fig
|
||||||
|
|
||||||
|
|
||||||
def plot_trades(fig, trades: pd.DataFrame) -> make_subplots:
|
def plot_trades(fig, trades: pd.DataFrame) -> make_subplots:
|
||||||
"""
|
"""
|
||||||
Add trades to "fig"
|
Add trades to "fig"
|
||||||
@ -364,6 +395,7 @@ def generate_profit_graph(pairs: str, tickers: Dict[str, pd.DataFrame],
|
|||||||
|
|
||||||
fig.add_trace(avgclose, 1, 1)
|
fig.add_trace(avgclose, 1, 1)
|
||||||
fig = add_profit(fig, 2, df_comb, 'cum_profit', 'Profit')
|
fig = add_profit(fig, 2, df_comb, 'cum_profit', 'Profit')
|
||||||
|
fig = add_max_drawdown(fig, 2, trades, df_comb)
|
||||||
|
|
||||||
for pair in pairs:
|
for pair in pairs:
|
||||||
profit_col = f'cum_profit_{pair}'
|
profit_col = f'cum_profit_{pair}'
|
||||||
|
Loading…
Reference in New Issue
Block a user