QTradeX Docs
import qtradex as qx
class EMACrossBot(qx.BaseBot):
def indicators(self, data):
return {
"fast_ema": qx.ti.ema(data["close"], 10),
"slow_ema": qx.ti.ema(data["close"], 50),
}
def strategy(self, state, indicators):
if indicators["fast_ema"] > indicators["slow_ema"]:
return qx.Buy()
elif indicators["fast_ema"] < indicators["slow_ema"]:
return qx.Sell()
return qx.Hold()
A bot class. Two indicators. A decision rule. That's the skeleton of every QTradeX strategy.
Explore
- Advanced Bot Building — custom warmup, plot overrides, execution hooks
- Optimization — QPSO, LSGA, IPSE, AION
- Live Trading — paper trade, live orders, authentication
- API Reference — BaseBot, Data, signals, optimizers
Community & Resources
- GitHub — QTradeX-Algo-Trading-SDK — source code, issues, star history
- DeepWiki — QTradeX SDK — auto-generated AI-readable docs
- AI Agents — QTradeX-AI-Agents — 22+ community bot strategies to learn from (or run as-is)
- Telegram — @qtradex_sdk — discussion, support, and strategy talk
- AI Strategies DeepWiki — QTradeX AI Agents — deep-dive into each community bot