这是indexloc提供的服务,不要输入任何密码
Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
31 commits
Select commit Hold shift + click to select a range
1c9475c
(feat) remove original file explorer
cardosofede Aug 4, 2023
a3915cb
(feat) add file explorer base
cardosofede Aug 3, 2023
61483af
(feat) add functionality to check logs
cardosofede Aug 3, 2023
b55b2a2
(feat) remove full path for tabs
cardosofede Aug 3, 2023
b0821c5
(feat) add specific bot file explorer
cardosofede Aug 3, 2023
954a710
(feat) refactor bot_orchestration
cardosofede Aug 4, 2023
2629160
(feat) remove directory from constructor
cardosofede Aug 3, 2023
76acf67
(feat) use directory from constants
cardosofede Aug 3, 2023
b83cc85
(feat) create directional strat file explorer
cardosofede Aug 3, 2023
94cee86
(feat) refactor bot_orchestration
cardosofede Aug 4, 2023
3bf2745
(feat) unify create and modify tabs
cardosofede Aug 3, 2023
587cb2b
(feat) move hotkey to editor
cardosofede Aug 3, 2023
aa97cf6
(feat) add optimizations file explorer card
cardosofede Aug 4, 2023
ce83168
(feat) add optimizations run card
cardosofede Aug 4, 2023
0a834ee
(feat) add optimizations creation card
cardosofede Aug 4, 2023
55c0fa3
(feat) add config to user attrs
cardosofede Aug 4, 2023
ae5a556
(feat) add directional strategy creation card
cardosofede Aug 4, 2023
6cbd877
(feat) refactor backtest manager tab
cardosofede Aug 4, 2023
e57cf1b
(feat) remove commented line
cardosofede Aug 4, 2023
4b68f2c
(feat) add simulate page
cardosofede Aug 4, 2023
bcb23be
(feat) add optimize page
cardosofede Aug 4, 2023
d2ab10c
(feat) remove old file explorer
cardosofede Aug 4, 2023
8f2a0e6
(feat) add specific file explorers
cardosofede Aug 4, 2023
426ffdb
(feat) add creation cards
cardosofede Aug 4, 2023
81d1f2e
(feat) remove app since it's splitted now
cardosofede Aug 4, 2023
79e5321
(feat) add optimization_run_card.py
cardosofede Aug 4, 2023
0aab828
(feat) refactor pages structure
cardosofede Aug 4, 2023
09b6c0f
(feat) add create strategies page
cardosofede Aug 4, 2023
f4300bb
(feat) add file manager tab
cardosofede Aug 4, 2023
eba8e06
(feat) adapt bot orchestration page
cardosofede Aug 4, 2023
d17ad75
(feat) add analyze page
cardosofede Aug 4, 2023
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
12 changes: 8 additions & 4 deletions main.py
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import streamlit as st
from st_pages import Page, Section, show_pages, add_page_title
from st_pages import Page, Section, show_pages

from utils.st_utils import initialize_st_page

Expand All @@ -8,12 +8,16 @@
show_pages(
[
Page("main.py", "Hummingbot Dashboard", "📊"),
Section("Foundation Pages", "🏠"),
Page("pages/bot_orchestration/app.py", "Bot Orchestration", "🐙"),
Section("Bot Orchestration", "🐙"),
Page("pages/bot_orchestration/app.py", "Bots Manager", "🦅"),
Page("pages/file_manager/app.py", "File Manager", "🗂"),
Section("Backtest Manager", "⚙️"),
Page("pages/backtest_manager/create.py", "Create", "⚔️"),
Page("pages/backtest_manager/optimize.py", "Optimize", "🧪"),
Page("pages/backtest_manager/analyze.py", "Analyze", "🔬"),
Page("pages/backtest_manager/simulate.py", "Simulate", "📈"),
Section("Community Pages", "👨‍👩‍👧‍👦"),
Page("pages/strategy_performance/app.py", "Strategy Performance", "🚀"),
Page("pages/backtest_manager/app.py", "Backtest Manager", "⚙️"),
Page("pages/candles_downloader/app.py", "Candles Downloader", "🗂"),
Page("pages/db_inspector/app.py", "DB Inspector", "🔍"),
Page("pages/token_spreads/app.py", "Token Spreads", "🧙"),
Expand Down
4 changes: 4 additions & 0 deletions pages/backtest_manager/analyze.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
from utils.st_utils import initialize_st_page


initialize_st_page(title="Analyze", icon="🔬", initial_sidebar_state="collapsed")
173 changes: 0 additions & 173 deletions pages/backtest_manager/app.py

This file was deleted.

49 changes: 49 additions & 0 deletions pages/backtest_manager/create.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,49 @@
from types import SimpleNamespace

import streamlit as st
from streamlit_elements import elements, mui

from ui_components.dashboard import Dashboard
from ui_components.directional_strategies_file_explorer import DirectionalStrategiesFileExplorer
from ui_components.directional_strategy_creation_card import DirectionalStrategyCreationCard
from ui_components.editor import Editor

from utils.st_utils import initialize_st_page


initialize_st_page(title="Create", icon="️⚔️", initial_sidebar_state="collapsed")

# TODO:
# * Add videos explaining how to the triple barrier method works and how the backtesting is designed,
# link to video of how to create a strategy, etc in a toggle.
# * Add functionality to start strategy creation from scratch or by duplicating an existing one

if "ds_board" not in st.session_state:
board = Dashboard()
ds_board = SimpleNamespace(
dashboard=board,
create_strategy_card=DirectionalStrategyCreationCard(board, 0, 0, 12, 1),
file_explorer=DirectionalStrategiesFileExplorer(board, 0, 2, 3, 7),
editor=Editor(board, 4, 2, 9, 7),
)
st.session_state.ds_board = ds_board

else:
ds_board = st.session_state.ds_board

# Add new tabs
for tab_name, content in ds_board.file_explorer.tabs.items():
if tab_name not in ds_board.editor.tabs:
ds_board.editor.add_tab(tab_name, content["content"], content["language"])

# Remove deleted tabs
for tab_name in list(ds_board.editor.tabs.keys()):
if tab_name not in ds_board.file_explorer.tabs:
ds_board.editor.remove_tab(tab_name)

with elements("directional_strategies"):
with mui.Paper(elevation=3, style={"padding": "2rem"}, spacing=[2, 2], container=True):
with ds_board.dashboard():
ds_board.create_strategy_card()
ds_board.file_explorer()
ds_board.editor()
68 changes: 68 additions & 0 deletions pages/backtest_manager/optimize.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,68 @@
import time
import webbrowser
from types import SimpleNamespace

import streamlit as st
from streamlit_elements import elements, mui

import constants
from quants_lab.strategy.strategy_analysis import StrategyAnalysis
from ui_components.dashboard import Dashboard
from ui_components.directional_strategies_file_explorer import DirectionalStrategiesFileExplorer
from ui_components.directional_strategy_creation_card import DirectionalStrategyCreationCard
from ui_components.editor import Editor
from ui_components.optimization_creation_card import OptimizationCreationCard
from ui_components.optimization_run_card import OptimizationRunCard
from ui_components.optimizations_file_explorer import OptimizationsStrategiesFileExplorer
from utils import os_utils
from utils.os_utils import load_directional_strategies

from utils.st_utils import initialize_st_page

initialize_st_page(title="Optimize", icon="🧪", initial_sidebar_state="collapsed")


def run_optuna_dashboard():
os_utils.execute_bash_command(f"optuna-dashboard sqlite:///data/backtesting/backtesting_report.db")
time.sleep(5)
webbrowser.open("http://127.0.0.1:8080/dashboard", new=2)


if "op_board" not in st.session_state:
board = Dashboard()
op_board = SimpleNamespace(
dashboard=board,
create_optimization_card=OptimizationCreationCard(board, 0, 0, 6, 1),
run_optimization_card=OptimizationRunCard(board, 6, 0, 6, 1),
file_explorer=OptimizationsStrategiesFileExplorer(board, 0, 2, 3, 7),
editor=Editor(board, 4, 2, 9, 7),
)
st.session_state.op_board = op_board

else:
op_board = st.session_state.op_board

# Add new tabs
for tab_name, content in op_board.file_explorer.tabs.items():
if tab_name not in op_board.editor.tabs:
op_board.editor.add_tab(tab_name, content["content"], content["language"])

# Remove deleted tabs
for tab_name in list(op_board.editor.tabs.keys()):
if tab_name not in op_board.file_explorer.tabs:
op_board.editor.remove_tab(tab_name)

with elements("optimizations"):
with mui.Paper(elevation=3, style={"padding": "2rem"}, spacing=[2, 2], container=True):
with mui.Grid(container=True, spacing=2):
with mui.Grid(item=True, xs=10):
pass
with mui.Grid(item=True, xs=2):
with mui.Fab(variant="extended", color="primary", size="large", onClick=run_optuna_dashboard):
mui.Typography("Open Optuna Dashboard", variant="body1")

with op_board.dashboard():
op_board.create_optimization_card()
op_board.run_optimization_card()
op_board.file_explorer()
op_board.editor()
Loading