GenTrade
The python GenTrade package provide the core functions and agentic trading workflow to support GenAI based algorithms trading for crypto and stock markets.
It can help algorithms traders smoothly transfering from service API programming to prompt based agentic programming.
-
Install the python package
pip install gentradeif you want to try the package from source code you can
set PYTHONPATH=<root of gentrade>/src/ -
Then try:
1. Demo
NOTE: please set environment variable like BINANCE_API_KEY, BINANCE_API_SECRET,
OPENAI_API_KEY before running below demos.
1.1 Use traditional API approach for crypto currency or US stock:
-
Draw the latest 100 hours btcoin's prices (OHLCV)
cd demo/crypto-cli python run_matplot.py -a btc -t 1h -l 100
Output:
-
Use SMA (Simple Moving Average) to analyze the ETH's prices
cd demo/crypto-cli python run_sma.py -a eth -t 1d -l 200 -g
Output:
It also support US stock like applying SMA on TESLA (TSLA)'s price:
cd demo/stock-us-cli python run_multiple.py -a TSLA -t 1d -l 200 -g
-
If want try other strategy like RSI
cd demo/crypto-cli python run_multiple.py -s rsi
NOTE: of course you can try more strategies like macd, bb, wma etc
1.2 Use Agentic LLM approaches:
-
If want ask LLM to select a strategy via a simple prompt like
- Prompt: Please get past 400 days price for bitcoin, then different strategy to do back testing, and figure out what strategy is the best according to final portfolio value
- Prompt: 请获取过去300天的以太坊的价格,并使用不同的策略进行回测,最后选出最佳的策略
cd demo/agent python run_auto_strategy.py
-
If want ask LLM to generate strategy according to your idea and do back test, for example:
- Prompt: "请获取过去300天的以太坊的价格,并使用简单平均移动策略来进行回测,在这个策略中,请设置慢线为9,请设置快线为26"
2. App Services
2.1 OHLCV Data Service
-
Start Server
# Pull image docker pull registry.cn-hangzhou.aliyuncs.com/kenplusplus/gentrade_data_serv # Create .env file from .env_template # Run OHLCV datahub service docker run -p 8000:8000 \ --env-file=.env -v <data folder>:/app/cache \ registry.cn-hangzhou.aliyuncs.com/kenplusplus/gentrade_data_serv
-
Client Test
# Get all supported markets curl -X 'GET' \ 'http://127.0.0.1:8000/markets/?market_type=all' \ -H 'accept: application/json' # Get all available assets from a specific market curl -X 'GET' \ 'http://127.0.0.1:8000/assets/?market_id=b13a4902-ad9d-11ef-a239-00155d3ba217&start=0&max_count=1000' \ -H 'accept: application/json' # Get OHLCV for a specific asset curl -X 'GET' \ 'http://127.0.0.1:8000/asset/get_ohlcv?market_id=b13a4902-ad9d-11ef-a239-00155d3ba217&asset=BTC_USDT&timeframe=1m&since=-1&limit=10' \ -H 'accept: application/json' # Start OHLCV collector threading in the background curl -X 'POST' \ 'http://127.0.0.1:8000/asset/start_collect?market_id=b13a4902-ad9d-11ef-a239-00155d3ba217&asset=DOGE_USDT&timeframe=1h&since=1732809600' \ -H 'accept: application/json' \ -d ''
The cached data can be found at this directory
Metadata
Release files for gentrade 0.0.21
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| gentrade-0.0.21.tar.gz | 13.7 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| gentrade-0.0.21-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 30.9 kB
Release files / gentrade-0.0.21.tar.gz
| Download URL | gentrade-0.0.21.tar.gz |
|---|---|
| Size | 13.7 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
90e9e550755cf9e5706efc71d5e3cdea8d6af2e7112530855bb864a2cbfd95ca
|
|
BLAKE2b-256 checksum How to use checksums |
4ce52da0c43ee508e1e22bf7185e912cd5f1c7dae63c53dd2b9f5d97dc6cdb50
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.0.1 CPython/3.12.3
|
Release files / gentrade-0.0.21-py3-none-any.whl
| Download URL | gentrade-0.0.21-py3-none-any.whl |
|---|---|
| Size | 17.2 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
c38cd4553f6577b45a683d192b9744d72a046c6a0cb1c7ea86e1c072510e7c41
|
|
BLAKE2b-256 checksum How to use checksums |
f58a89b7dcf27b7fa6832717f2c9eadb4361da34015687777e69b58c78763e5f
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.0.1 CPython/3.12.3
|