mirror of
https://github.com/aljazceru/hummingbot-dashboard.git
synced 2025-12-24 08:44:22 +01:00
(feat) formatting controllers
This commit is contained in:
@@ -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()
|
||||||
|
|||||||
@@ -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):
|
||||||
|
|||||||
@@ -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()
|
||||||
|
|||||||
@@ -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
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
Reference in New Issue
Block a user