Skip to content

Commit c7fecb3

Browse files
committed
Add equity curve module
1 parent d515c34 commit c7fecb3

File tree

1 file changed

+37
-0
lines changed

1 file changed

+37
-0
lines changed
Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
import pandas as pd
2+
from plotly import graph_objects as go
3+
4+
5+
def get_equity_curve_chart(equity_curve_series):
6+
equity_curve_df = pd.DataFrame(
7+
equity_curve_series, columns=["value", "datetime"]
8+
)
9+
10+
# Normalize equity to start at 1
11+
equity_curve_df["value"] = (
12+
equity_curve_df["value"] / equity_curve_df["value"].iloc[0]
13+
)
14+
15+
fig = go.Figure()
16+
17+
# Draw equity curve
18+
fig.add_trace(
19+
go.Scatter(
20+
x=equity_curve_df["datetime"],
21+
y=equity_curve_df["value"],
22+
mode="lines",
23+
line=dict(color="rgba(0, 128, 0, 0.8)", width=1),
24+
name="Equity Curve",
25+
hovertemplate="<b>Equity</b><br>%{x}<br>Value: %{y:.2f}<extra></extra>"
26+
)
27+
)
28+
29+
fig.update_layout(
30+
xaxis=dict(title=None),
31+
yaxis=dict(title="Cumulative Equity (log)", type="log"),
32+
title="Equity Curve with Drawdown",
33+
hovermode="x unified",
34+
legend=dict(orientation="h", yanchor="bottom", y=1.02, xanchor="right", x=1)
35+
)
36+
37+
return fig

0 commit comments

Comments
 (0)