Simple and intuitive python framework for algorithmic trading.
Project description
Harvest is a Python based framework providing a simple and intuitive framework for algorithmic trading. Visit Harvest's website for details, tutorials, and documentation.
⚠️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
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Hashes for harvest_python-0.1.4-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 7e95e0e14cc4a5e4b140a434c43f55e0ab4517afdda5b772f726c0b877b12db3 |
|
MD5 | 3418d8fbb8b867d2fb4d77db94e07320 |
|
BLAKE2b-256 | 8f33a35fc199234069b78c5684e739ca4bd8cf70fec5e6309adf6c7b91c74368 |