harvest

Harvest is a Python framework for algorithmic trading, that packs a lot of punch:

  • Trade stocks, cryptos, even options! (if your brokerage supports them)
  • Backtest on historical data
  • Paper trading

Visit Harvest's website for more details.

For Developers

Interested in coding for Harvest? Awesome! ![love_you_gesture](https://github.githubassets.com/images/icons/emoji/unicode/1f91f.png =20x20) But before you begin, skim through the following sections:

Local Testing

While generic tests are built into the CI/CD workflow, ideally you should conduct testing on your local working environment before pushing. This is especially true if you are working on a new feature, debugging, or making large modifications.

Testing Harvest

Testing Harvest often requires you to provide login credentials to access the brokers, so it is recommended that you test the code in a different directory than your working directory.

For example, if you cloned this repo into C:\Alice\document\harvest, you can create a new directory C:\Alice\document\testing. All of your test codes and access credentials should then be stored in testing to ensure they don't accidentally get pushed to the public repo. You can run

pip install ../harvest

from testing to install the latest codebase from your local machine.

If you want to run the generic tests locally, run:

python -m unittest discover -s test

Testing Websites

The Harvest project has two websites: one for the Harvest homepage, and the other is the web interface to monitor Harvest.

The Harvest homepage is a pre-rendered NextJS/React website. Navigate to harvest/website, and run

npm run dev

to start a hot-reloading dev server. If you think the website looks good, run

npm run build && npm run export

to make sure the website can build without any problems.

Details of Harvest web interface coming soon

Documentation

Refer to the docs folder for full documentation of the codebase. The documentation provided on the website is for end users and intentionally leaves out some parts.

TODO: Add more sections as needed

Misc.

Collaborators

Special thanks to the following developers for contributing to this project:

  • @shershah010
  • @Kimeiga

Disclaimer

Harvest is an open-source passion project created by algo trading enthusiasts.

  • It is not officially associated with Robinhood LLC.
  • Use Harvest at your own responsibility.

GitHub

https://github.com/tfukaza/harvest