Giter VIP home page Giter VIP logo

dashboard's Introduction

Hummingbot


License Twitter Youtube Discord

Hummingbot is an open source framework that helps you build automated trading strategies, or bots that run on cryptocurrency exchanges.

This code is free and publicly available under the Apache 2.0 open source license!

Why Hummingbot?

  • Both CEX and DEX connectors: Hummingbot supports connectors to centralized exchanges like Binance and KuCoin, as well as decentralized exchanges like Uniswap and PancakeSwap on various blockchains (Ethereum, BNB Chain, etc).
  • Cutting edge strategy framework: Our new V2 Strategies framework allows you to compose powerful, backtestable, multi-venue, multi-timeframe stategies of any type
  • Secure local client: Hummingbot is a local client software that you install and run on your own devices or cloud virtual machines. It encrypts your API keys and private keys and never exposes them to any third parties.
  • Community focus: Hummingbot is driven by a global community of quant traders and developers who maintain the connectors and contribute strategies to the codebase.

Help us democratize high-frequency trading and make powerful trading algorithms accessible to everyone in the world!

Quick Links

  • Website and Docs: Official Hummingbot website and documentation
  • Installation: Install Hummingbot on various platforms
  • FAQs: Answers to all your burning questions
  • Botcamp: Learn how build your own custom HFT strategy in Hummingbot with our hands-on bootcamp!
  • Newsletter: Get our monthly newletter whenever we ship a new release
  • Discord: The main gathering spot for the global Hummingbot community
  • YouTube: Videos that teach you how to get the most of of Hummingbot
  • Twitter: Get the latest announcements about Hummingbot
  • Snapshot: Participate in monthly polls that decide which components should be prioritized

Getting Started

Install with Docker

We recommend installing Hummingbot using Docker if you want the simplest, easiest installation method and don't need to modify the Hummingbot codebase.

Prerequisites:

  • MacOS 10.12.6+ / Linux (Ubuntu 20.04+, Debian 10+) / Windows 10+
  • Memory: 4 GB RAM per instance
  • Storage: 5 GB HDD space per instance
  • Install Docker Compose
git clone https://github.com/hummingbot/hummingbot
cd hummingbot
docker compose up -d
docker attach hummingbot

Install from Source

We recommend installing Hummingbot from source if you want to customize or extend the Hummingbot codebase, build new components like connectors or strategies, and/or learn how Hummingbot works at a deeper, technical level.

Prerequisites:

  • MacOS 10.12.6+ / Linux (Ubuntu 20.04+, Debian 10+)
  • Memory: 4 GB RAM per instance
  • Storage: 3 GB HDD space per instance
  • Install Anaconda or Miniconda
git clone https://github.com/hummingbot/hummingbot
cd hummingbot
./install
conda activate hummingbot
./compile
./start

See Installation for detailed guides for each OS.

Architecture

Hummingbot architecture features modular components that can be maintained and extended by individual community members.

Strategies and Scripts

A Hummingbot strategy is an ongoing process that executes an algorithmic trading strategy. It is constructed as a user-defined program that uses an underlying framework to abstracts low-level operations:

V2 Strategies: The latest and most advanced way to create strategies in Hummingbot, V2 strategies are built using composable elements known as Controllers and PositionExecutors. These elements can be mixed and matched, offering a modular approach to strategy creation and making the development process faster and more efficient.

Scripts: For those who are looking for a lightweight solution, Hummingbot provides scripting support. These are single-file strategies that are quick to implement and can be an excellent starting point for those new to algorithmic trading. Check out the /scripts folder for all Script examples included in the codebase.

V1 Strategies: Templatized programs templates for various algorithmic trading strategies that expose a set of user-defined parameters, allowing you to customize the strategy's behavior. While these V1 strategies were Hummingbot's original method of defining strategies and have been superceded by V2 Strategies and Scripts, the strategies below are still often used:

Connectors

Hummingbot connectors standardize trading logic and order types across different types of exchanges and blockchain networks. Each connector's code is contained in modularized folders in the Hummingbot and/or Gateway codebases.

Currently, the Hummingbot codebase contains 50+ connectors of the following types:

  • CEX: Centralized exchanges take custody of user assets, i.e. Binance, Kucoin, etc.
  • DEX: Decentralized exchanges are platforms in which user assets are stored non-custodially in smart contracts, i.e. dYdX, Uniswap, etc.
  • Chain: Layer 1 blockchain ecosystems such as Ethereum, BNB Chain, Avalanche, etc.

Each exchange has one or more connectors in the Hummingbot codebase that supports a specific market type that the exchange supports:

  • spot: Connectors to central limit order book (CLOB) exchanges that trade spot markets
  • perp: Connectors to central limit order book (CLOB) exchanges that trade perpetual swap markets
  • amm: Connectors to decentralized exchanges that use the Automatic Market Maker (AMM) methodology

Quarterly Polls allow HBOT holders decide how maintenance bandwidth and development bounties are allocated toward the connectors in the codebase.

Sponsors & Partners

The Hummingbot Foundation, supported by its sponsors, partners and backers, is dedicated to fostering a robust, community-driven ecosystem for algorithmic crypto trading.

Sponsors

Exchange Partners

For more information about the support provided by these partners, see the financial reports provided in HBOT Tracker.

Other Hummingbot Repos

  • Dashboard: Community pages that help you create, backtest, deploy, and manage Hummingbot instances
  • Gateway: API middleware for DEX connectors
  • Deploy Examples: Deploy Hummingbot in various configurations with Docker
  • Hummingbot Site: Official documentation for Hummingbot - we welcome contributions here too!
  • Awesome Hummingbot: All the Hummingbot links
  • Brokers: Different brokers that can be used to communicate with multiple instances of Hummingbot

Contributions

Hummingbot belongs to its community, so we welcome contributions! Please review these guidelines first.

To have your exchange connector or other pull request merged into the codebase, please submit a New Connector Proposal or Pull Request Proposal, following these guidelines. Note that you will need some amount of HBOT tokens in your Ethereum wallet to submit a proposal.

Legal

dashboard's People

Contributors

cardosofede avatar carlitogetaladajr avatar cryptojorge avatar david-hummingbot avatar devamin avatar erv4gen avatar fengtality avatar klpanagi avatar nikspz avatar peterwilli avatar rapcmia avatar rolandkofler avatar tomasgaudino avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

dashboard's Issues

Instance - RPCClientTimeoutError: Could not connect to [instance-name]. Please review the connection.

Describe the bug

Testing dashboard using the latest version 1.26.0 and managed to create hummingbot-master_bot_conf however when creating instances under master_bot_conf, we are getting RPCClientTimeoutError: Could not connect to.. Please review the connection.

image

Check dashboard folder, `../hummingbot_files/bots/instance_name/logs/error.log

Traceback (most recent call last):
  File "/home/hummingbot/./bin/hummingbot_quickstart.py", line 15, in <module>
    from bin.hummingbot import UIStartListener, detect_available_port
  File "/home/hummingbot/bin/hummingbot.py", line 19, in <module>
    from hummingbot.client.hummingbot_application import HummingbotApplication
  File "/home/hummingbot/hummingbot/client/hummingbot_application.py", line 9, in <module>
    from hummingbot.client.command import __all__ as commands
  File "/home/hummingbot/hummingbot/client/command/__init__.py", line 2, in <module>
    from .config_command import ConfigCommand
  File "/home/hummingbot/hummingbot/client/command/config_command.py", line 8, in <module>
    from hummingbot.client.command.gateway_command import GatewayCommand
  File "/home/hummingbot/hummingbot/client/command/gateway_command.py", line 26, in <module>
    from hummingbot.client.ui.completer import load_completer
  File "/home/hummingbot/hummingbot/client/ui/completer.py", line 30, in <module>
    from hummingbot.strategy.strategy_v2_base import StrategyV2ConfigBase
  File "/home/hummingbot/hummingbot/strategy/strategy_v2_base.py", line 22, in <module>
    from hummingbot.smart_components.controllers.controller_base import ControllerBase, ControllerConfigBase
ModuleNotFoundError: No module named 'hummingbot.smart_components.controllers.controller_base'

Note: This seems related to an update from v2 strategy introducing controllers

Steps to reproduce bug

  1. Fresh install dashboard
  2. On Credentials, start master config
  3. On Instance
    a. Start hummingbot broker
    b. Create new instance using latest (release version 1.26.0)

An error appeared on the dashboard in the section "Instances" and "Credentials"

Describe the bug

An error appeared on the dashboard in the section "Instances" and "Credentials".
Includes 7 bots, processor, and memory with reserve

Steps to reproduce bug

  1. "Instances" and "Credentials"
    Discord hummingbot capture Mar 13
    Capture Mar 13

OSError: [Errno 24] Too many open files
Traceback:
File "/root/miniconda3/envs/dashboard/lib/python3.10/site-packages/streamlit/runtime/scriptrunner/script_runner.py", line 542, in _run_script
File "/opt/hummingbot-dashboard/dashboard/pages/bot_orchestration/app.py", line 95, in
update_containers_info(docker_manager)
File "/opt/hummingbot-dashboard/dashboard/pages/bot_orchestration/app.py", line 65, in update_containers_info
"broker_client": BotCommands(host='localhost', port=1883, username='admin', password='password',
File "/root/miniconda3/envs/dashboard/lib/python3.10/site-packages/hbotrc/commands.py", line 51, in init
File "/root/miniconda3/envs/dashboard/lib/python3.10/site-packages/hbotrc/commands.py", line 85, in _init_clients
File "/root/miniconda3/envs/dashboard/lib/python3.10/site-packages/commlib/node.py", line 455, in create_rpc_client
File "/root/miniconda3/envs/dashboard/lib/python3.10/site-packages/commlib/transports/mqtt.py", line 698, in init
File "/root/miniconda3/envs/dashboard/lib/python3.10/site-packages/commlib/transports/mqtt.py", line 101, in init
File "/root/miniconda3/envs/dashboard/lib/python3.10/site-packages/commlib/transports/mqtt.py", line 252, in connect
File "/root/miniconda3/envs/dashboard/lib/python3.10/site-packages/paho/mqtt/client.py", line 914, in connect
File "/root/miniconda3/envs/dashboard/lib/python3.10/site-packages/paho/mqtt/client.py", line 1044, in reconnect
File "/root/miniconda3/envs/dashboard/lib/python3.10/site-packages/paho/mqtt/client.py", line 3685, in _create_socket_connection
File "/root/miniconda3/envs/dashboard/lib/python3.10/socket.py", line 824, in create_connection
File "/root/miniconda3/envs/dashboard/lib/python3.10/socket.py", line 955, in getaddrinfo


  1. OSError: [Errno 24] Too many open files: '/opt/hummingbot-dashboard/dashboard/pages/bot_orchestration/README.md'
    Traceback:
    File "/root/miniconda3/envs/dashboard/lib/python3.10/site-packages/streamlit/runtime/scriptrunner/script_runner.py", line 542, in _run_script
    File "/opt/hummingbot-dashboard/dashboard/pages/bot_orchestration/app.py", line 24, in
    initialize_st_page(title="Instances", icon="🦅", initial_sidebar_state="collapsed")
    File "/opt/hummingbot-dashboard/dashboard/utils/st_utils.py", line 25, in initialize_st_page
    File "/root/miniconda3/envs/dashboard/lib/python3.10/pathlib.py", line 1134, in read_text
    File "/root/miniconda3/envs/dashboard/lib/python3.10/pathlib.py", line 1119, in open

Bot not starting

Describe the bug

I created a new bot with the Dashboard. When I select a script to run and press "Start" it is not running.

Steps to reproduce bug

  1. Created a new bot with the Dashboard.
  2. Selected "fixed_grid.py" and pressed "Start" (the green button).
  3. The "fixed_grid.py" disappers and the bot status is still "Not Running".
    image

Dashboard uses HTTP (where HTTPS should be expected)

Describe the bug

The Dashboard is used as an interface to your containers. The Dashboard is protected by a username & password combination.
However, this information is served over an HTTP connection, which suggests the data between the Dashboard container and the web browser is unprotected, resulting in exposing confidential information (login credentials / financial data / others?) to the network.

Steps to reproduce bug

  1. Deploy a Dashboard container.
  2. The Dashboard is now accessible on HTTP://IP-address:8501. This should become HTTPS://IP-address:8501

Container - A extra conf_client.yml is created outside of /conf folder when a container is successfully created

Describe the bug

A community member reported that there is a extra conf_client.yml file is created on templates/master_bot_conf folder

image

This is also noticeable on containers when created successfully on bot orchestration instances page

image

Note: The correct conf_client.yml has the container name as instance_id inside the ./conf folder

image

Steps to reproduce bug

  1. Setup the latest dasboard on source
  2. Create master_bot_conf container and check the files on hummingbot_files/templates/master_bot_conf/
  3. Create containers on bot orchestration > instances page
  4. Check the files on hummingbot_files/bots/

Create a standard template for dashboard pages

Why

  • Page owners need guidance to create dashboard pages with a standardized format

What

  • Define what every dashboard page should have
  • Create a DashboardPage base class that contains the sections and fields that should be defined
    • Title, Description, Maintainer, etc

Cannot start broker.

Describe the bug

When I click on "start" next to Manage Broker under Instances it doesn't start.

When I check the terminal it says:

unknown shorthand flag: 'p' in -p
See 'docker --help'.

I installed from source in Ubuntu 22.04.
Docker version 24.0.5, build 24.0.5-0ubuntu1~22.04.1

Thanks.

Steps to reproduce bug

  1. Log into Dashboard
  2. Click Instances
  3. Click Start (next to Manage Broker)

Improvements in Candles Downloader

Feature Suggestion

Tasks:
- [ ] Improve market selection to download. Based on the exchange selected, search for all the available markets.
- [ ] Based on the selected market, restrict the number of days that you can download
- [ ] Add support to remove the container automatically when it finishes —> possible solution sys.exit
- [ ] See progress in the dashboard and notify the user when it’s ready

Impact

Improve the UX of the candles downloader page

Additional context

No response

Improvements in Broker integration

The dashboard uses the Broker to control and send messages to the bots.
There are some UX issues when:

  • Starting a bot without the broker running (logs every 10 seconds checking connection)
  • Starting strategies that fails to start (no information about the status)
  • Understanding performance of the bot (PNL, Volume traded)
  • Command to stop the bot sometimes fails

Bot orchestration - Unable to create master_bot_conf/conf on local macbook

Describe the bug

When running tests on docker compose build for dashboard on local macbook, getting the error below when starting master_configs

docker: Error response from daemon: Mounts denied:
The path /home/dashboard/hummingbot_files/templates/master_bot_conf/conf is not shared from the host and is not known to Docker.
You can configure shared paths from Docker -> Preferences... -> Resources -> File Sharing.

Steps to reproduce bug

  1. Run hummingbot_with_dashboard compose file
  2. Use dashboard development branch
  3. Run dashboard on local MacOS
  4. Start master config

Market Activity Chart Not Displayed in Paper Trading Mode

Describe the bug

When using Hummingbot in paper trading mode (e.g., binance_PaperTrade), the Market Activity and Intraday Performance charts are not displayed in the Hummingbot Dashboard's Strategy Performance page.

Steps to reproduce bug

  1. Run Hummingbot with paper trade configuration (e.g., binance_PaperTrade).
  2. Upload the Hummingbot SQLite Database file to the Strategy Performance page of the Dashboard.
  3. Select a strategy for analysis.

Observed Behavior

  1. The exchange name displayed in the table is binance instead of binance_PaperTrade.
  2. The Market Activity and Intraday Performance charts are blank.

`st.experimental_rerun` will be removed

Describe the bug

`st.experimental_rerun` will be removed after 2024-04-01.
2023-11-01 14:08:16.477 Please replace `st.experimental_rerun` with `st.rerun`.

Steps to reproduce bug

Shows in Terminal as Dashboard tries to reload Instances page when there's a running instance.

Bug Report: Can't start an instance

Describe the bug

I created a new instance on the dashboard, but when I start it, it suddenly shuts down after few seconds.

Traceback (most recent call last):
  File "/home/hummingbot/./bin/hummingbot_quickstart.py", line 15, in <module>
    from bin.hummingbot import UIStartListener, detect_available_port
  File "/home/hummingbot/bin/hummingbot.py", line 19, in <module>
    from hummingbot.client.hummingbot_application import HummingbotApplication
  File "/home/hummingbot/hummingbot/client/hummingbot_application.py", line 9, in <module>
    from hummingbot.client.command import __all__ as commands
  File "/home/hummingbot/hummingbot/client/command/__init__.py", line 2, in <module>
    from .config_command import ConfigCommand
  File "/home/hummingbot/hummingbot/client/command/config_command.py", line 8, in <module>
    from hummingbot.client.command.gateway_command import GatewayCommand
  File "/home/hummingbot/hummingbot/client/command/gateway_command.py", line 22, in <module>
    from hummingbot.client.ui.completer import load_completer
  File "/home/hummingbot/hummingbot/client/ui/completer.py", line 29, in <module>
    from hummingbot.strategy.strategy_v2_base import StrategyV2ConfigBase
  File "/home/hummingbot/hummingbot/strategy/strategy_v2_base.py", line 16, in <module>
    from hummingbot.connector.markets_recorder import MarketsRecorder
  File "/home/hummingbot/hummingbot/connector/markets_recorder.py", line 49, in <module>
    from hummingbot.smart_components.controllers.controller_base import ControllerConfigBase
ModuleNotFoundError: No module named 'hummingbot.smart_components.controllers.controller_base'

I tried on MacOS and WSL2.

Steps to reproduce bug

  1. Fresh install of the dashboard
  2. Create an instance
  3. Try to start the instance

Hummingbot image without password para script utils

To run a bot with a specific functionality like sending alerts or downloading candles-ob-trades the user needs to create a password the first time that the docker container is running. That is very annoying and can lead in problems with the setup so a new version to run Hummingbot without terminal and password will be very good.

`limit` parameter bug in Strategy Dashboard

When you load up a strategy DB to use with Strategy Dashboard, you will likely see this error msg if the strategy recently started.
Screen Shot 2023-04-27 at 12 01 24 PM

I think changing the default candles interval from 1h to 1m fixes this

Bug Report : I have a problem when I try to use the dashboard with the WindowOS

Describe the bug

  1. I cannot use the make as the tutorial did
    image

  2. even if I use the pure code as in the make file the conda is still fail to install
    image

image

  1. even I try to change to use docker
    -> it can build but after running it shows this error
    image

-> even if my computer have already start the docker desktop it still show that docker daemon is not running
image

Steps to reproduce bug

Update README

Why

  • Dashboard project README is out of date

What

Update the Github README

  • How to install / update
  • How to set up
  • How to run
  • How to contribute
  • How to join bi-weekly meetings

Bug Report

Describe the bug

We are encountering below exceptions after upgrade hummingbot version to v1.27.0
Is there any version compatibility issue between dashboard and hummingbot?

latest version of hummingbot is not on pip yet, so I modified in environment_conda.yml to install the latest

ImportError: cannot import name 'read_yaml_file' from 'utils.os_utils' (/data/dashboard/utils/os_utils.py)
2024-04-29 16:22:36.582 Uncaught app exception
Traceback (most recent call last):
File "/data/miniconda3/envs/dashboard/lib/python3.10/site-packages/streamlit/runtime/scriptrunner/script_runner.py", line 584, in _run_script
exec(code, module.dict)
File "/data/dashboard/main.py", line 6, in
from utils.os_utils import read_yaml_file, dump_dict_to_yaml
File "/data/dashboard/utils/os_utils.py", line 8, in
from hummingbot.smart_components.strategy_frameworks.directional_trading import DirectionalTradingControllerBase, DirectionalTradingControllerConfigBase
ModuleNotFoundError: No module named 'hummingbot.smart_components.strategy_frameworks

Steps to reproduce bug

OSError: [Errno 24] Too many open files

Describe the bug

OSError: [Errno 24] Too many open files: '/home/ubuntu/dashboard/pages/bot_orchestration/README.md' Traceback: File "/home/ubuntu/miniconda3/envs/dashboard/lib/python3.10/site-packages/streamlit/runtime/scriptrunner/script_runner.py", line 541, in _run_script File "/home/ubuntu/dashboard/pages/bot_orchestration/app.py", line 24, in <module> File "/home/ubuntu/dashboard/utils/st_utils.py", line 23, in initialize_st_page File "/home/ubuntu/miniconda3/envs/dashboard/lib/python3.10/pathlib.py", line 1134, in read_text File "/home/ubuntu/miniconda3/envs/dashboard/lib/python3.10/pathlib.py", line 1119, in open

Hello everyone, so I am running 2 bot instances, and every few hours I get this error. I have to restart Streamlit every few hours. Tried rebooting the machine, too.

Steps to reproduce bug

  1. Custom wrote a new simple strategy, compiled from the source ( v1.20)
  2. Build and push custom docker Image
  3. Setup Dashboard on a new instance
  4. My instance is on Google Cloud, ubuntu with 24GB RAM and an 8core CPU.
  5. Started bot instance from the custom docker image URL
  6. Ran sudo chmod 666 /var/run/docker.sock
  7. Access the docker instance to configure the bot the first time
  8. Start the bots from the dashboard
  9. All runs smooth
  10. After a few hours ~12hr when I come back to the dashboard I see the "Too many files open " error
  11. I have to reboot Streamlit to fix it.

Bug Report. When creating a strategy V1 spot_perpetual_arbitrage in a bot created via a dashboard.

Describe the bug

My error

10:17:52 hummingbot_application MQTT Bridg
e connected with success.

10:18:39 async_utils Unhandled error in background task:The
module spot_perpetual_arbitrage does not contain any subclass of
ScriptstrategyBase (See log file for stack trace dump)

appears in the bot created through the dashboard. When I create a strategy in an isolated bot, everything works. Perhaps the same error occurs in other strategies V1 in such bots.

Steps to reproduce

  1. Version 1.24 and 1.25
  2. Bot created through the dashboard
  3. strategy V1 spot_perpetual_arbitrage
  4. 02:15:19 async_utils Unhandled error in background task:
    The module spot_perpetual_arbitrage does not contain any subclass of Sc
    riptstrategyBase (See log file for stack trace dump)
  5. There is no such error in a bot created from scratch without a dashboard.

Release version

1.24 and 1.25

Type of installation

Source

Attach required files

No response

Bot orchestration - Run strategy does import config file but does not start

When checking dashboard's bot orchestration feature, all is well for create and start client/broker containers however when trying to call a strategy file (tested on papertrade) it does import the config but does not start resulting to stuck stop command initiated even with importing or creating new strategy on the client instance.

Trigger Run strategy on dashboard, this shows on client instance:
image

Tried to create or import another strategy file getting a prompt that The bot is already running - please run "stop" first but stuck on stop command initiated (screenshot shows attempt of sending multiple stop commands but no avail)
image

Note: Observed that when you manually import and start the strategy on the client instance, the Get status and Stop strategy works. Even the Run strategy is able to call a different strategy file and managed to import then start ✅

Steps to reproduce:

  1. Setup dashboard and go to Bot orchestration
  2. Create client container then start broker. Refresh dashboard page
  3. On client container create a simple PMM papertrade for test
  4. On dashboard, Trigger Run strategy and use the strategy created
  5. Observe behavior

Bug Report: click start,but doesn't work

Describe the bug

go through docs, step by step deploy dashboard,log in, click the start button, does not setup docker !
36

Steps to reproduce bug

  1. deploy dashbord
  2. register and log in
  3. click the start button

Login needed for Dashboard

Describe the bug

When access the Dashboard (http://IP-address:8501) for the first time, user is presented with a login screen.
Could not find login details on HummingBot website (Dashboard Wiki etc) or Youtube demo's. Always looks like login in appears 'magically'.

I finally looked into Github and found credentials.yaml. Used the email address mentioned in there to log in.

Please describe the 'how to create a log in' and add it to the relevant pages?

Steps to reproduce bug

  1. Deploy Dashboard container (greenfield)
  2. Go to http://IP-address:8501
  3. Get a prompt for a login

Failed to build pysha3 safe-pysha3

Failed to build pysha3 safe-pysha3

Hi friends

when I run "make env_create" command after "Installing pip dependencies" section I got error below.
I tested with Anaconda3 and Miniconda and both is same error
Any Idea?

Successfully built hbotrc docker-manager
Failed to build pysha3 safe-pysha3 -
Pip subprocess error:
Running command git clone --filter=blob:none --quiet https://github.com/hummingbot/hbot-remote-client-py.git /tmp/pip-req-build-ii2dynoh
Running command git clone --filter=blob:none --quiet https://github.com/hummingbot/docker-manager.git /tmp/pip-req-build-ibbu09ri
error: subprocess-exited-with-error

× python setup.py bdist_wheel did not run successfully.
│ exit code: 1
╰─> [13 lines of output]
running bdist_wheel
running build
running build_py
creating build
creating build/lib.linux-x86_64-cpython-310
copying sha3.py -> build/lib.linux-x86_64-cpython-310
running build_ext
building '_pysha3' extension
creating build/temp.linux-x86_64-cpython-310
creating build/temp.linux-x86_64-cpython-310/Modules
creating build/temp.linux-x86_64-cpython-310/Modules/_sha3
gcc -pthread -B /root/miniconda3/envs/dashboard/compiler_compat -Wno-unused-result -Wsign-compare -DNDEBUG -fwrapv -O2 -Wall -fPIC -O2 -isystem /root/miniconda3/envs/dashboard/include -fPIC -O2 -isystem /root/miniconda3/envs/dashboard/include -fPIC -DPY_WITH_KECCAK=1 -I/root/miniconda3/envs/dashboard/include/python3.10 -c Modules/_sha3/sha3module.c -o build/temp.linux-x86_64-cpython-310/Modules/_sha3/sha3module.o
error: command 'gcc' failed: No such file or directory
[end of output]

note: This error originates from a subprocess, and is likely not a problem with pip.
ERROR: Failed building wheel for pysha3
error: subprocess-exited-with-error

× python setup.py bdist_wheel did not run successfully.
│ exit code: 1
╰─> [13 lines of output]
running bdist_wheel
running build
running build_py
creating build
creating build/lib.linux-x86_64-cpython-310
copying sha3.py -> build/lib.linux-x86_64-cpython-310
running build_ext
building '_pysha3' extension
creating build/temp.linux-x86_64-cpython-310
creating build/temp.linux-x86_64-cpython-310/Modules
creating build/temp.linux-x86_64-cpython-310/Modules/_sha3
gcc -pthread -B /root/miniconda3/envs/dashboard/compiler_compat -Wno-unused-result -Wsign-compare -DNDEBUG -fwrapv -O2 -Wall -fPIC -O2 -isystem /root/miniconda3/envs/dashboard/include -fPIC -O2 -isystem /root/miniconda3/envs/dashboard/include -fPIC -DPY_WITH_KECCAK=1 -I/root/miniconda3/envs/dashboard/include/python3.10 -c Modules/_sha3/sha3module.c -o build/temp.linux-x86_64-cpython-310/Modules/_sha3/sha3module.o
error: command 'gcc' failed: No such file or directory
[end of output]

note: This error originates from a subprocess, and is likely not a problem with pip.
ERROR: Failed building wheel for safe-pysha3
ERROR: Could not build wheels for pysha3, safe-pysha3, which is required to install pyproject.toml-based projects
failed

CondaEnvException: Pip failed

make: *** [Makefile:13: env_create] Error 1

Steps to reproduce bug

  1. installing requirement
  2. installing docker and anaconda
  3. running make env_create command and got this error

Strategy performance - Error when scrolling to older timeframes

While checking strategy performance tab, this issue happens when you are trying to check older timeframe after the hummingbot had some successful trades.

image

2023-05-31 04:25:45.569 Uncaught app exception
Traceback (most recent call last):
  File "/opt/conda/envs/dashboard/lib/python3.9/site-packages/streamlit/runtime/scriptrunner/script_runner.py", line 565, in _run_script
    exec(code, module.__dict__)
  File "/home/dashboard/pages/2_🚀_Strategy_Performance.py", line 100, in <module>
    st.metric(label='Price change', value=f"{round(strategy_data_filtered.price_change * 100, 2)} %")
  File "/home/dashboard/utils/data_manipulation.py", line 153, in price_change
    return (self.end_price - self.start_price) / self.start_price
  File "/home/dashboard/utils/data_manipulation.py", line 111, in end_price
    return self.trade_fill["price"].iat[-1]
  File "/opt/conda/envs/dashboard/lib/python3.9/site-packages/pandas/core/indexing.py", line 2364, in __getitem__
    return self.obj._get_value(*key, takeable=self._takeable)
  File "/opt/conda/envs/dashboard/lib/python3.9/site-packages/pandas/core/series.py", line 1113, in _get_value
    return self._values[label]
IndexError: index -1 is out of bounds for axis 0 with size 0
/home/dashboard/utils/data_manipulation.py:148: RuntimeWarning:

invalid value encountered in scalar divide

/home/dashboard/utils/data_manipulation.py:148: RuntimeWarning:

invalid value encountered in scalar divide

/home/dashboard/utils/data_manipulation.py:148: RuntimeWarning:

invalid value encountered in scalar divide

/home/dashboard/utils/data_manipulation.py:148: RuntimeWarning:

invalid value encountered in scalar divide

/home/dashboard/utils/data_manipulation.py:148: RuntimeWarning:

invalid value encountered in scalar divide

/home/dashboard/utils/data_manipulation.py:148: RuntimeWarning:

invalid value encountered in scalar divide

On the screenshot above, the trade was around 2023-05-31 04:24:14 but if you scroll to older timeframe, error occurred which is expected. Possible we can have a better response

Steps to reproduce:

  1. Setup Hummingbot and Dashboard
  2. Setup simple PMM strategy
  3. Wait for order filled then go to Dashboard > Strategy performance
  4. Try to scroll to the older timeframe and observe dashboarad behavior

Strategy performance - NameError: name 'exchanges_trading_pairs' is not defined

When testing the dashboard, observed that if there are no trade data yet, the strategy performance table would return NameError: name 'exchanges_trading_pairs' is not defined

image

2023-05-31 04:08:50.075 Uncaught app exception
Traceback (most recent call last):
  File "/opt/conda/envs/dashboard/lib/python3.9/site-packages/streamlit/runtime/scriptrunner/script_runner.py", line 565, in _run_script
	    exec(code, module.__dict__)
  File "/home/dashboard/pages/2_🚀_Strategy_Performance.py", line 65, in <module>
    selected_exchange = st.selectbox("Select an exchange:", list(exchanges_trading_pairs.keys()))
NameError: name 'exchanges_trading_pairs' is not defined

Note: Issue only occur when there is no data on sqlite yet

Steps to reproduce:

  1. Setup client and dashboard
  2. Setup any hummingbot strategy
  3. Start the bot and check the dashboard
  4. Go to strategy performance while there is no trades

Bug Report: make env_create failed

I can't install dashboard,

make env_create fails.

System settings:

Conda version: 24.4.0
python version: 3.10.14
Ubuntu 20.04.6 LTS
Docker version 26.0.0, build 2ae903e

Steps to reproduce bug

(env_python3.10.14) jechaviz@DESKTOP-3ASKMFN:~$ make env_create
conda env create -f environment_conda.yml
Channels:
 - defaults
 - conda-forge
Platform: linux-64
Collecting package metadata (repodata.json): done
Solving environment: done

Downloading and Extracting Packages:

Preparing transaction: done
Verifying transaction: done
Executing transaction: done
Installing pip dependencies:
... after a while:...
Pip subprocess error:
  Running command git clone --filter=blob:none --quiet https://github.com/hummingbot/hbot-remote-client-py.git /tmp/pip-req-build-_hwnve2e
  Running command git clone --filter=blob:none --quiet https://github.com/hummingbot/docker-manager.git /tmp/pip-req-build-2gtcvl94
  error: subprocess-exited-with-error

  × python setup.py bdist_wheel did not run successfully.

Assess page and create backlog

Who

  • All Dashboard maintainers

Why

  • Get everyone started with this project
  • Ensure that maintainers own the roadmaps for their pages

What

  • Test out the current user experience of your page
  • Organize with your co-maintainer
  • Flesh out the Tasks section of your page in the Wiki

Backtest manager - The Strategy name does not accept names separated by "-"

Describe the bug

When creating a strategy name for backtest manager using a template, it does not accept names separated by -. For example {test-01, market-making} and will return an error of SyntaxError: invalid decimal literal

image

SyntaxError: File "/Users/rapcomia/github/dashboard/dashboard/quants_lab/controllers/customstrategy-1.py", line 14 class CustomStrategy-1Config(DirectionalTradingControllerConfigBase): ^ SyntaxError: invalid decimal literal
Traceback:
File "/Users/rapcomia/anaconda3/envs/dashboard/lib/python3.10/site-packages/streamlit/runtime/scriptrunner/script_runner.py", line 541, in _run_script
    exec(code, module.__dict__)
File "/Users/rapcomia/github/dashboard/dashboard/pages/backtest_manager/create.py", line 48, in <module>
    ds_board.file_explorer()
File "/Users/rapcomia/github/dashboard/dashboard/ui_components/file_explorer_base.py", line 62, in __call__
    self.add_tree_view()
File "/Users/rapcomia/github/dashboard/dashboard/ui_components/controllers_file_explorer.py", line 13, in add_tree_view
    available_controllers = load_controllers(constants.CONTROLLERS_PATH)
File "/Users/rapcomia/github/dashboard/dashboard/utils/os_utils.py", line 92, in load_controllers
    spec.loader.exec_module(module)
File "<frozen importlib._bootstrap_external>", line 879, in exec_module
File "<frozen importlib._bootstrap_external>", line 1017, in get_code
File "<frozen importlib._bootstrap_external>", line 947, in source_to_code
File "<frozen importlib._bootstrap>", line 241, in _call_with_frames_removed

Note: To fix, simple go to the dashboard folder then quants_lab/controller and look for the file. Delete it

Steps to reproduce bug

  1. Run backtest manager
  2. Create a strategy name separated with -

Dashboard and Orchestration Overhaul

Acknowledging the importance of an effective bot management system, we're undertaking a significant overhaul of our dashboard and orchestration tools:

  1. Backend API: This service will enable the deployment and control of bots using a broker and Docker, streamlining the orchestration process.
  2. Enhanced Dashboard: We will enhance the dashboard for in-depth analysis of trading activity, backtesting, and optimization.
  3. Condor: A new addition, Condor, will be a Telegram bot that allows users to deploy and manage multiple Hummingbot instances conveniently.

Authorization

Describe the bug

Hi! I installed dashboard from both source and docker containers, both on my home computer and on a vps. In all cases, when accessing ip:5301 or localhost:5301, the dashboard opens without credentials page. I watched the videos on YouTube, realized that the credentials page immediately opens by default when accessing the dashboard site. But it's not like that for me. What could I have missed during the installation? How do I fix/configure dashboard so that credentials/authorization works?

Steps to reproduce bug

Bug Report. Updated Dashboard. I enable authorization and get this error:

Describe the bug

Hello. Updated Dashboard. I enable authorization and get this error:

Steps to reproduce bug

1). AUTH_SYSTEM_ENABLED = True

TypeError: Authenticate.login() missing 1 required positional argument: 'form_name'
Traceback:
File "/root/miniconda3/envs/dashboard/lib/python3.10/site-packages/streamlit/runtime/scriptrunner/script_runner.py", line 534, in runscript
exec(code, module.__dict)
File "/opt/hummingbot-dashboard/dashboard/main.py", line 119, in
name, authentication_status, username = st.session_state.authenticator.login(location='main') # Updated login call

  1. Also there is an error in this section:
    🚀 Strategy Performance

KeyError: None
Traceback:
File "/root/miniconda3/envs/dashboard/lib/python3.10/site-packages/streamlit/runtime/scriptrunner/script_runner.py", line 534, in runscript
exec(code, module.__dict)
File "/opt/hummingbot-dashboard/dashboard/pages/strategy_performance/app.py", line 45, in
db_names = [x for x in dbs[bot_source]]

Cannot start Instances

Describe the bug

-Correctly log in

  • Go to Credentials
  • Press start

Nothing happens. There is not a single instance that can be run from the web browser

Steps to reproduce bug

  1. Correctly log in
  2. Go to Credentials
  3. Press start button
  4. nothing happens

Bug Report

Describe the bug

2024-04-06 18:07:27.484 Uncaught app exception
Traceback (most recent call last):
File "/home/ngsevers/miniconda3/envs/dashboard/lib/python3.10/site-packages/streamlit/runtime/scriptrunner/script_runner.py", line 584, in _run_script
exec(code, module.dict)
File "/mnt/h/OneDrive/Desktop/0. Active Work/40. Crypto/dashboard/main.py", line 110, in
config['credentials'] = st.session_state.authenticator.credentials
AttributeError: 'Authenticate' object has no attribute 'credentials'

Steps to reproduce bug

  1. attempt to log in

Issue is in main.py line 111
This line is not necessary and can be removed.
config["credentials"] = st.session_state.authenticator.credentials

line 110 elif st.session_state["authentication_status"]:
This line already authenticates. To make the code more understandable you could make it say elif st.session_state["authentication_status"] is True:

Improve bot status card in Instances

Why

  • The card display of a bot in Instances needs UX improvement
  • It should take advantage of the new Strategy Performance page

What

Bug Report : Authorization doesn't work 1.27

Describe the bug

When I enabled authorization, it now displays:
AttributeError: 'Authenticate' object has no attribute 'credentials'
Traceback:
File "/root/miniconda3/envs/dashboard/lib/python3.10/site-packages/streamlit/runtime/scriptrunner/script_runner.py", line 584, in _run_script
exec(code, module.dict)
File "/opt/hummingbot-dashboard/dashboard/main.py", line 110, in
config["credentials"] = st.session_state.authenticator.credentials
Capture-2024-04-30-201920

Steps to reproduce bug

Bug Report

Describe the bug

image
I added my email but it says User not pre-authorized to register is required.

Steps to reproduce bug

FIle explorer - Cannot create element outside a frame

Describe the bug
In the event that we close or edit a file, there are instances of the dashboard having a delay causing users to rapidly click the buttons resulting to error of streamlit_elements.core.exceptions.ElementsFrameError: Cannot create element outside a frame.

Note: for monitoring purpose and seems related to streamlit, workaround is to relaunch the dashboard page and should work again

2023-09-07 19:25:14.826 Uncaught app exception
Traceback (most recent call last):
  File "/Users/rapcomia/anaconda3/envs/dashboard/lib/python3.9/site-packages/streamlit_elements/core/frame.py", line 34, in new_frame
    yield
  File "/Users/rapcomia/github/dashboard/main/pages/master_conf/app.py", line 46, in <module>
    mc_board.launch_master_bot()
  File "/Users/rapcomia/github/dashboard/main/ui_components/launch_master_bot_card.py", line 36, in __call__
    with mui.Paper(key=self._key,
  File "/Users/rapcomia/anaconda3/envs/dashboard/lib/python3.9/site-packages/streamlit_elements/modules/mui.py", line 42, in __getattr__
    return new_element("muiElements", element)
  File "/Users/rapcomia/anaconda3/envs/dashboard/lib/python3.9/site-packages/streamlit_elements/core/frame.py", line 46, in new_element
    raise ElementsFrameError("Cannot create element outside a frame.")
streamlit_elements.core.exceptions.ElementsFrameError: Cannot create element outside a frame.

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/Users/rapcomia/anaconda3/envs/dashboard/lib/python3.9/site-packages/streamlit/runtime/scriptrunner/script_runner.py", line 552, in _run_script
    exec(code, module.__dict__)
  File "/Users/rapcomia/github/dashboard/main/pages/master_conf/app.py", line 48, in <module>
    mc_board.editor()
  File "/Users/rapcomia/anaconda3/envs/dashboard/lib/python3.9/contextlib.py", line 137, in __exit__
    self.gen.throw(typ, value, traceback)
  File "/Users/rapcomia/anaconda3/envs/dashboard/lib/python3.9/site-packages/streamlit_elements/core/frame.py", line 41, in new_frame
    del session_state[ELEMENTS_FRAME_KEY]
  File "/Users/rapcomia/anaconda3/envs/dashboard/lib/python3.9/site-packages/streamlit/runtime/state/session_state_proxy.py", line 115, in __delitem__
    del get_session_state()[key]
  File "/Users/rapcomia/anaconda3/envs/dashboard/lib/python3.9/site-packages/streamlit/runtime/state/safe_session_state.py", line 125, in __delitem__
    raise KeyError(key)
KeyError: 'streamlit_elements.core.frame.elements_frame'
2023-09-07 19:25:15.012 Uncaught app exception
Traceback (most recent call last):
  File "/Users/rapcomia/anaconda3/envs/dashboard/lib/python3.9/site-packages/streamlit/runtime/scriptrunner/script_runner.py", line 552, in _run_script
    exec(code, module.__dict__)
  File "/Users/rapcomia/github/dashboard/main/pages/master_conf/app.py", line 46, in <module>
    mc_board.launch_master_bot()
  File "/Users/rapcomia/github/dashboard/main/ui_components/launch_master_bot_card.py", line 36, in __call__
    with mui.Paper(key=self._key,
  File "/Users/rapcomia/anaconda3/envs/dashboard/lib/python3.9/site-packages/streamlit_elements/modules/mui.py", line 42, in __getattr__
    return new_element("muiElements", element)
  File "/Users/rapcomia/anaconda3/envs/dashboard/lib/python3.9/site-packages/streamlit_elements/core/frame.py", line 46, in new_element
    raise ElementsFrameError("Cannot create element outside a frame.")
streamlit_elements.core.exceptions.ElementsFrameError: Cannot create element outside a frame.
Screen.Recording.2023-09-07.at.7.24.09.PM.mov

Steps To Reproduce

  1. Open a couple of files then close or edit
  2. Observe that after click buttons and still not happening, dashboard page will crashed
  3. Check the error on terminal

Kucoin symbol format not recognized

When I run a bot on kucoin_paper_trade and analyze it with Strategy Performance, it says ETHUSDT symbol not recognized. This is probably because the symbol format in the dashboard is optimized for Binance.

Support for PostgreSQL DBs?

Do we have any plans to supports databases other than SQLite in the future?

Since the format of the DB should be the same that would be really easy to support.

Additionally, it will save us from the hassle to copying files from one machine to another similar to what is suggested in the Youtube video here: https://www.youtube.com/watch?v=xp_A8tZKKiA

Kind regards.

Master Configs container exiting on creation

After starting the dashboard and going to the Credentials page to start the Master Configs instance the container gets created but then exits out after a few seconds.

image

When running docker logs it returns this error

image

Steps to Reproduce:

  • Start Dashboard with hummingbot_with_dashboard compose file in the deploy-examples repo
  • Open browser and go to the Credentials page
  • Press the Start button to launch / start the Master Bot instance
  • In the terminal a docker container named hummingbot-master_bot_conf should be created.
  • Run the command docker ps -a in the terminal and the status next to hummingbot-master_bot_conf will show exited

errors.log

Dashboard doesn't remember auth session upon reload of main page

Describe the bug

After logging in, if the user reloads page when on http://localhost:8501/, they have to log in again.

I think this is because the Authenticate function in main.py takes a while, while the auth check that happens afterwards occurs before the variable is initialized.

st.session_state.authenticator = Authenticate(
    config['credentials'],
    config['cookie']['name'],
    config['cookie']['key'],
    config['cookie']['expiry_days'],
    config['preauthorized']
)

if st.session_state["authentication_status"]:
    config["credentials"] = st.session_state.authenticator.credentials

Steps to reproduce bug

Backtest manager - Create page does not have `Market Making` strategies in the dropdown

Describe the bug

The Create page only has the drop down for Directional Strategies and does not have Market Making strategies under Template Name. If you are trying to edit one of the Market Making strategies (dman_v1, dman_v2, dman_v3) and save it, it will save the file under directional strategies instead.

chrome_wZhpsn0yil

Steps to reproduce bug

  1. Go to the Create screen
  2. Try the drop down and see there is only Directional Strategies listed under Template Name
  3. Click on one of the dman strategies under Market Making and click the pencil icon to edit.
  4. Give the strategy a name under Strategy Name and click Create - file will be saved under Directional Strategies.
  5. Edit the file you just created and the code will be for a directional strategy instead of market making.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.