blankly-finance/blankly
blankly-finance/blankly has 2,487 GitHub stars and 314 forks. GitHot measured 0 stars in 24 hours and +3 in 7 days. Last checked 2026-11-11 09:43 UTC. Last push 2024-12-30.
🚀 💸 Easily build, backtest and deploy your algo in just a few lines of code. Trade stocks, cryptos, and forex across exchanges w/ one package.
Measured star growth
- in 24h
- 0
- in 7 days
- +3
- in 15 days
- Update delayed
- in 1 month
- Update delayed
Net star changes over overlapping periods, not daily totals. Missing measurements are left blank. Stars measure attention, not software quality.
README.md
Original
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
Getting started is easy - just pip install blankly and blankly init.
Check out our website and our docs.
Trade Stocks, Crypto, Futures, and Forex
from blankly import Alpaca, CoinbasePro
stocks = 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
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
pass
if __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
Accurate Backtest Holdings
Go Live in One Line
Seamlessly run your model live!
# 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
- First install Blankly using
pip. Blankly is hosted on PyPi.
$ pip install blankly
- Next, just run:
$ 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 and keys_example.json
- From there, insert your API keys from your exchange into the generated
keys.jsonfile or take advantage of the CLI keys prompt.
More information can be found on our docs
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.10
For more info, and ways to do more advanced things, check out our getting started docs.
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.
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. See the LICENSE for more details.
New updates every day 💪.
Explore related projects
codecrafters-io/build-your-own-x
Master programming by recreating your favorite technologies from scratch.
561,953 starspublic-apis/public-apis
A collective list of free APIs
498,342 starsmorluto/rea
Reverse engineer anything with agents, from app behavior down to native binaries.
453,486 starsopenclaw/openclaw
The AI that really does things. Any OS. Any Platform. The lobster way. 🦞
394,374 stars