Quick Start • Strategy Discovery • Live Trading • Features
NexQuant discovers profitable trading strategies through high-speed search — no LLM required. Core engine: Numba JIT-compiled backtest at 735 million bars/second (245× faster than pandas). Four discovery methods run in a continuous loop:
| Method | Frequency | Description |
|---|---|---|
| Explore | 30% of iterations | Random strategies from 17 TA-Lib indicators across timeframes |
| Exploit | 70% of iterations | Mutate the best-known strategy (change params, indicator, or timeframe) |
| Optuna | Every 500 iterations | 20-trial hyperparameter optimization on the current best |
| LightGBM | Every 2000 iterations | ML classifier trained on SOTA indicator signals to predict direction |
Current best strategy: MACD(3,10,3) 4-TF with 2/4 vote majority — +32.0%/month (Numba), +24.3%/month (verified independent backtest), 0/75 negative months.
This repository contains the research framework. Trading strategies, broker integrations, and live trading infrastructure are available as separate closed-source modules (
git_ignore_folder/).
# Prerequisites
conda create -n nexquant python=3.10 -y && conda activate nexquant
pip install -e .
# Ensure OHLCV data exists: git_ignore_folder/intraday_pv_all.h5
# Strategy Discovery Loop (10,000 iterations, ~1 hour)
python scripts/nexquant_rd_loop.py --iterations 10000
# Price-Action Indicator Loop (grid search all TA-Lib indicators)
python scripts/nexquant_priceaction_loop.py
# Top strategies report
python nexquant.py best -n 20 -m monthly_return --min-trades 30 ┌──────────┐ ┌──────────┐ ┌──────────┐ ┌──────────┐
│ Explore │ ──→ │ Exploit │ ──→ │ Optuna │ ──→ │ LightGBM │
│ (Random) │ │ (Mutate) │ │ (Tuning) │ │ (ML) │
└──────────┘ └──────────┘ └──────────┘ └──────────┘
30% 70% /500 iter /2000 iter
17 TA-Lib indicators: MACD, RSI, Donchian, SAR, ADX, BBANDS, CCI, WCLPRICE, MFI, OBV, STOCH, ROC, AROON, AROONOSC, MOM, ULTOSC, WILLR
4 timeframes: 15min, 30min, 1h, 4h
3 strategy types: Single-TF, Multi-TF (vote majority), Portfolio (indicator ensemble)
Discovery example (50,000 iterations):
random → SAR(+65) → MACD(+73) → MACD-mutated(+102.75, +32%/month)
↓
Optuna tuned params
↓
LightGBM ensemble
Deterministic parameter grid over all 17 indicators. Finds MACD(3,10,3) as optimal.
Greedy correlation-aware selection from discovered strategies.
Closed-source module at git_ignore_folder/nexquant_live_trader.py. Architecture:
MACD(3,10,3) Signal → cTrader OpenAPI → Live Account
4-TF 2/4 Votes (WebSocket+Protobuf) ↓
Paper Mode
Integration: cTrader WebSocket live.ctraderapi.com:5035, OAuth2 authentication, Protobuf message encoding, FIX protocol.
- 735M bars/second (0.003s for 2.26M bars)
- JIT-compiled profit/drawdown/sharpe computation
- Signal construction via pandas resample + TA-Lib (~0.4s) is the bottleneck
- Explore: Random indicator + timeframe + parameters
- Exploit: Mutation of top-5 SOTA strategies (parameter tweak, indicator swap, timeframe change)
- Optuna: 20-trial TPE hyperparameter optimization on best strategy
- LightGBM: ML classifier on SOTA indicator signals (80/20 train/test split)
- 17 indicators with full parameter ranges
- Auto-guard against bad parameters (negative/zero values that crash TA-Lib)
- Multi-timeframe voting with configurable threshold
- 0 Dependabot alerts, 0 CodeScan alerts
- No proprietary terms in git history
- Closed-source detection CI
nexquant/
├── scripts/ # Strategy discovery & trading
│ ├── nexquant_rd_loop.py # High-speed R&D loop (Numba + Optuna + ML)
│ ├── nexquant_priceaction_loop.py # TA-Lib grid search loop
│ ├── nexquant_portfolio_optimizer.py # Correlation-aware portfolio selection
│ ├── nexquant_gridsearch.py # Deterministic parameter grid search
│ ├── nexquant_daily_strategies.py # Daily Kronos + factor combinations
│ ├── nexquant_gen_strategies_real_bt.py # LLM-based strategy generation
│ ├── nexquant_autopilot.py # 24/7 continuous generator
│ └── nexquant_parallel.py # Multi-instance parallel runs
├── rdagent/ # Core framework (LLM-based, see note below)
│ ├── app/ # CLI and scenario apps
│ ├── components/ # Backtest engine, protections, coders
│ ├── core/ # Core abstractions
│ ├── scenarios/ # Domain-specific scenarios
│ └── utils/ # Utilities
├── git_ignore_folder/ # Closed-source (never committed)
│ ├── nexquant_live_trader.py # cTrader live trading
│ ├── nexquant_fix_trader.py # FIX protocol trader
│ ├── intraday_pv_all.h5 # OHLCV data
│ ├── gbpusdt_1min.h5 # GBP/USD data
│ └── btc_1min.h5 # BTC data
├── test/ # 1,125+ collected tests
├── data_config.yaml # Walk-forward split configuration
├── requirements.txt # Dependencies
└── AGENTS.md # Agent configuration & workflow guide
Note on
rdagent/: The LLM-based R&D framework (rdagent fin_quant) is part of the codebase but the Qlib/CoSTEER pipeline currently produces zero factors. The primary strategy discovery path is the Numba-based loop inscripts/.
- Conda (Miniconda or Anaconda)
- TA-Lib system library (
apt install ta-liborbrew install ta-lib) - Linux (Ubuntu 22.04+)
git clone https://github.com/TPTBusiness/NexQuant && cd NexQuant
conda create -n nexquant python=3.10 -y && conda activate nexquant
pip install -e .Place OHLCV HDF5 data at git_ignore_folder/intraday_pv_all.h5:
# Format: MultiIndex (datetime, instrument), columns: $open $close $high $low $volume
df.to_hdf('git_ignore_folder/intraday_pv_all.h5', key='data')GNU Affero General Public License v3.0 (AGPL-3.0). See LICENSE.
NexQuant is provided for research and educational purposes only. Past performance does not guarantee future results. Users assume all liability.