Skip to main content

GenAI based Trading Package

Project description

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 gentrade
    

    if you want to try the package from source code you can

    set PYTHONPATH=<root of gentrade>/src/
    
  • Then try:

    • Demos: command line based app to show market OHLCV data
    • Tests: test cases for the API and utilities
    • Apps: the application or microservices based on gentrade.

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:

  1. Draw the latest 100 hours btcoin's prices (OHLCV)

    cd demo/crypto-cli
    python run_matplot.py -a btc -t 1h -l 100
    

    Output:

  2. 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
    
  3. 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:

  1. 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
    
  2. 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

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

gentrade-0.0.18.tar.gz (13.6 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

gentrade-0.0.18-py3-none-any.whl (17.0 kB view details)

Uploaded Python 3

File details

Details for the file gentrade-0.0.18.tar.gz.

File metadata

  • Download URL: gentrade-0.0.18.tar.gz
  • Upload date:
  • Size: 13.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.0.1 CPython/3.12.3

File hashes

Hashes for gentrade-0.0.18.tar.gz
Algorithm Hash digest
SHA256 e778ac07f931b0b8bab48f307aab8315a36708d948faf3d05d1c4158831fe1bf
MD5 141a42da92514cd445a5e6622b6e8abc
BLAKE2b-256 09b950ac69cceb9e98fff15311deae1611ec62a47b3942b1a66f547c5fd79dac

See more details on using hashes here.

File details

Details for the file gentrade-0.0.18-py3-none-any.whl.

File metadata

  • Download URL: gentrade-0.0.18-py3-none-any.whl
  • Upload date:
  • Size: 17.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.0.1 CPython/3.12.3

File hashes

Hashes for gentrade-0.0.18-py3-none-any.whl
Algorithm Hash digest
SHA256 90e5b89212ac1b7a0f846ba533c241cc7f97092fd7416f71ca1c0f16024c01ec
MD5 3da13eb6e966f2dfc113f4111afde682
BLAKE2b-256 cf7e8ebf1e53abb71b3b120326365096a3004fcfcda0716321c3fbf2047e8043

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page