Skip to main content

A trading framework for cryptocurrencies

Project description


Jesse

Algo-trading was 😵‍💫, we made it 🤩

Jesse

PyPI Downloads Docker Pulls GitHub coverage


Jesse is an advanced crypto trading framework that aims to simplify researching and defining YOUR OWN trading strategies.

Why Jesse?

In short, Jesse is more accurate than other solutions, and way more simple. In fact, it is so simple that in case you already know Python, you can get started today, in matter of minutes, instead of weeks and months.

Here you can read more about Jesse's features and why you should use it.

Getting Started

Head over to the "getting started" section of the documentation. The documentation is short yet very informative.

Resources

Screenshots

Check out Jesse's Youtube channel for tutorials that go through example strategies step by step.

Here are a few screenshots just to get you excited:

Backtest results:

image

Example strategy code:

class SMACrossover(Strategy):
    @property
    def slow_sma(self):
        return ta.sma(self.candles, 200)

    @property
    def fast_sma(self):
        return ta.sma(self.candles, 50)

    def should_long(self) -> bool:
        # Fast SMA above Slow SMA
        return self.fast_sma > self.slow_sma

    def should_short(self) -> bool:
        # Fast SMA below Slow SMA
        return self.fast_sma < self.slow_sma

    def should_cancel_entry(self) -> bool:
        return False

    def go_long(self):
        # Open long position and use entire balance to buy
        qty = utils.size_to_qty(self.balance, self.price, fee_rate=self.fee_rate)

        self.buy = qty, self.price

    def go_short(self):
        # Open short position and use entire balance to sell
        qty = utils.size_to_qty(self.balance, self.price, fee_rate=self.fee_rate)

        self.sell = qty, self.price

    def update_position(self):
        # If there exist long position, but the signal shows Death Cross, then close the position, and vice versa.
        if self.is_long and self.fast_sma < self.slow_sma:
            self.liquidate()
    
        if self.is_short and self.fast_sma > self.slow_sma:
            self.liquidate()

Live trading (requires live plugin):

image

What's next?

You can see the project's roadmap here. Subscribe to our mailing list at jesse.trade to get the good stuff as soon they're released. Don't worry, We won't send you spam—Pinky promise.

How to contribute

Thank you for your interest in contributing to the project. The best way to contribute is by participating in the community and helping other users.

You can also contribute by submitting bug reports and feature requests or writing code (submitting PRs) which can be incorporated into Jesse itself.

In that case, here's what you need to know:

  • Before starting to work on a PR, please reach out to make sure it aligns with the project's roadmap and vision.
  • If your PR makes changes to the source code, please make sure to add unit tests. If you're not sure how to do that, just check out some of the already existing tests.

First, you need to install Jesse from the repository instead of PyPi:

# first, make sure that the PyPi version is not installed
pip uninstall jesse

# now install Jesse from the repository
git clone https://github.com/jesse-ai/jesse.git
cd jesse
pip install -e .

Now every change you make to the code will be affected immediately.

After every change, make sure your changes did not break any functionality by running tests:

pytest

Disclaimer

This software is for educational purposes only. USE THE SOFTWARE AT YOUR OWN RISK. THE AUTHORS AND ALL AFFILIATES ASSUME NO RESPONSIBILITY FOR YOUR TRADING RESULTS. Do not risk money that you are afraid to lose. There might be bugs in the code - this software DOES NOT come with ANY warranty.

Project details


Release history Release notifications | RSS feed

This version

1.3.9

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

jesse-1.3.9.tar.gz (6.4 MB view details)

Uploaded Source

Built Distribution

jesse-1.3.9-py3-none-any.whl (6.6 MB view details)

Uploaded Python 3

File details

Details for the file jesse-1.3.9.tar.gz.

File metadata

  • Download URL: jesse-1.3.9.tar.gz
  • Upload date:
  • Size: 6.4 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.0.0 CPython/3.11.3

File hashes

Hashes for jesse-1.3.9.tar.gz
Algorithm Hash digest
SHA256 720b3db314bb9d548191ff732567ea6e46b1137bf731f6416f6927a893829ac2
MD5 b769cd393b74b10b9c955880e8951bfc
BLAKE2b-256 16530d4cd00f9d7bfa2be28e47693d8493624f2ce6da3d0674871ce4639d9478

See more details on using hashes here.

File details

Details for the file jesse-1.3.9-py3-none-any.whl.

File metadata

  • Download URL: jesse-1.3.9-py3-none-any.whl
  • Upload date:
  • Size: 6.6 MB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.0.0 CPython/3.11.3

File hashes

Hashes for jesse-1.3.9-py3-none-any.whl
Algorithm Hash digest
SHA256 b8c166c2194a358aa4e816a1d90a8a5dbe54bd05b02ad969130edc4fa48998f6
MD5 24d8363b8a9755f7b6abb164429795e7
BLAKE2b-256 0bb36b5d1934ba374dafdbecd3cdd6e847496705a8d5f078950be9d8f39334b9

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page