Files
hummingbot-dashboard/frontend/components/backtesting.py
2024-05-16 18:20:51 -04:00

32 lines
1.3 KiB
Python

import streamlit as st
from datetime import datetime, timedelta
def backtesting_section(inputs, backend_api_client):
c1, c2, c3, c4, c5 = st.columns(5)
default_end_time = datetime.now().date()
default_start_time = default_end_time - timedelta(days=2)
with c1:
start_date = st.date_input("Start Date", default_start_time)
with c2:
end_date = st.date_input("End Date", default_end_time)
with c3:
backtesting_resolution = st.selectbox("Backtesting Resolution", options=["1m", "3m", "5m", "15m", "30m", "1h", "1s"], index=0)
with c4:
trade_cost = st.number_input("Trade Cost (%)", min_value=0.0, value=0.06, step=0.01, format="%.2f")
with c5:
run_backtesting = st.button("Run Backtesting")
if run_backtesting:
start_datetime = datetime.combine(start_date, datetime.min.time())
end_datetime = datetime.combine(end_date, datetime.max.time())
backtesting_results = backend_api_client.run_backtesting(
start_time=int(start_datetime.timestamp()) * 1000,
end_time=int(end_datetime.timestamp()) * 1000,
backtesting_resolution=backtesting_resolution,
trade_cost=trade_cost / 100,
config=inputs,
)
return backtesting_results