Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/blankly-finance/blankly
π πΈ Easily build, backtest and deploy your algo in just a few lines of code. Trade stocks, cryptos, and forex across exchanges w/ one package.
https://github.com/blankly-finance/blankly
algotrading binance blankly bot bot-framework bots coinbase crypto cryptocurrency framework investment platform python stocks trading trading-bot trading-strategies
Last synced: about 1 month ago
JSON representation
π πΈ Easily build, backtest and deploy your algo in just a few lines of code. Trade stocks, cryptos, and forex across exchanges w/ one package.
- Host: GitHub
- URL: https://github.com/blankly-finance/blankly
- Owner: blankly-finance
- License: lgpl-3.0
- Created: 2021-03-09T18:33:22.000Z (over 3 years ago)
- Default Branch: main
- Last Pushed: 2024-03-31T14:20:19.000Z (8 months ago)
- Last Synced: 2024-10-01T19:41:48.323Z (about 2 months ago)
- Topics: algotrading, binance, blankly, bot, bot-framework, bots, coinbase, crypto, cryptocurrency, framework, investment, platform, python, stocks, trading, trading-bot, trading-strategies
- Language: Python
- Homepage: https://package.blankly.finance
- Size: 2.46 MB
- Stars: 2,092
- Watchers: 43
- Forks: 266
- Open Issues: 29
-
Metadata Files:
- Readme: README.md
- Contributing: CONTRIBUTING.md
- License: LICENSE
- Code of conduct: CODE_OF_CONDUCT.md
Awesome Lists containing this project
- pytrade.org - blankly - π πΈ Easily build, backtest and deploy your algo in just a few lines of code. Trade stocks, cryptos, and forex across exchanges w/ one package. (Curated List / Trading Frameworks (support backtesting and live trading))
README
π¨ Rapidly build and deploy quantitative models for stocks, crypto, and forex π
View Docs
Β·
Our Website
Β·
Join Our Newsletter
Β·
Getting Started
---
## Why Blankly?
Blankly is an ecosystem for algotraders enabling anyone to build, monetize and scale their trading algorithms for stocks, crypto, futures or forex. The same code can be backtested, paper traded, sandbox tested and run live by simply changing a single line. Develop locally then deploy, iterate and share using the blankly platform.
The blankly package is designed to be **extremely precise** in both simulation and live trading. **The engineering considerations for highly accurate simulation are described [here](blankly/BACKTESTING_ENGINEERING.md)**
Getting started is easy - just `pip install blankly` and `blankly init`.
Check out our [website](https://blankly.finance) and our [docs](https://docs.blankly.finance).
---------
### Trade Stocks, Crypto, Futures, and Forex
```python
from blankly import Alpaca, CoinbaseProstocks = Alpaca()
crypto = CoinbasePro()
futures = BinanceFutures()# Easily perform the same actions across exchanges & asset types
stocks.interface.market_order('AAPL', 'buy', 1)
crypto.interface.market_order('BTC-USD', 'buy', 1)
# Full futures feature set
futures.interface.get_hedge_mode()
```### Backtest your trades, events, websockets, and custom data
```python
import blankly
"""
This example shows how backtest over tweets
"""class TwitterBot(blankly.Model):
def main(self, args):
while self.has_data:
self.backtester.value_account()
self.sleep('1h')def event(self, type_: str, data: str):
# Now check if it's a tweet about Tesla
if 'tsla' in data.lower() or 'gme' in data.lower():
# Buy, sell or evaluate your portfolio
passif __name__ == "__main__":
exchange = blankly.Alpaca()
model = TwitterBot(exchange)# Add the tweets json here
model.backtester.add_custom_events(blankly.data.JsonEventReader('./tweets.json'))
# Now add some underlying prices at 1 month
model.backtester.add_prices('TSLA', '1h', start_date='3/20/22', stop_date='4/15/22')# Backtest or run live
print(model.backtest(args=None, initial_values={'USD': 10000}))```
**Check out alternative data examples [here](https://docs.blankly.finance/examples/model-framework)**
#### Accurate Backtest Holdings
### Go Live in One Line
Seamlessly run your model live!
```python
# Just turn this
strategy.backtest(to='1y')
# Into this
strategy.start()
```Dates, times, and scheduling adjust on the backend to make the experience instant.
## Quickstart
### Installation
1. First install Blankly using `pip`. Blankly is hosted on [PyPi](https://pypi.org/project/Blankly/).
```bash
$ pip install blankly
```2. Next, just run:
```bash
$ blankly init
```
This will initialize your working directory.The command will create the files `keys.json`, `settings.json`, `backtest.json`, `blankly.json` and an example script called `bot.py`.
If you don't want to use our `init` command, you can find the same files in the `examples` folder under [`settings.json`](https://github.com/Blankly-Finance/Blankly/blob/main/examples/settings.json) and [`keys_example.json`](https://github.com/Blankly-Finance/Blankly/blob/main/examples/keys_example.json)
3. From there, **insert your API keys** from your exchange into the generated `keys.json` file or take advantage of the CLI keys prompt.
More information can be found on our [docs](https://docs.blankly.finance)
### Directory format
The working directory format should have *at least* these files:
```
project/
|-bot.py
|-keys.json
|-settings.json
```#### Additional Info
Make sure you're using a supported version of python. The module is currently tested on these versions:
- Python 3.7
- Python 3.8
- Python 3.9
- Python 3.10For more info, and ways to do more advanced things, check out our [getting started docs](https://docs.blankly.finance).
## Supported Exchanges
| Exchange | Live Trading | Websockets | Paper Trading | Backtesting |
| ------------------- |--------------| ---------- |--------------| ----------- |
| Coinbase Pro | π’ | π’ | π’ | π’ |
| Binance | π’ | π’ | π’ | π’ |
| Alpaca | π’ | π’ | π’ | π’ |
| OANDA | π’ | | π’ | π’ |
| FTX | π’ | π’ | π’ | π’ |
| KuCoin | π’ | π’ | π’ | π’ |
| Binance Futures | π’ | π’ | π’ | π’ |
| FTX Futures | π‘ | π‘ | π’ | π’ |
| Okx | π’ | π’ | π’ | π’ |
| Kraken | π‘ | π‘ | π‘ | π‘ |
| Keyless Backtesting | | | | π’ |
| TD Ameritrade | π΄ | π΄ | π΄ | π΄ |
| Webull | π΄ | π΄ | π΄ | π΄ |
| Robinhood | π΄ | π΄ | π΄ | π΄ |π’ = working
π‘ = in development, some or most features are working
π΄ = planned but not yet in development
## RSI Example
We have a pre-built cookbook examples that implement strategies such as RSI, MACD, and the Golden Cross found in our [examples](https://docs.blankly.finance/examples/golden-cross).
Other Info
### Subscribe to our news!
https://blankly.substack.com/p/coming-soon### Bugs
Please report any bugs or issues on the GitHub's Issues page.
### Disclaimer
Trading is risky. We are not responsible for losses incurred using this software, software fitness for any particular purpose, or responsibility for any issues or bugs.
This is free software.### Contributing
If you would like to support the project, pull requests are welcome.
### Licensing
**Blankly** is distributed under the [**LGPL License**](https://www.gnu.org/licenses/lgpl-3.0.en.html). See the [LICENSE](/LICENSE) for more details.
New updates every day πͺ.
Art by DALLΒ·E 2 - "Robots playfully trading stocks synthwave"