# 🚀 QTradeX Core — Build, Backtest & Optimize AI-Powered Crypto Trading Bots

QTradeX Demo Screenshot

> 📸 See [screenshots.md](screenshots.md) for more visuals > 📚 Read the core docs on [QTradeX SDK DeepWiki](https://deepwiki.com/squidKid-deluxe/QTradeX-Algo-Trading-SDK) > 🤖 Explore the bots at [QTradeX AI Agents DeepWiki](https://deepwiki.com/squidKid-deluxe/QTradeX-AI-Agents) > 💬 Join our [Telegram Group](https://t.me/qtradex_sdk) for discussion & support --- ## TL;DR **QTradeX** is a lightning-fast Python framework for designing, backtesting, and deploying algorithmic trading bots, built for **crypto markets** with support for **100+ exchanges**, **AI-driven optimization**, and **blazing-fast vectorized execution**. Like what we're doing? Give us a ⭐! --- ## Why QTradeX? Whether you're exploring a simple EMA crossover or engineering a strategy with 20+ indicators and genetic optimization, QTradeX gives you: - Modular, non-locked architecture - want to use QTradeX's data fetching with a custom backtest engine? Go for it! - Tulip + CCXT Integration - Custom Bot Classes - Fast, Disk-Cached Market Data - Ultra Fast Backtests (even on a Raspberry Pi!) --- ## 🔍 Features at a Glance - **Bot Development**: Extend `BaseBot` to craft custom strategies - **Backtesting**: Easy-to-navigate CLI & live-coding based testing platform (Just select `Autobacktest`) - **Optimization**: Use QPSO, LSGA, or others to fine-tune parameters - **Indicators**: Wrapped Tulip indicators for blazing performance - **Data Sources**: Pull candles from 100+ CEXs/DEXs with CCXT - **Performance Metrics**: Evaluate bots with ROI, Sortino, Win Rate, and dozens more - **Speed**: 200+ backtests per second for 3 years of daily candles on a Ryzen 5600x --- ## Project Structure ``` qtradex/ ├── core/ # Bot logic and backtesting ├── indicators/ # Technical indicators ├── optimizers/ # QPSO, LSGA, other optimizers, and common utilities ├── plot/ # Trade/metric visualization ├── private/ # Execution & paper wallets ├── public/ # Data feeds and utils └── common/ # JSON RPC, BitShares nodes, and data caching ``` --- ## Quickstart ### Install ```bash pip install qtradex ``` Or, if you want the latest updates: ```bash git clone https://github.com/squidKid-deluxe/QTradeX-Algo-Trading-SDK.git QTradeX cd QTradeX pip install -e . ```` --- ## Example Bot: EMA Crossover ```python import qtradex as qx import numpy as np class EMACrossBot(qx.BaseBot): def __init__(self): # Notes: # - If you make the tune values integers, the optimizers # will quantize them to the nearest integer. # - By putting `_period` at the end of a tune value, # QTradeX core will assume they are periods in days and will scale them # to different candle sizes if the data given isn't daily self.tune = { "fast_ema_period": 10.0, "slow_ema_period": 50.0 } self.clamps = { "fast_ema_period": [5, 10, 50, 1], "slow_ema_period": [20, 50, 100, 1], } def indicators(self, data): return { "fast_ema": qx.ti.ema(data["close"], self.tune["fast_ema"]), "slow_ema": qx.ti.ema(data["close"], self.tune["slow_ema"]), } def strategy(self, tick_info, indicators): fast = indicators["fast_ema"] slow = indicators["slow_ema"] if fast > slow: return qx.Buy() elif fast < slow: return qx.Sell() return qx.Thresholds(buying=fast * 0.8, selling=fast * 1.2) def plot(self, *args): qx.plot( self.info, *args, ( # key name label color axis idx axis name ("fast_ema", "EMA 1", "white", 0, "EMA Cross"), ("slow_ema", "EMA 2", "cyan", 0, "EMA Cross"), ) ) # Load data and run data = qx.Data( exchange="kucoin", asset="BTC", currency="USDT", begin="2020-01-01", end="2023-01-01" ) bot = EMACrossBot() qx.dispatch(bot, data) ``` See more bots in [QTradeX AI Agents](https://github.com/squidKid-deluxe/QTradeX-AI-Agents) --- ## Usage Guide | Step | What to Do | | ---- | --------------------------------------------------------------- | | 1️⃣ | Build a bot with custom logic by subclassing `BaseBot` | | 2️⃣ | Backtest using `qx.dispatch` + historical data | | 3️⃣ | Optimize with any algorithm you like (optimized tunes stored per-bot in `tunes/`) | | 4️⃣ | Deploy live | --- ## Roadmap * More indicators (non-Tulip sources) * GPU Acceleration for indicators * Improved multi-core support for optimization * Windows/Mac support * TradFi Connectors: Stocks, Forex, and Comex support Want to help out? Check out the [Issues](https://github.com/squidKid-deluxe/QTradeX-Algo-Trading-SDK/issues?q=is%3Aissue%20state%3Aopen%20label%3A%22help%20wanted%22) list for forseeable improvements and bugs. --- ## Resources * [QTradeX Telegram](https://t.me/qtradex_sdk) * [QTradeX Algo Trading Strategies](https://github.com/squidKid-deluxe/qtradex-ai-agents) * [Tulipy Docs](https://tulipindicators.org) * [CCXT Docs](https://docs.ccxt.com) --- ## 📜 License **WTFPL** — Do what you want. Just be awesome about it 😎 --- ## ⭐ Star History Star History Chart --- ✨ Ready to start? Clone the repo, run your first bot, and tune away. Once tuned - LET THE EXECUTIONS BEGIN!