Access the files on Github or via FHNW. Official publication: IRF FHNW.
For my bachelor's thesis at FHNW, I built and backtested a quantitative Bitcoin trading strategy driven entirely by Reddit sentiment. The core question: can the collective sentiment of retail investors be turned into a systematic, rules-based allocation signal that outperforms passive exposure?
The short answer: yes - at least within the tested period.
The Idea
An important empirical finding shaped the entire design: Reddit sentiment correlates strongly with same-day Bitcoin returns (ρ = 0.457), but its forward-looking predictive power is weak (max ρ = 0.101 at +3 weeks). This distinction matters. The strategy doesn't try to forecast where Bitcoin is going, it tries to identify where the market is right now, and size exposure accordingly.
Three principles follow from this:
- Risk management first.
Outperforming buy-and-hold on Sharpe and max drawdown, even if total return is similar, is the primary goal. - Regime-based allocation.
Sentiment classifies the market as bullish, neutral, or bearish. The portfolio reweights accordingly - no attempt to predict exact return magnitudes. - Conservative implementation.
Positions range from 0% to 100% Bitcoin, no leverage, no short selling.
Building the Signal
Rather than relying on a single sentiment model, I combined two complementary NLP tools:
- VADER — a lexicon-based model well-suited to informal, social-media language
- FinBERT — a transformer-based model pre-trained on financial text, better at capturing domain-specific nuance
The composite signal was constructed in six steps:
- Scale alignment
90-day rolling z-score applied to each model's daily scores, removing mean/variance differences without look-ahead bias - Composite signal
equal-weight average of the two normalized series - Smoothing
5-period exponential moving average to reduce daily noise while preserving timeliness - Regime cut-offs
rolling 60-day 75th/25th percentiles of the smoothed series; thresholds adapt to shifting sentiment distributions - Position map
Bull = 100% BTC, Neutral = 10% BTC, Bear = 0% (cash) - Rebalancing
weekly, at Monday close; chosen to balance signal responsiveness with transaction costs Parameters (EMA span, neutral weight) were selected via grid search on in-sample data (2021–2023), then frozen for the out-of-sample evaluation year (2024).
A second variant, Strategy B, added volatility-aware position sizing on top of the regime signal. A scaling factor — defined as the ratio of a target volatility (80% of median in-sample volatility, ≈47%) to the current 30-day realized volatility; reduces exposure when markets become unusually turbulent, without ever applying leverage.
Results
The 2024 out-of-sample period was a tough benchmark: a post-halving bull market typically favours passive buy-and-hold. Both strategies outperformed regardless.
Performance Summary (OOS), extended
Cumulative Returns Strategy A&B (Full Period)Strategy A generated higher absolute returns than Bitcoin while cutting maximum drawdown in half. Strategy B gave up a marginal 2% in return for an even tighter risk profile, achieving the strongest risk-adjusted performance in the group.
The composite signal clearly outperformed either model in isolation — VADER-only produced a Sharpe of 1.71, FinBERT-only 2.03. Combining them reduced false regime signals and captured complementary information from both approaches.
Robustness tests confirmed the results weren't fragile: with doubled transaction costs or a one-day execution delay, the Sharpe remained above 2.5 across all scenarios.
Where the Edge Came From
The strategy's value wasn't in predicting future returns - it was in regime identification. During the 2022 bear market (in-sample), the signal moved the portfolio to cash while Bitcoin fell 77%, limiting Strategy A's drawdown to 59%. Capital preserved during downturns compounds into a lasting structural advantage when markets recover.
Underwater PlotIn 2024, the strategy spent roughly half the year in a neutral regime (10% exposure), going fully long only during confirmed bull windows. This selective participation explains why it could outperform passive strategies on a risk-adjusted basis even in a trending market:
- Bull regime (100% BTC): ~25% of the year
- Neutral regime (10% BTC): ~49% of the year
- Bear regime (0% BTC): ~25% of the year
Allocation Map OOSLimitations & What's Next
The analysis covers only 2021–2024, a short and Bitcoin-specific window. Only Reddit was used - institutional news feeds, X/Twitter, and on-chain metrics were excluded. The strategy also requires a 90-day warm-up period before generating signals, and all results are backtest-only; live deployment introduces slippage, API latency, and feedback effects not modelled here.
Interesting extensions would include live deployment with real order execution, incorporating on-chain data, generalizing to other crypto assets, and a reinforcement learning agent that learns allocation rules dynamically rather than following fixed thresholds.
Bachelor's thesis, BSc Business Information Technology (Wirtschaftsinformatik) (Major: Business Analytics), FHNW School of Business, 2025.