mirror of
https://github.com/aljazceru/hummingbot-dashboard.git
synced 2026-01-09 00:14:24 +01:00
(feat) market activity improvements
This commit is contained in:
@@ -293,9 +293,8 @@ if selected_db is not None:
|
||||
value=round(sell_trades_amount * avg_sell_price, 2))
|
||||
st.plotly_chart(pnl_over_time(strategy_data_filtered.trade_fill), use_container_width=True)
|
||||
|
||||
st.divider()
|
||||
st.subheader("🕯️ Candlestick")
|
||||
if strategy_data_filtered.market_data is not None:
|
||||
st.subheader("💱 Market activity")
|
||||
if "Error" not in selected_db.status["market_data"] and strategy_data_filtered.market_data is not None:
|
||||
with st.expander("Market activity", expanded=True):
|
||||
col1, col2, col3 = st.columns([1, 1, 2])
|
||||
with col1:
|
||||
@@ -303,26 +302,35 @@ if selected_db is not None:
|
||||
with col2:
|
||||
rows_per_page = st.number_input("Candles per Page", value=100, min_value=1, max_value=5000)
|
||||
with col3:
|
||||
total_rows = len(strategy_data_filtered.get_market_data_resampled(interval=f"{intervals[interval]}S"))
|
||||
total_rows = len(
|
||||
strategy_data_filtered.get_market_data_resampled(interval=f"{intervals[interval]}S"))
|
||||
total_pages = math.ceil(total_rows / rows_per_page)
|
||||
if total_pages > 1:
|
||||
selected_page = st.select_slider("Select page", list(range(total_pages)), key="page_slider")
|
||||
selected_page = st.select_slider("Select page", list(range(total_pages)), total_pages - 1,
|
||||
key="page_slider")
|
||||
else:
|
||||
selected_page = 0
|
||||
start_idx = selected_page * rows_per_page
|
||||
end_idx = start_idx + rows_per_page
|
||||
candles_df = strategy_data_filtered.get_market_data_resampled(interval=f"{intervals[interval]}S").iloc[
|
||||
start_idx:end_idx]
|
||||
start_time_page = candles_df.index.min()
|
||||
end_time_page = candles_df.index.max()
|
||||
page_data_filtered = single_market_strategy_data.get_filtered_strategy_data(start_time_page, end_time_page)
|
||||
cg = CandlesGraph(candles_df, show_volume=False, extra_rows=2)
|
||||
cg.add_buy_trades(page_data_filtered.buys)
|
||||
cg.add_sell_trades(page_data_filtered.sells)
|
||||
cg.add_pnl(page_data_filtered, row=2)
|
||||
cg.add_base_inventory_change(page_data_filtered, row=3)
|
||||
fig = cg.figure()
|
||||
st.plotly_chart(fig, use_container_width=True)
|
||||
start_idx = selected_page * rows_per_page
|
||||
end_idx = start_idx + rows_per_page
|
||||
candles_df = strategy_data_filtered.get_market_data_resampled(
|
||||
interval=f"{intervals[interval]}S").iloc[
|
||||
start_idx:end_idx]
|
||||
start_time_page = candles_df.index.min()
|
||||
end_time_page = candles_df.index.max()
|
||||
page_data_filtered = single_market_strategy_data.get_filtered_strategy_data(start_time_page,
|
||||
end_time_page)
|
||||
col1, col2 = st.columns([5.5, 1.5])
|
||||
with col1:
|
||||
cg = CandlesGraph(candles_df, show_volume=False, extra_rows=2)
|
||||
cg.add_buy_trades(page_data_filtered.buys)
|
||||
cg.add_sell_trades(page_data_filtered.sells)
|
||||
cg.add_pnl(page_data_filtered, row=2)
|
||||
cg.add_base_inventory_change(page_data_filtered, row=3)
|
||||
fig = cg.figure()
|
||||
st.plotly_chart(fig, use_container_width=True)
|
||||
with col2:
|
||||
st.plotly_chart(intraday_performance(page_data_filtered.trade_fill), use_container_width=True)
|
||||
st.plotly_chart(top_n_trades(page_data_filtered.trade_fill.net_realized_pnl), use_container_width=True)
|
||||
else:
|
||||
st.warning("Market data is not available so the candles graph is not going to be rendered. "
|
||||
"Make sure that you are using the latest version of Hummingbot and market data recorder activated.")
|
||||
|
||||
Reference in New Issue
Block a user