(feat) formatting controllers

This commit is contained in:
cardosofede
2024-07-16 18:34:13 +03:00
parent 7a87588396
commit e7eba7ed09
5 changed files with 21 additions and 16 deletions

View File

@@ -1,9 +1,8 @@
import time import time
import streamlit as st
import pandas as pd
from CONFIG import BACKEND_API_HOST, BACKEND_API_PORT import pandas as pd
from backend.services.backend_api_client import BackendAPIClient import streamlit as st
from frontend.st_utils import get_backend_api_client from frontend.st_utils import get_backend_api_client
@@ -93,7 +92,8 @@ class LaunchV2WithControllers:
edited_df = st.data_editor(df, hide_index=True) edited_df = st.data_editor(df, hide_index=True)
self._controller_config_selected = [f"{config}.yml" for config in edited_df[edited_df["selected"]]["id"].tolist()] self._controller_config_selected = [f"{config}.yml" for config in
edited_df[edited_df["selected"]]["id"].tolist()]
st.write(self._controller_config_selected) st.write(self._controller_config_selected)
c1, c2, c3, c4 = st.columns([1, 1, 1, 0.3]) c1, c2, c3, c4 = st.columns([1, 1, 1, 0.3])
with c1: with c1:
@@ -108,4 +108,4 @@ class LaunchV2WithControllers:
with c4: with c4:
deploy_button = st.button("Deploy Bot") deploy_button = st.button("Deploy Bot")
if deploy_button: if deploy_button:
self.launch_new_bot() self.launch_new_bot()

View File

@@ -1,9 +1,11 @@
from streamlit_elements import mui, lazy
import datetime import datetime
from streamlit_elements import lazy, mui
import constants import constants
from backend.utils.file_templates import strategy_optimization_template from backend.utils.file_templates import strategy_optimization_template
from backend.utils.os_utils import load_controllers, save_file from backend.utils.os_utils import load_controllers, save_file
from .dashboard import Dashboard from .dashboard import Dashboard
@@ -28,7 +30,8 @@ class OptimizationCreationCard(Dashboard.Item):
def __call__(self): def __call__(self):
available_strategies = load_controllers(constants.CONTROLLERS_PATH) available_strategies = load_controllers(constants.CONTROLLERS_PATH)
strategy_names = [strategy for strategy, strategy_info in available_strategies.items() if strategy_info["type"] == "directional_trading"] strategy_names = [strategy for strategy, strategy_info in available_strategies.items() if
strategy_info["type"] == "directional_trading"]
with mui.Paper(key=self._key, with mui.Paper(key=self._key,
sx={"display": "flex", "flexDirection": "column", "borderRadius": 3, "overflow": "hidden"}, sx={"display": "flex", "flexDirection": "column", "borderRadius": 3, "overflow": "hidden"},
elevation=1): elevation=1):

View File

@@ -1,10 +1,11 @@
import threading import threading
import optuna import optuna
from streamlit_elements import mui, lazy from streamlit_elements import lazy, mui
import constants import constants
from backend.utils.os_utils import get_function_from_file, get_python_files_from_directory from backend.utils.os_utils import get_function_from_file, get_python_files_from_directory
from .dashboard import Dashboard from .dashboard import Dashboard
@@ -36,7 +37,9 @@ class OptimizationRunCard(Dashboard.Item):
def __call__(self): def __call__(self):
optimizations = get_python_files_from_directory(constants.OPTIMIZATIONS_PATH) optimizations = get_python_files_from_directory(constants.OPTIMIZATIONS_PATH)
with mui.Paper(key=self._key, sx={"display": "flex", "flexDirection": "column", "borderRadius": 3, "overflow": "hidden"}, elevation=1): with mui.Paper(key=self._key,
sx={"display": "flex", "flexDirection": "column", "borderRadius": 3, "overflow": "hidden"},
elevation=1):
with self.title_bar(padding="10px 15px 10px 15px", dark_switcher=False): with self.title_bar(padding="10px 15px 10px 15px", dark_switcher=False):
mui.icon.AutoFixHigh() mui.icon.AutoFixHigh()
mui.Typography("Run a optimization", variant="h6") mui.Typography("Run a optimization", variant="h6")
@@ -58,7 +61,7 @@ class OptimizationRunCard(Dashboard.Item):
with mui.Grid(item=True, xs=4): with mui.Grid(item=True, xs=4):
with mui.FormControl(variant="standard", sx={"width": "100%"}): with mui.FormControl(variant="standard", sx={"width": "100%"}):
mui.TextField(defaultValue=self._optimization_name, label="Number of trials", type="number", mui.TextField(defaultValue=self._optimization_name, label="Number of trials", type="number",
variant="standard", onChange=lazy(self._set_number_of_trials)) variant="standard", onChange=lazy(self._set_number_of_trials))
with mui.Grid(item=True, xs=4): with mui.Grid(item=True, xs=4):
with mui.Button(variant="contained", onClick=self._run_optimization, sx={"width": "100%"}): with mui.Button(variant="contained", onClick=self._run_optimization, sx={"width": "100%"}):
mui.icon.PlayCircleFilled() mui.icon.PlayCircleFilled()

View File

@@ -1,7 +1,5 @@
import streamlit as st import streamlit as st
from CONFIG import BACKEND_API_HOST, BACKEND_API_PORT
from backend.services.backend_api_client import BackendAPIClient
from frontend.st_utils import get_backend_api_client from frontend.st_utils import get_backend_api_client

View File

@@ -1,6 +1,6 @@
from _decimal import Decimal
from math import exp from math import exp
from _decimal import Decimal
from hummingbot.strategy_v2.utils.distributions import Distributions from hummingbot.strategy_v2.utils.distributions import Distributions
@@ -45,7 +45,7 @@ def distribution_inputs(column, dist_type_name, levels=3, default_values=None):
key=f"{column}_{dist_type_name.lower()}_ratio") key=f"{column}_{dist_type_name.lower()}_ratio")
elif dist_type == "Linear": elif dist_type == "Linear":
step = column.number_input(f"{dist_type_name} End", value=1.0, step = column.number_input(f"{dist_type_name} End", value=1.0,
key=f"{column}_{dist_type_name.lower()}_end") key=f"{column}_{dist_type_name.lower()}_end")
else: else:
if default_values: if default_values:
manual_values = [column.number_input(f"{dist_type_name} for level {i + 1}", value=value * 100.0, manual_values = [column.number_input(f"{dist_type_name} for level {i + 1}", value=value * 100.0,
@@ -53,7 +53,8 @@ def distribution_inputs(column, dist_type_name, levels=3, default_values=None):
enumerate(default_values)] enumerate(default_values)]
else: else:
manual_values = [column.number_input(f"{dist_type_name} for level {i + 1}", value=i + 1.0, manual_values = [column.number_input(f"{dist_type_name} for level {i + 1}", value=i + 1.0,
key=f"{column}_{dist_type_name.lower()}_{i}") for i, value in range(levels)] key=f"{column}_{dist_type_name.lower()}_{i}") for i, value in
range(levels)]
start = None # As start is not relevant for Manual type start = None # As start is not relevant for Manual type
return dist_type, start, base, scaling_factor, step, ratio, manual_values return dist_type, start, base, scaling_factor, step, ratio, manual_values