Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/OmegaTrading/OmegaUI
Backtrader Front End
https://github.com/OmegaTrading/OmegaUI
Last synced: 3 months ago
JSON representation
Backtrader Front End
- Host: GitHub
- URL: https://github.com/OmegaTrading/OmegaUI
- Owner: OmegaTrading
- License: gpl-3.0
- Created: 2018-05-05T19:14:36.000Z (over 6 years ago)
- Default Branch: master
- Last Pushed: 2018-07-09T18:49:17.000Z (over 6 years ago)
- Last Synced: 2024-07-31T21:53:18.928Z (5 months ago)
- Language: Python
- Size: 548 KB
- Stars: 167
- Watchers: 16
- Forks: 59
- Open Issues: 3
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
- awesome-cryptocurrency - OmegaUI - UI per Backtrader (Trading Automatico / Trading Automatico - Self-Hosted Software)
README
# Omega UI
Backtesting Front End for backtrader (see: https://www.backtrader.com/). Built with Plotly/Dash.
**Important:**
* Before using, please make sure to update the file **omega-ui.config** at the root of the omega_ui folder.
This file contains configuration parameters that are used throughout the application.
* A Redis instance must be running (this is used to display logs) and the package folder needs to be in PythonPath.**What needs to be updated:**
* Default/Module: This is the module where the class implementing the Backtest class is (make sure that the module is in
PythonPath).
* Default/Class: Name of the class implementing the Backtest class.
* Default/Redis: IP address of the Redis datastore (Default port: 6379).
* Logging/Root: Path to where logs will be stored.
* Backtest/Cash: Default cash value.
* Backtest/Modules: Modules where the strategies are located (several modules can be implemented using commas as
a delimiter).## 1. Installation:
From source: Place the omega_ui directory found in the sources inside your project## 2. Usage:
* Before the UI can be used, the Backtest class needs to be implemented. This is done by inheriting the class Backtest
from omega_ui.backtest and implementing the following methods:
* get_symbols: Symbols that will be displayed on the UI and on which we can run a backtest.
* get_parameters: Default parameters for a given strategy.
* run: Run a backtest. Please note that this needs to return 2 items: returns and results from backtrader.* Before running the UI, the following command has to be running: 'python socket_logging.py flask run'. This is the
server which redirects the logs to the UI.* To run the UI, run the following command: 'python app.py' and in your browser (tested only on Chrome), navigate to
the specified address (should be http://127.0.0.1:8050/).## 3. Example:
An example has been included in the tests folder to give an idea on how to use the UI (see test_backtest.py). When
using it, please make sure to select the strategy "TestStrategy" in the Strategy dropwdown as selecting ExampleBacktest
would not work.## Note:
This project is designed for people already comfortable using and writing python code. I do not have time to provide
support but am happy to help if you get in touch regarding the following topics:
* Error messages
* Documentation
* Suggestions for extra features
* Bugs
I will try to reply to messages but can't guarantee it (as long as the message is properly formatted). This is a work
in progress and also a project which I use for my research. Offers to contribute will be accepted.Also, if nothing happens while trying to run a backtest, this might be due to a problem with the Dash React part.
I had an issue where I had to roll back Dash to a specific version and haven't tried to use the latest version again.
To find out if there's a problem with React, right-click in Chrome and select Inspect, then navigate to the Console
tab and look for errors. See below to know which dash packages work with this application:
* dash==0.21.0
* dash-auth==0.1.0
* dash-core-components==0.20.2
* dash-html-components==0.10.0
* dash-renderer==0.11.3
* dash-table-experiments==0.6.0