How many strategies can be tested per day?
On a single core: ~25000 profiles per day, depending on timeframes and data size.
The higher the core count, the higher the throughput.
v2.0 uses NumPy vectorization + multiprocessing for optimal throughput.
Does backtesting work with other cryptocurrencies beyond BTCEUR?
The engine is asset-agnostic: It works with ANY asset that provides OHLCV data
(open, high, low, close, volume). The backtesting logic is universal—crypto, stocks, forex,
commodities. Currently, TradeXil provides BTC/EUR, ETH/EUR datasets (2020-2024). The engine will
support XRP/EUR, PAXG/USD datasets later, but any asset with 200+ pre-calculated features can
be backtested.
Can I use my own data or import external datasets?
Yes, the system supports custom data sources. Your data must include 200+ pre-calculated features (or
the engine can calculate them). Parquet format is optimal for performance. Contact us for custom
data integration assistance.
What makes strategy-based profiles 10x better than random generation?
Three factors: (1) Market context filtering—strategies only trade aligned market
regimes, (2) Indicator coherence—all indicators follow one philosophy (trend, mean
reversion, bands, breakout), (3) Flexible scoring—80% indicator match passes with
bonus scoring (vs strict AND requiring 100%). Result: 5-15% pass rate vs 0.5-1.7%.
How does forward-fill prevent lookahead bias in multi-timeframe testing?
Higher timeframes use only closed candle data aligned to the lower timeframe timing.
At 10:00 (1h), the 4h candle from 08:00 is used (already closed). At 13:00 (1h), still the
08:00→12:00 candle (no forward lookahead). Only when the 4h candle closes do we use the new data.
This prevents using future price information.
What's the minimum dataset size needed for statistical validity?
2 years minimum (trades varies per timeframe). 5 years recommended
(TradeXil standard, 2020-2024) for robust signal-to-noise ratio and market cycle coverage. Longer
datasets reduce overfitting risk.
Can backtested strategies be deployed to live trading?
Yes, seamlessly. Backtest on historical datasets, deploy with
the real-time API. Same 200+ features = zero code changes. The engine includes
live paper trading mode for safe validation before risking real capital.
How are TP/SL levels calculated and adjusted?
TP and SL are set at entry from profile parameters (e.g., tp_multiplier = 1.007, sl_multiplier =
0.998). They never move after entry (no trailing stops, no manual adjustment).
Exits checked intrabar; if both TP and SL touched in same candle, SL is assumed to hit first (risk
management priority).
What happens when a strategy generates multiple signals per candle?
The system enforces "one trade at a time" constraint. New signals are logged but not
executed if a position is open. Prevents unrealistic multi-leg portfolios and maintains realistic
trading. Useful for validating signal consistency across conditions.
How accurate is backtesting compared to live trading?
Conservative assumptions increase accuracy: 0.02% spread (realistic bid-ask), 0.1% commission
(realistic exchange fees), conservative intrabar TP/SL detection (SL priority), one-trade-at-a-time
constraint. However, slippage, order rejection, and market impact remain variables in live
execution. Backtest results are upper-bound estimates.
Can I customize the scoring weights or strategy generation parameters?
Yes, fully. The engine is built for complete customization: scoring weights,
entry/exit thresholds, TP/SL multipliers, profile generation logic, fees, spread, entrance
conditions—everything is configurable. v2.0 uses fixed default parameters for reproducibility and
documentation clarity, but the underlying engine supports full parameter customization for research
and strategy development.
How does the system handle market gaps or missing candles?
TradeXil datasets have zero gaps: Every single date in the 2020-2024 BTCEUR dataset
is filled with continuous OHLCV data (crypto markets trade 24/7). The engine validates continuity
and detects edge cases. If gaps exist in external datasets, the system either (1) uses forward-fill
to carry forward last known value, or (2) skips the gap period. No signals are triggered during gaps
or market discontinuities.