diff --git a/frontend/components/backtesting.py b/frontend/components/backtesting.py index db5a6aa..66f7a32 100644 --- a/frontend/components/backtesting.py +++ b/frontend/components/backtesting.py @@ -3,13 +3,15 @@ from datetime import datetime, timedelta def backtesting_section(inputs, backend_api_client): + st.write("### Backtesting") c1, c2, c3, c4, c5 = st.columns(5) - default_end_time = datetime.now().date() + default_end_time = datetime.now().date() - timedelta(days=1) 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) + end_date = st.date_input("End Date", default_end_time, + help="End date is inclusive, make sure that you are not including the current date.") with c3: backtesting_resolution = st.selectbox("Backtesting Resolution", options=["1m", "3m", "5m", "15m", "30m", "1h", "1s"], index=0) with c4: diff --git a/frontend/components/st_inputs.py b/frontend/components/st_inputs.py index 9a417a5..920bc42 100644 --- a/frontend/components/st_inputs.py +++ b/frontend/components/st_inputs.py @@ -35,7 +35,7 @@ def distribution_inputs(column, dist_type_name, levels=3): scaling_factor = column.number_input(f"{dist_type_name} Scaling Factor", value=2.0, key=f"{column}_{dist_type_name.lower()}_scaling") elif dist_type == "Arithmetic": - step = column.number_input(f"{dist_type_name} Step", value=0.1, + step = column.number_input(f"{dist_type_name} Step", value=0.3, key=f"{column}_{dist_type_name.lower()}_step") elif dist_type == "Geometric": ratio = column.number_input(f"{dist_type_name} Ratio", value=2.0, @@ -56,17 +56,19 @@ def distribution_inputs(column, dist_type_name, levels=3): def get_distribution(dist_type, n_levels, start, base=None, scaling_factor=None, step=None, ratio=None, manual_values=None): + distribution = [] if dist_type == "Manual": - return manual_values + distribution = manual_values elif dist_type == "Linear": - return Distributions.linear(n_levels, start, step) + distribution = Distributions.linear(n_levels, start, step) elif dist_type == "Fibonacci": - return Distributions.fibonacci(n_levels, start) + distribution = Distributions.fibonacci(n_levels, start) elif dist_type == "Logarithmic": - return Distributions.logarithmic(n_levels, base, scaling_factor, start) + distribution = Distributions.logarithmic(n_levels, base, scaling_factor, start) elif dist_type == "Arithmetic": - return Distributions.arithmetic(n_levels, start, step) + distribution = Distributions.arithmetic(n_levels, start, step) elif dist_type == "Geometric": - return Distributions.geometric(n_levels, start, ratio) + distribution = Distributions.geometric(n_levels, start, ratio) elif dist_type == "GeoCustom": - return [Decimal("0")] + Distributions.geometric(n_levels - 1, start, ratio) + distribution = [Decimal("0")] + Distributions.geometric(n_levels - 1, start, ratio) + return [float(val) for val in distribution]