Every signal QuantBulgaria generates is the product of a rigorous, multi-layered quantitative process — from raw price data to a validated trade decision. Below: live paper trading results from March 2026, followed by 5-year backtest data and a full explanation of the system.
Live Paper Trading
The following trades were executed on a live paper-trading account using QuantBulgaria signals, from 13 March – 2 April 2026. These are not backtested results — they are real orders placed in a live brokerage account at market prices.
| Ticker | Entry | Exit | Return | Exit Type | Period |
|---|---|---|---|---|---|
| DG | $131.84 | $123.39 | −6.53% | stop loss | Mar 13 – Mar 19 |
| CAG | $16.41 | $15.41 | −6.24% | stop loss | Mar 13 – Mar 19 |
| MKC | $58.30 | $55.06 | −5.67% | stop loss | Mar 13 – Mar 18 |
| KHC | $22.60 | $21.57 | −4.68% | stop loss | Mar 13 – Mar 20 |
| EL | $87.88 | $79.27 | −9.92% | hold expired | Mar 13 – Mar 23 |
| LEN | $94.99 | $92.19 | −3.07% | hold expired | Mar 13 – Mar 25 |
| INCY | $92.55 | $92.23 | −0.46% | hold expired | Mar 13 – Mar 25 |
| CNC | $34.47 | $32.71 | −5.21% | hold expired | Mar 13 – Mar 25 |
| RMD | $230.76 | $226.30 | −2.05% | hold expired | Mar 13 – Mar 25 |
| ZTS | $115.63 | $116.65 | +0.77% | hold expired | Mar 13 – Mar 25 |
| SYK | $336.82 | $327.59 | −2.86% | hold expired | Mar 13 – Mar 25 |
| RF | $25.00 | $25.78 | +3.02% | hold expired | Mar 13 – Mar 25 |
| CFG | $55.63 | $58.95 | +5.86% | hold expired | Mar 13 – Mar 24 |
| HBAN | $15.21 | $15.54 | +2.05% | hold expired | Mar 13 – Mar 25 |
| PNC | $201.11 | $205.86 | +2.24% | hold expired | Mar 13 – Mar 25 |
| GS | $782.44 | $835.91 | +6.71% | hold expired | Mar 13 – Mar 24 |
| ARE | $49.40 | $46.02 | −6.96% | stop loss | Mar 17 – Mar 27 |
| ULTA | $523.03 | $510.59 | −2.50% | hold expired | Mar 17 – Mar 27 |
| SWKS | $53.60 | $56.18 | +4.68% | hold expired | Mar 18 – Mar 25 |
| FCX | $53.60 | $58.78 | +9.54% | take profit | Mar 19 – Mar 31 |
| JBHT | $200.13 | $206.10 | +2.87% | hold expired | Mar 19 – Mar 26 |
| TXT | $88.69 | $87.62 | −1.32% | hold expired | Mar 19 – Mar 31 |
| ABBV | $206.25 | $217.46 | +5.32% | hold expired | Mar 19 – Mar 31 |
| BALL | $57.03 | $60.74 | +6.39% | take profit | Mar 20 – Mar 25 |
| DD | $42.45 | $45.33 | +6.64% | take profit | Mar 20 – Mar 24 |
| NEM | $95.75 | $108.23 | +12.91% | take profit | Mar 20 – Mar 31 |
| CTAS | $179.30 | $168.65 | −6.06% | stop loss | Mar 20 – Mar 26 |
| EFX | $177.94 | $179.62 | +0.82% | hold expired | Mar 20 – Apr 1 |
| GWW | $1,042.02 | $1,063.84 | +1.97% | hold expired | Mar 20 – Mar 26 |
| DE | $559.77 | $578.02 | +3.14% | hold expired | Mar 20 – Mar 25 |
| HSY | $210.05 | $216.81 | +3.10% | hold expired | Mar 20 – Mar 25 |
| HSIC | $72.24 | $73.02 | +0.95% | hold expired | Mar 20 – Apr 1 |
| CVS | $71.49 | $72.47 | +1.25% | hold expired | Mar 20 – Apr 1 |
| CUBE | $37.13 | $37.19 | +0.03% | hold expired | Mar 23 – Apr 2 |
| EQR | $58.41 | $59.54 | +1.82% | hold expired | Mar 23 – Apr 1 |
| PSA | $271.43 | $280.37 | +3.17% | hold expired | Mar 23 – Apr 2 |
| ES | $67.66 | $69.48 | +2.58% | hold expired | Mar 23 – Apr 2 |
| MOS | $24.08 | $26.54 | +10.10% | hold expired | Mar 23 – Apr 1 |
| SNA | $362.46 | $361.66 | −0.34% | hold expired | Mar 23 – Mar 26 |
| TSLA | $380.79 | $355.33 | −6.81% | stop loss | Mar 23 – Mar 30 |
| MCK | $877.25 | $885.07 | +0.77% | hold expired | Mar 23 – Apr 2 |
| WRB | $65.55 | $65.29 | −0.52% | hold expired | Mar 23 – Apr 1 |
| REG | $74.56 | $76.11 | +1.96% | hold expired | Mar 24 – Apr 1 |
| MOH | $141.75 | $131.49 | −7.36% | stop loss | Mar 24 – Mar 30 |
| CCI | $76.97 | $84.77 | +10.01% | take profit | Mar 25 – Apr 2 |
| ETSY | $48.27 | $51.67 | +6.92% | hold expired | Mar 25 – Apr 2 |
| SBAC Best | $166.24 | $204.11 | +22.66% | take profit | Mar 26 – Apr 2 |
| META | $525.65 | $572.14 | +8.72% | take profit | Mar 27 – Mar 31 |
| DECK | $94.03 | $100.90 | +7.18% | hold expired | Mar 27 – Apr 1 |
| MU Worst | $357.27 | $322.05 | −9.98% | hold expired | Mar 27 – Mar 30 |
| LULU | $145.85 | $158.94 | +8.86% | take profit | Mar 30 – Apr 1 |
| GILD | $136.35 | $140.30 | +2.78% | hold expired | Mar 30 – Apr 1 |
| LLY | $886.74 | $954.74 | +7.55% | take profit | Mar 30 – Apr 1 |
| NCLH | $18.70 | $18.92 | +1.06% | hold expired | Mar 31 – Apr 2 |
| LRCX | $213.66 | $218.31 | +2.06% | hold expired | Mar 31 – Apr 2 |
Paper trading via Alpaca. All fills at market open. Position sizing: variable shares, ~3% capital per signal. Results not audited.
Validated Results
Figures from walk-forward out-of-sample tests run across five distinct market regimes spanning 2020–2026. Validation performed on the full S&P 500 universe. All results are post-slippage and post-commission. The 60-month (5-year) primary window is the headline figure; full regime breakdown is shown below.
Win Rate
Profitable trades out of 3,299 total signals
Profit Factor
Gross profit ÷ gross loss across all closed trades
Sharpe Ratio
Risk-adjusted return after all transaction costs
Trades Simulated
Walk-forward out-of-sample signals over 5 years
CAGR
Compound annual growth rate (3% sizing) vs SPY ~8% CAGR over same 5-year period
Dynamic Stop-Loss
Volatility-adjusted stops using 2× ATR (14-day) — adapts to each stock's characteristics
Historical Coverage
2020–2026: COVID crash, recovery, 2022 bear, 2023–25 bull — positive across all
Full Universe
Complete S&P 500 coverage across all 11 GICS sectors — institutional-grade liquidity
Performance Across Market Regimes
2020 Crash+Recovery
0.68
Sharpe · PF 1.19
2022 Bear Market
0.52
Sharpe · PF 1.11
SPY −25% · Strategy: positive
2023 AI Bull
0.91
Sharpe · PF 1.32
2024–2025 Baseline
0.83
Sharpe · PF 1.28
Strategy remained profitable across every regime tested, including the 2022 bear market.
Past backtest performance is not a guarantee of future results. Systematic strategies involve risk of loss. All figures are out-of-sample, post-slippage and post-commission (0.12% round-trip friction).
Raw Backtest Output
3,299 closed trades, 3% position sizing per signal (subscribers may use any fraction — 1–3% recommended), 0.12% round-trip friction (0.05% slippage + 0.01% commission per side). Starting equity normalized to 1.00. Chart drawn directly from backtest output — no smoothing applied.
Red band = drawdown from running peak. Dashed line = breakeven (1.00). All data from 60-month backtest run 01 April 2026. Position size: 3% per signal.
Layer 1
The signal engine aggregates four independent factor families into a single composite score between 0 and 1. Signals are generated only when this score clears a calibrated threshold of 0.35, ensuring a minimum confluence of evidence before any position is considered.
Each factor is computed independently, preventing any single dimension from dominating. This structural diversification reduces the risk of fitting to noise and improves robustness across varying market regimes.
Signal Score Composition
Threshold: composite ≥ 0.35 required for signal generation. Long-only.
Layer 2
Before any composite score is evaluated, QuantBulgaria applies a market regime filter based on the VIX (Cboe Volatility Index). When broad market fear crosses a defined threshold, the system suspends new entries entirely — regardless of how strong an individual signal appears.
This top-down filter is one of the most valuable components of the system. By refusing to fight high-volatility markets, it preserves capital during the periods when systematic strategies historically suffer their worst drawdowns.
VIX Check
VIX is read at signal generation time. If it exceeds the regime threshold, no new positions are opened for that session.
Trend Validation
A trend regime score ensures entries are aligned with broad market direction, reducing counter-trend risk.
Signal Gating
Only signals that clear both the composite threshold and the regime gate proceed to the risk management layer.
Execution
Approved signals are routed with pre-set stop-loss, take-profit, and hold parameters attached at entry.
Layer 3
Risk is not a secondary consideration at QuantBulgaria — it is enforced structurally. Every position carries pre-defined exit parameters set at entry, with automatic enforcement built into the platform. There is no discretionary override.
ATR-Based Dynamic Stop-Loss
Every position carries a volatility-adjusted stop-loss calculated using 2× the 14-day Average True Range (ATR). High-volatility stocks get wider stops (up to 5%) to avoid premature exits; low-volatility stocks get tighter stops (min 1%) for better risk control.
Dynamic Take-Profit: 2:1 R:R
Take-profit is set at 2× the stop distance, maintaining a consistent 2:1 reward-to-risk ratio regardless of the underlying volatility. This adapts to each stock's price action characteristics.
Maximum Hold: 8 Days
Positions that have not hit either stop or target are closed at market after 8 trading days. This prevents capital from being tied up in stagnant trades indefinitely.
Long-Only Strategy
Long-only is a deliberate, data-backed decision — not a limitation. During strategy design, short signals were evaluated independently; the short edge showed no statistically reliable PF above 1.0 after costs, consistent with the well-documented long-equity risk premium: markets structurally drift upward over time, and shorting that drift creates headwind. The decision to disable shorts eliminated borrowing costs, removed unlimited-loss exposure, and narrowed the model to the factor regime where it demonstrably has edge. The VIX filter provides downside protection in bear markets without requiring short positions.
Layer 4
Backtesting without forward-walk is storytelling, not research. QuantBulgaria uses a walk-forward out-of-sample framework: the model is trained on one window of historical data and evaluated on the immediately following unseen window. This process repeats across the full dataset, ensuring performance is measured on data the model has never seen.
What We Guard Against
Lookahead Bias
All features are computed using only data available at the time of signaling. No future information contaminates the model.
Overfitting / Curve-Fitting
Parameters are set once on training data and fixed for out-of-sample evaluation. No parameter tuning on test sets.
Survivorship Bias
The stock universe is resampled per walk-forward window with independent random seeds, preventing ex-post selection of winners.
Cost Realism
All backtest results incorporate 0.05% slippage per side (bid/ask spread) plus 0.01% commission per side (~IBKR tiered pricing), totalling 0.12% round-trip friction on every trade. the difference between the theoretical signal price and the actual fill price.
Performance figures quoted on this platform are post-slippage and post-commission. Gross figures without transaction costs are not reported, as they would misrepresent the achievable edge.
Important: Slippage and commission modelling covers normal market conditions only. Overnight gaps can cause stop-loss orders to execute below the −1.5% level. The worst single trade in backtest was −15.1% (NOW gap event). All quoted figures include this and similar events — they are not excluded as outliers.
Due Diligence
Any sophisticated investor should ask the following before trusting a quantitative strategy. We answer each question directly — including the ones where the honest answer is unflattering.
Q: What was the maximum drawdown?
The worst equity-curve drawdown over the 60-month period was −18.6%, observed in early 2022 (beat market regime). SPY drew down −25% over the same period. The worst single trade was −15.1% (overnight gap); average losing trade is −5.0%. The ATR-based stop-loss does not fully protect against gap events.
Q: What was the longest losing streak?
Verified from the full 3,299-trade log: 19 consecutive losses (longest observed). Longest winning streak: 14. At a 59.8% win rate (40.2% loss rate), a streak of 19 is at the extreme tail but was observed in the simulation — Bernoulli statistics for 3,299 trials put the 99th-percentile worst streak at approximately 15–18. With 3% position sizing, a 19-loss streak costs at most ~8% of portfolio equity (not 19 × 3% due to compounding).
Q: What was the CAGR?
The 60-month portfolio-level CAGR is 22.9% with 3% position sizing, versus SPY ~8% CAGR over the same period. This accounts for position overlap, cash drag, and compounding. Based on 3,299 trades averaging +1.12% per trade.
Q: Over how many years was the backtest run?
The primary backtest uses a 60-month (5-year) window spanning 2020–2026. This captures multiple distinct market regimes: 2020 COVID crash, 2021 recovery, 2022 bear market, 2023 AI bull run, and 2024–2025 consolidation. The strategy generated a positive Profit Factor in every regime, including 2022's bear market (PF 1.11, Sharpe 0.52). Results across all regimes are shown in the table above.
Q: What is the stock universe?
The live platform scans the complete S&P 500 index (~500 stocks) across all 11 GICS sectors. This provides full institutional-grade diversification and ensures adequate liquidity for all signals. The strategy is designed and tested exclusively on liquid, exchange-listed US large-cap equities — behaviour on small-caps, OTC, or international names is outside scope.
Q: Is performance independently audited?
No. All backtest results are self-reported. The code is available for review but has not been independently verified by a third party. Do not treat these figures as audited performance.
Explore live signals, portfolio analytics, and real-time risk metrics on the QuantBulgaria platform.
Launch Platform