Version 0.33.0 is released! The research module, awesome-jesse repository, and more!
Hi everyone,
Today I released version 0.33.0
of both the main framework and the live plugin. Buckle up, this is a big release!
What's new?
- [NEW FEATURE] Added backtest function to the "research" module allowing you to run backtests via your Python script or Jupyter notebook.
- [NEW FEATURE] Added store_candles function to the
research
module allowing you to store candles in the database. An example use case is to import candles from a CSV file so you can use them in your backtests. - [NEW FEATURE] Added fake_candle, fake_range_candles and candles_from_close_prices functions to the
research
module for generating fake candle data for backtest or other any kind of research. - [NEW FEATURE] Added the "More" button for orders in the live mode which opens a slide over the page where you can see all orders.
- [NEW FEATURE] Added the value of the position (in USDT) to the live dashboard. To use it, hover on the
qty
of each position. - [NEW FEATURE] Added support for running multiple instances of Jesse simultaneously. Useful for those who want to trade using multiple sub-accounts. Just make sure they have different
APP_PORT
values in their.env
file. - [New FEATURE] Added a new "Report" button that is available during live sessions for submitting a report alongside logs of your running session. The previous report button was only available if an exception was raised causing the session to stop. This one is always available.
- [IMPROVEMENT] Exception tracebacks are now logged in the info logs and included in the reports helping us to track down bugs.
- [IMPROVEMENT] Strategies can now be long-only. That means
should_short()
andgo_short()
are optional. If you don't implement them, the strategy will be long-only. - [IMPROVEMENT] Improved debugging mode in the optimize mode to include a log file that is downloadable at any point in time in the optimization mode.
- [FIX] Fixed a bug causing optimization sessions to fail. The bug was introduced in the previous release.
- [FIX] Fixed a bug where the optimize mode failed if the number of hyperparameters was 1.
- [FIX] Fixed usage of extra-routes in optimize mode.
- [FIX] You can now trade symbols that are longer than 9 characters such as
MATIC-USDT
. - [FIX] Fixed a bug where position validation was stuck in a loop in live mode when trading multiple routes.
- [FIX]
watch_list
can now include all types of data. So errors such asTypeError: Object of type Position is not JSON serializable
are no longer thrown. - [FIX] Fixed the
TypeError: Argument 'data' has incorrect type (expected list, got dict)
error for theBybit Perpetual
driver. - [FIX] Improved the way we keep the WS alive for the ByBit driver. No more WS disconnects every 10 minutes (although the reconnecting was working just fine)
- [FIX] Fixed the
AttributeError: 'NoneType' object has no attribute 'watch_list'
error for the live plugin.
Research module
The "research" module is a collection of Jesse's features (that you typically use via the GUI dashboard) made available via functions for research purposes.
You can use these functions in either your custom Python scripts, or in your Jupyter Notebooks for research purposes.
I updated the documentation to include the guide for usage of research module, examples, etc.
Please let me know what other features you'd like to see in the "research" module.
Awesome-Jesse repository
If you are a developer you might have stumbled upon awesome-*
type of repositories which are where resources for a specific project are hosted.
I made awesome-jesse to host all of my resources for Jesse. If you have made a tool that others can benefit from such as strategies, indicators, or cool things that I'm sure few of you will build using the "research" module, please submit a PR to the awesome-jesse repository so others can find it.
Keep up with giving feedback!
The "report" buttons, new logs, etc that I added to Jesse since the release of the GUI dashboard has been working great. And the Discord community has also been great in giving feedback and helping me test new features.
As a result, I've been able to improve the codebase and the performance of the framework. Please keep it up!
The new "Report" button is available during live sessions for submitting a report alongside logs of your running session. The previous report button was only available if an exception was raised causing the session to stop. This one is always available:
Happy algo-trading,
— Saleh
❤️ Like Jesse?
If you like this project, please consider supporting me for free by using my referral links.
It's a win-win, you get free discounts and bonuses, and it helps me to develop more features and content:
Thank you 🙏