Skip to main content

AI-native quantitative finance engine with genetic algorithm strategy evolution

Project description


StratEvo

Stop writing trading strategies. Evolve them.

An open-source genetic algorithm engine that evolves and walk-forward tests trading strategies across 484 market factors. No manual rules, no API keys, no PhD required.

PyPI CI codecov 484 Evolvable Factors 10850+ Tests Discord Stars

Demo · Results · 📊 Live Performance · Docker · Styles · Ensemble · Robustness · Contribute · Discord


30-Second Demo

pip install stratevo
stratevo analyze AAPL          # Quick analysis with evolved strategies
stratevo evolve --quick        # See evolution in ~2 minutes

That's it. No config files, no API keys, no exchange accounts, no LLM required. Pure Python + math.

Strategy Evolution

Real evolution run: 9 crypto assets, 600 generations. Fitness goes from random noise to 33% annual return, 6.06 Sharpe, 5.6% max drawdown. (Backtest only, not live trading)


Docker

Zero-setup. No Python version issues, no dependency conflicts.

# See evolution in 30 seconds (built-in demo data)
docker compose up demo

# Run a quick evolution (~2 minutes)
docker compose up quick

# Full crypto evolution: auto-downloads data + evolves
docker compose up evolve-crypto

# Analyze any symbol
docker compose run --rm analyze analyze BTC
Manual install (without Docker)
pip install stratevo
stratevo evolve --demo            # 30-second demo
stratevo evolve --quick           # ~2 minute evolution
stratevo download-crypto          # Download BTC/ETH/SOL data
stratevo evolve --market crypto   # Full evolution run

What's Different Here

Most quant tools make you write the strategy. You pick indicators, set thresholds, run a backtest, tweak, repeat. It works — if you already know what to look for.

StratEvo takes the opposite approach: it evolves strategies. A genetic algorithm searches across 484 factors and finds weight combinations that actually work out-of-sample.

You don't pick the indicators. The algorithm does. You decide how long to let it search.

You write the rules        →  StratEvo discovers the rules
You tune parameters        →  GA tunes parameters  
You test on one period     →  Walk-forward tests on multiple windows
You hope it generalizes    →  Monte Carlo measures if it does

Why Genetic Algorithms?

GAs are good at problems where the search space is huge and the relationship between inputs isn't obvious — which is exactly what trading strategy design looks like. With 484 factors, the number of weight combinations is absurd. Grid search won't cut it. Manual tuning takes forever. GAs get around this by keeping what works and mutating what doesn't, generation after generation.


Strategy Styles

When StratEvo evolves a strategy, the resulting "DNA" (a vector of 484 factor weights) falls into a recognizable style based on which factors dominate:

Style Heavy Factors What the Algorithm Found
Value Seeker P/E, P/B, earnings yield Buys cheap, holds patient. Benjamin Graham would recognize this DNA.
Momentum Rider ROC, acceleration, trend strength Chases what's moving, cuts what isn't. The DNA learned that trends persist.
Mean Reverter Z-score, Keltner position, %B Bets on bounce-backs. Statistical arbitrage without the PhD.
Flow Reader OBV, smart money flow, Wyckoff VSA Follows the money. Volume precedes price — the DNA figured that out.
Volatility Hunter ATR squeeze, vol-of-vol Profits from volatility expansion. Sits during calm, strikes during storms.
Crypto Native Funding rate, liquidation cascade 200 factors built for a 24/7 market that doesn't follow TradFi rules.

These aren't made up — they're what the algorithm actually converged on.


Multi-DNA Voting

Instead of betting on a single evolved strategy, run multiple DNAs and aggregate their signals:

stratevo analyze AAPL --ensemble 5    # 5 strategies vote on one stock
  Multi-DNA Analysis: AAPL
  ═══════════════════════════════════════
  
  Strategy Votes:
    Value Seeker       → BUY   (score: 0.72, confidence: high)
    Momentum Rider     → BUY   (score: 0.85, confidence: high)  
    Mean Reverter      → HOLD  (score: 0.45, confidence: medium)
    Flow Reader        → BUY   (score: 0.68, confidence: medium)
    Volatility Hunter  → HOLD  (score: 0.51, confidence: low)

  Consensus: BUY (3/5 bullish, 0/5 bearish)
  Combined Score: 0.64
  
  This is a research tool, not financial advice.

Each strategy was independently evolved. Agreement = stronger signal. Disagreement = mixed picture, worth looking closer.


How It Works

  Random DNA population (484 factor weights + risk parameters)
       │
       ▼
  ┌──────────────────────┐
  │  Walk-Forward Test   │  Multi-window out-of-sample validation
  │  each DNA candidate  │  Real fees, slippage, position caps
  └──────────┬───────────┘
             │
             ▼
  Keep the survivors (Sharpe × Return / MaxDD)
             │
             ▼
  Mutate + Crossover → next generation
             │
             ▼
  Repeat for N generations

Each DNA is a weight vector across 484 factors plus risk/position parameters — all evolvable:

Parameter Range What it controls
Factor weights (×484) 0.0–1.0 Which factors matter and how much
hold_days 2–60 Day trades through swing trades
trailing_stop % Lock in profits, trail below peak
market_regime sensitivity Auto-reduce exposure in bear markets
kelly_fraction 0–1 Position sizing based on recent win rate

The GA tries combinations you wouldn't. That's the point.

stratevo evolve --market crypto --generations 50
stratevo evolve --pareto                          # Multi-objective (NSGA-III)
stratevo evolve --logic-guided                    # Semantically guided mutations

Anti-Overfitting

We learned the hard way. An early version showed 25,000% returns — it was a bug (look-ahead bias). Here's what prevents that now:

Defense What it does
Walk-Forward Multi-window OOS validation. Must profit on data it never trained on.
Monte Carlo 1,000 shuffled iterations. p-value < 0.05 or it's luck.
Arena Mode Multiple strategies compete simultaneously. Crowded signals get penalized.
Correlation Guard Rejects picks correlated above 0.85. No fake diversification.
Factor Diversity HHI-based penalty for over-relying on one factor group.
Turnover Penalty Excessive trading gets punished in fitness. Real transaction costs modeled.
Bias Detection Look-ahead, snooping, survivorship — flagged automatically.
stratevo check-backtest    # Verify any result's integrity

Transparency note: Our early versions had inflated returns from look-ahead bias. We fixed it, disclosed it publicly, and added check-backtest so you can verify results yourself. Honest 45% beats fabricated 25,000%.


Real Results

Actual numbers from our running evolution engines. Not cherry-picked. Updated live.

🇺🇸 US Stocks (50 S&P 500 stocks, V3 — Gen 31)

Metric Best DNA
Annual Return 45.0%
Sharpe Ratio 1.67
Max Drawdown 16.2%
Win Rate 59.2%
Profit Factor 1.63
Total Trades 232

Walk-Forward Validation — All 4 Windows Profitable ✅

Window Period OOS Annual Return AAPL Buy&Hold OOS Sharpe Trades Win Rate
W0 Dec 2022 – Jul 2023 +80.1% +88.9% 2.36 55 60.0%
W1 Jul 2023 – Feb 2024 +24.1% -8.9% 1.62 45 60.0%
W2 Feb 2024 – Sep 2024 +23.2% +39.6% 0.88 69 56.5%
W3 Sep 2024 – Apr 2025 +60.5% -18.0% 1.83 63 60.3%

All 4 windows OOS-profitable. W0 trailed AAPL buy-and-hold during the 2023 rally; W1 and W3 significantly outperformed in flat/down markets — where active strategies should add value.


₿ Crypto (20 assets, V12 — Gen 108)

Crypto Strategy Evolution

Metric Best DNA
Annual Return 105.6%
Sharpe Ratio 2.89
Max Drawdown 14.8%
Win Rate 44.0%
Profit Factor 1.89
Total Trades 150

Walk-Forward Validation — 4 of 5 Windows Profitable

Window Period OOS Annual Return BTC Buy&Hold OOS Sharpe Trades Win Rate
W0 Jan 2025 – Mar 2025 -42.8% -62.2% -1.87 30 16.7%
W1 Mar 2025 – May 2025 +10.4% +195.7% 0.84 30 43.3%
W2 May 2025 – Jul 2025 +98.2% +111.0% 2.83 30 43.3%
W3 Jul 2025 – Sep 2025 +524.0% +2.4% 6.50 30 53.3%
W4 Sep 2025 – Oct 2025 +370.3% +20.5% 6.13 30 63.3%

W3/W4 massively outperformed BTC buy-and-hold. W1 missed the Mar–May 2025 rally (BTC +195% annualized vs strategy +10%). W0 lost money but less than BTC itself (-42.8% vs -62.2%). We're working on cross-regime robustness (GT-Score fitness function, arXiv:2602.00080).


Caveats: These are backtests, not live trades. Real results will differ. We hide nothing.


Paper Trading

Test strategies with real market data, simulated execution:

stratevo paper start --exchange okx --balance 100000
stratevo paper status
stratevo paper report

Track P&L, win rates, and drawdowns before risking real money.


484 Factors

Click to expand full factor list

All normalized to [0, 1]:

Category Count Examples
Crypto-Native 200 Funding rate, session effects, whale detection, liquidation cascade
Momentum 14 ROC, acceleration, trend strength
Volume & Flow 13 OBV, smart money, Wyckoff VSA
Volatility 13 ATR, Bollinger squeeze, vol-of-vol
Mean Reversion 12 Z-score, Keltner channel position
Trend Following 14 ADX, EMA golden cross, MA fan
Qlib Alpha158 11 KMID, KSFT, CNTD (Microsoft Qlib compatible)
Risk Warning 11 Consecutive losses, death cross, gap-down
Quality Filter 11 Earnings momentum, relative strength
Price Structure 10 Candlestick patterns, support/resistance
Sentiment 2 EN/ZH keyword sentiment
DRL Signal 2 Q-learning buy probability

All factor weights are discovered by evolution — no manual tuning required.


Data Sources

Market Source API Key?
Crypto ccxt (100+ exchanges) No
US Stocks Yahoo Finance No
A-Shares AKShare + BaoStock No

MCP Server

StratEvo exposes its tools to any MCP-compatible AI client (Claude Desktop, Cursor, etc.). The MCP server itself doesn't need an LLM — your AI client provides the intelligence, StratEvo provides the data and computation:

{
  "mcpServers": {
    "stratevo": {
      "command": "stratevo",
      "args": ["mcp", "serve"]
    }
  }
}

10 tools: get_quote, run_backtest, analyze_portfolio, screen_stocks, and more.


AI Copilot (Optional)

StratEvo includes an optional AI copilot for natural-language strategy exploration. This is the only feature that requires an LLM API key — everything else (evolve, analyze, backtest, paper trading) works without one.

# Set any ONE of these — StratEvo auto-detects the provider
export OPENAI_API_KEY="sk-..."           # OpenAI (GPT-4o-mini)
export GEMINI_API_KEY="AIza..."          # Google Gemini
export ANTHROPIC_API_KEY="sk-ant-..."    # Anthropic Claude
export DEEPSEEK_API_KEY="sk-..."         # DeepSeek
export GROQ_API_KEY="gsk_..."            # Groq (Llama 3)
# Or run local models — no API key needed:
# export OLLAMA_BASE_URL="http://localhost:11434/v1"

stratevo copilot

Supported: OpenAI, Anthropic, Gemini, DeepSeek, Groq, Mistral, Moonshot, Azure OpenAI, Ollama (local).


For Contributors

StratEvo's plugin architecture makes contributing easy. Adding a new factor is often one file, one function, one PR:

stratevo scaffold factor --name my_signal --category momentum
# Edit the generated file, implement compute(), submit PR
Component Difficulty
Factors Easy
Fitness functions Medium
Data sources Medium
Strategy DNA configs Advanced
git clone https://github.com/NeuZhou/stratevo.git
cd stratevo && pip install -e ".[dev]" && pytest

CONTRIBUTING.md · Discord · Issues


Roadmap

  • 484-factor evolution engine
  • Walk-forward + Monte Carlo + Arena mode
  • Multi-DNA ensemble voting
  • Strategy style classification
  • Paper trading
  • MCP server for AI tools
  • Plugin architecture
  • Streamlit dashboard (live evolution tracking)
  • DEX execution (Uniswap V3)
  • Multi-timeframe evolution
  • Community strategy marketplace

License

Dual-licensed under AGPL-3.0 and a Commercial License.

  • 🆓 Open Source (AGPL-3.0): Free for personal use, research, education, and open source projects
  • 💼 Commercial License: Required for paid signal services, proprietary SaaS, or closed-source commercial use

👉 See COMMERCIAL.md for details or contact neuzhou@outlook.com for licensing.


If this is useful, a star helps others find it.

English · 中文 · 한국어 · 日本語

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

stratevo-6.0.5.tar.gz (1.2 MB view details)

Uploaded Source

Built Distribution

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

stratevo-6.0.5-py3-none-any.whl (1.4 MB view details)

Uploaded Python 3

File details

Details for the file stratevo-6.0.5.tar.gz.

File metadata

  • Download URL: stratevo-6.0.5.tar.gz
  • Upload date:
  • Size: 1.2 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.10

File hashes

Hashes for stratevo-6.0.5.tar.gz
Algorithm Hash digest
SHA256 0c95ad98506c9a28759707d905365590e58dd26a9cab123d66c45ab876592235
MD5 7dd5e8f6bac9ee8c3e6f78162d6a5524
BLAKE2b-256 36ca6ef7932c2663c0fdf1f5d331ee23f16f20c9833d01a4fe397e6bf74d545b

See more details on using hashes here.

File details

Details for the file stratevo-6.0.5-py3-none-any.whl.

File metadata

  • Download URL: stratevo-6.0.5-py3-none-any.whl
  • Upload date:
  • Size: 1.4 MB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.10

File hashes

Hashes for stratevo-6.0.5-py3-none-any.whl
Algorithm Hash digest
SHA256 266e0bd2afaf0233909e4fbbef829cce1b2d74e26d49418956f9bb9efd10fba6
MD5 8f910c1ac4e7726fb59d87963c8018b5
BLAKE2b-256 32d92628424e99424f00246ccab1f849f83dfe3e1499f8135672d917012b9307

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