Skip to main content

Simple and intuitive python framework for algorithmic trading.

Project description

Header Harvest is a Python based framework providing a simple and intuitive framework for algorithmic trading. Visit Harvest's website for details, tutorials, and documentation.


codecov run tests website


⚠️WARNING⚠️ Harvest is currently at v0.1.1. The program is unstable and cointains many bugs. Use with caution, and contributions are greatly appreciated.

Example

Below is a minimal example of a crossover strategy for TWTR implemented with Harvest, tested on historical stock prices.

from harvest.algo import *
from harvest.trader import *
from harvest.api import *

class Watch(algo.BaseAlgo):
    def main(self):
        sma_long = self.sma(period=50)
        sma_short = self.sma(period=20)
        if self.crossover(sma_long, sma_short):
            self.buy()
        elif self.crossover(sma_short, sma_long):
            self.sell()

if __name__ == "__main__":
    t = tester.BackTester()
    t.set_symbol('TWTR')
    t.set_algo(Watch())
    t.start()

If you want to see how this algorithm performs in real life, just change one line to enable paper trading:

- t = tester.BackTester()
+ t = trader.Trader()

Confident in your strategy? Deploy it using a broker of your choice (Currently only supports Robinhood). Again, you just need to change one line:

- t = trader.Trader()
+ t = trader.Trader(robinhood.Robinhood())

With Harvest, the process of testing, simulating, and deploying your strategies is a piece of cake 🍰

Installation

There are few prerequisites:

  • Python 3.8+
  • pip

Once you have them, install via pip:

pip install harvest-algo

Next, install the dependencies necessary for the brokerage of your choice:

pip install harvest-algo[BROKER]

Replace BROKER with a brokerage/data source of your choice:

  • Robinhood
  • Alpaca (Coming soon)
  • Polygon (Coming soon)

Now you're all set!

Contributing

Contributions are greatly appreciated. Check out the CONTRIBUTING document for details.

Disclaimer

  • Harvest is not officially associated with Robinhood LLC.
    • Robinhood was also not designed to be used for algo-trading. Excessive access to their API can result in your account getting locked.
  • Tutorials and documentation solely exist to provide technical references of the code. They are not recommendations of any specific securities or strategies.
  • Use Harvest at your own responsibility. Developers of Harvest take no responsibility for any financial losses you incur by using Harvest.

Project details


Download files

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

Source Distribution

harvest-algo-0.1.3.tar.gz (34.8 kB view details)

Uploaded Source

Built Distribution

harvest_algo-0.1.3-py3-none-any.whl (43.3 kB view details)

Uploaded Python 3

File details

Details for the file harvest-algo-0.1.3.tar.gz.

File metadata

  • Download URL: harvest-algo-0.1.3.tar.gz
  • Upload date:
  • Size: 34.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.2 importlib_metadata/4.6.3 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.0 CPython/3.9.6

File hashes

Hashes for harvest-algo-0.1.3.tar.gz
Algorithm Hash digest
SHA256 6a36c27869cab37ab5f72b4294b246cc5f196be8417b97fffb0bcf3a9120e64a
MD5 74a16b271a19d4718587e091739aa784
BLAKE2b-256 f25b7e2a389926c998b454a0cfeff0c7a565c11dca409b6e935fc17d35815055

See more details on using hashes here.

File details

Details for the file harvest_algo-0.1.3-py3-none-any.whl.

File metadata

  • Download URL: harvest_algo-0.1.3-py3-none-any.whl
  • Upload date:
  • Size: 43.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.2 importlib_metadata/4.6.3 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.0 CPython/3.9.6

File hashes

Hashes for harvest_algo-0.1.3-py3-none-any.whl
Algorithm Hash digest
SHA256 921bd5611060e060123d027542b537ad075025755f9b7c5ecd0d370cdd83e430
MD5 4a73ad38bb5cb695cc4ec0badc6354ab
BLAKE2b-256 8ac9486ac2a5085d8aec92fe2ce8381b03dc3b7be96c5bb48dc693895b73fccf

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