The LightGBM news-augmented model (lgbm_news_augmented_v1) was evaluated on Q4 2025 data using a strict walk-forward methodology. The model was trained on data ending September 2025 and tested out-of-sample on October–December 2025, a period in which Bitcoin declined 26.25%.
The strategy generated +$722.34 net P&L on $5,000 capital (+14.45% return) with 159 trades across 18 unique coins. The short book contributed the majority of returns ($520.59) as expected during a sustained drawdown regime.
85% deploy rate, 15% cash buffer
Asymmetric trailing stops with TP/SL
LightGBM 3-class (buy/hold/sell)
The strategy produced positive alpha in all three months of Q4 2025 despite BTC declining 26%. Short-side dominance (126S vs 33L) demonstrates correct regime detection — the model correctly identified the bearish environment and skewed exposure accordingly.
The equity curve shows steady capital appreciation across all three months. Maximum drawdown of 12.32% occurred during a concentrated loss period but recovered quickly, yielding a Calmar ratio of 4.69.
The Sankey diagram traces every trade from signal generation through direction allocation to exit mechanism. Take-profit exits dominate (46%), generating the bulk of gross profit. Stop-loss exits represent controlled risk (14.5%) with capped downside at -8%.
| Exit Type | Count | % of Trades | Gross P&L | Avg P&L |
|---|---|---|---|---|
| Take Profit (+4.5%) | 73 | 45.9% | +$2,640.74 | +$36.17 |
| Trailing Stop | 36 | 22.6% | -$529.21 | -$14.70 |
| Stop Loss (-8%) | 23 | 14.5% | -$1,366.75 | -$59.42 |
| No Data | 16 | 10.1% | $0.00 | $0.00 |
| Expiry (3d hold) | 11 | 6.9% | -$22.45 | -$2.04 |
Take-profit captures 46% of all trades with +$2,641 gross profit. The asymmetric trailing stop design (Long: +2% activate / -1.5% trail; Short: +1.5% activate / -0.3% trail) limits whipsaw losses to -$529 across 36 trades, a favorable ratio vs. the TP gains.
The strategy is compared against BTC buy-and-hold and a simple equal-weight short basket to isolate the model's alpha generation versus naive directional exposure.
| Metric | Trishula Strategy | BTC Buy & Hold | Spread |
|---|---|---|---|
| Return | +14.45% | -26.25% | +40.70% |
| Final Equity | $5,722 | $3,687 | +$2,035 |
| Max Drawdown | 12.32% | 29.8% | -17.5pp |
| Sharpe Ratio | 2.08 | -1.45 | +3.53 |
| Period | BTC | P&L | Return | Trades | WR | PF |
|---|---|---|---|---|---|---|
| Q4 2025 | -26.2% | +$722 | +14.45% | 159 | 49.1% | 1.37 |
| Q1 2026 | -23.1% | +$651 | +13.02% | 651 | 49.2% | 1.39 |
The strategy outperformed BTC buy-and-hold by +40.70 percentage points in Q4 2025. Critically, this alpha is consistent across both test periods (Q4 2025 and Q1 2026), with similar win rates (~49%), profit factors (~1.38), and positive returns despite BTC declining ~25% in both quarters.
All key risk-adjusted ratios exceed institutional thresholds. The Sortino ratio of 3.05 indicates that downside volatility is well-controlled relative to returns, while the Calmar ratio of 4.69 demonstrates rapid drawdown recovery.
| Ratio | Value | Definition | Assessment |
|---|---|---|---|
| Sharpe | 2.08 | Return / Volatility | Excellent |
| Sortino | 3.05 | Return / Downside Deviation | Excellent |
| Calmar | 4.69 | Annualized Return / Max DD | Outstanding |
| Profit Factor | 1.37 | Gross Profit / Gross Loss | Good |
| Payoff Ratio | 1.14 | Avg Win / Avg Loss | Adequate |
Attribution analysis at the coin level reveals that returns are well-diversified across the universe. The top 5 coins contribute $795 in profits, while only 2 coins (ZEC, UNI) account for the majority of losses.
| Coin | Category | Trades | L/S | Long WR | Short WR | Net P&L |
|---|---|---|---|---|---|---|
| ARB | L2 | 13 | 1L/12S | 100% | 75% | +$273.74 |
| ADA | L1-Major | 10 | 5L/5S | 80% | 80% | +$155.64 |
| AAVE | DeFi/Infra | 7 | 0L/7S | - | 57% | +$152.43 |
| DOGE | Meme | 4 | 1L/3S | 100% | 67% | +$133.91 |
| CRV | DeFi/Infra | 13 | 1L/12S | 0% | 50% | +$129.09 |
| ENA | DeFi/Infra | 12 | 4L/8S | 75% | 50% | +$66.69 |
| LINK | DeFi/Infra | 12 | 3L/9S | 67% | 22% | +$61.80 |
| NEO | L1-Alt | 10 | 2L/8S | 50% | 50% | +$40.93 |
| XRP | L1-Major | 2 | 1L/1S | 0% | 100% | +$40.67 |
| SOL | L1-Major | 7 | 1L/6S | 100% | 50% | +$37.94 |
| SUI | L1-Alt | 12 | 1L/11S | 100% | 55% | +$34.03 |
| SHIB | Meme | 7 | 4L/3S | 50% | 33% | +$31.94 |
| PEPE | Meme | 14 | 3L/11S | 67% | 55% | -$5.88 |
| BCH | L1-Fork | 4 | 1L/3S | 0% | 0% | -$6.90 |
| BTC | L1-Major | 4 | 0L/4S | - | 0% | -$13.96 |
| LTC | L1-Major | 1 | 0L/1S | - | 0% | -$37.62 |
| ZEC | Privacy | 13 | 0L/13S | - | 31% | -$141.14 |
| UNI | DeFi/Infra | 14 | 5L/9S | 20% | 33% | -$230.99 |
Temporal analysis reveals consistent profitability across all three months, with November delivering the strongest returns (+$322) coinciding with the highest win rate (62%).
| Month | Trades | P&L | Win Rate | Cumulative |
|---|---|---|---|---|
| October 2025 | 53 | +$276.90 | 36% | $5,277 |
| November 2025 | 53 | +$321.86 | 62% | $5,599 |
| December 2025 | 53 | +$123.57 | 49% | $5,722 |
All three months produced positive returns. October achieved this with only 36% win rate, indicating the payoff ratio carried performance. November's 62% win rate drove the highest monthly P&L. Trade count was evenly distributed at 53 trades per month.
Returns are analyzed by coin category to identify sector-level alpha and risk exposure. All major categories except L1-Fork and Privacy contributed positively.
| Category | Coins | Trades | Long WR | Short WR | Net P&L | P&L/Trade |
|---|---|---|---|---|---|---|
| L2 | 1 | 13 | 100% | 75% | +$273.74 | +$21.06 |
| L1-Major | 5 | 24 | 71% | 47% | +$182.67 | +$7.61 |
| DeFi/Infra | 5 | 58 | 46% | 42% | +$179.02 | +$3.09 |
| Meme | 3 | 25 | 62% | 53% | +$159.98 | +$6.40 |
| L1-Alt | 2 | 22 | 67% | 53% | +$74.96 | +$3.41 |
| L1-Fork | 1 | 4 | 0% | 0% | -$6.90 | -$1.72 |
| Privacy | 1 | 13 | - | 31% | -$141.14 | -$10.86 |
The CryptoPrism signal system is a multi-model ensemble combining gradient boosting (LightGBM), recurrent networks (LSTM), temporal convolutions (TCN), and rule-based regime detection into a unified prediction framework. Each model captures a different temporal scale and feature modality, with a meta-learner aggregating their outputs.
| Model | Type | Input | Params | Role |
|---|---|---|---|---|
| LightGBM Base | Gradient Boosting | 46 tabular features | ~31K trees | Primary classifier |
| LSTM Extractor | 2-layer RNN | 30-day daily sequences | ~50K | Temporal embedding (daily) |
| TCN | Causal Dilated CNN | 168-hour windows | ~115K | Temporal embedding (hourly) |
| Regime Detector | Rule-based composite | BTC + breadth + FGI | 4 weights | Market state classification |
| Ensemble (Trishula) | LightGBM Meta-learner | 85+ combined features | ~31K trees | Final signal aggregation |
The regime detector combines four market signals into a composite score (range −1 to +1) that classifies the current environment and gates long/short exposure accordingly.
Full long allocation, shorts dampened by confidence
Full short allocation, longs dampened
Both sides allowed at reduced size
Regime gating improved backtest returns by +457.7% in April 2026 testing (+$142.39 with gating vs −$39.81 without). The Q4 2025 period was correctly identified as predominantly bearish, skewing the portfolio 126S/33L — capturing the bulk of returns from the short book.
The LightGBM base model (lgbm_news_augmented_v1) ingests 46 features from 7 engineered feature tables spanning price action, technical indicators, risk ratios, news sentiment, and market-wide sentiment. Features are sourced via a dual-DB architecture to ensure both coverage (cp_backtest) and freshness (dbcp).
| Source Table | Count | Features |
|---|---|---|
| FE_PCT_CHANGE | 5 | m_pct_1d, d_pct_cum_ret, d_pct_var, d_pct_cvar, d_pct_vol_1d |
| FE_MOMENTUM_SIGNALS | 5 | m_mom_roc_bin, m_mom_williams_%_bin, m_mom_smi_bin, m_mom_cmo_bin, m_mom_mom_bin |
| FE_OSCILLATORS_SIGNALS | 6 | m_osc_macd_crossover_bin, m_osc_cci_bin, m_osc_adx_bin, m_osc_uo_bin, m_osc_ao_bin, m_osc_trix_bin |
| FE_TVV_SIGNALS | 6 | m_tvv_obv_1d_binary, d_tvv_sma9_18, d_tvv_ema9_18, d_tvv_sma21_108, d_tvv_ema21_108, m_tvv_cmf |
| Source Table | Count | Features |
|---|---|---|
| FE_RATIOS_SIGNALS | 11 | m_rat_alpha_bin, d_rat_beta_bin, v_rat_sharpe_bin, v_rat_sortino_bin, v_rat_teynor_bin, v_rat_common_sense_bin, v_rat_information_bin, v_rat_win_loss_bin, m_rat_win_rate_bin, m_rat_ror_bin, d_rat_pain_bin |
| Source Table | Count | Features |
|---|---|---|
| FE_NEWS_SIGNALS | 12 | news_sentiment_1d/3d/7d, news_sentiment_momentum, news_volume_1d, news_volume_zscore_1d, news_breaking/regulation/security/adoption_flag, news_source_quality, news_tier1_count_1d |
| FE_FEAR_GREED_CMC | 1 | fear_greed_index (market-wide, 0–100 scale) |
| Feature Group | Count | All Coins (1,171) | Universe (25) | Status |
|---|---|---|---|---|
| Price (PCT/Momentum/Oscillator/TVV) | 22 | 100% | 100% | Full |
| Ratios | 11 | 100% | 94% | Near-full (6% null) |
| News Signals | 12 | 8% | 87% | Adequate (13% null) |
| Fear & Greed Index | 1 | 100% | 100% | Full |
Labels are generated from dbcp (production, 1,171 coins), while price features are loaded from cp_backtest (full history, millions of rows). News sentiment and Fear & Greed are loaded from dbcp. This dual-DB approach ensures the model trains on complete historical data while inference uses the freshest production tables.
Two deep learning extractors generate latent embeddings that capture temporal patterns at different time scales. The LSTM operates on 30-day daily sequences, capturing medium-term momentum and mean-reversion patterns. The TCN operates on 168-hour windows, capturing intraday microstructure and short-term dynamics.
Where $x_t \in \mathbb{R}^{12}$ is the input at timestep $t$, $h_t \in \mathbb{R}^{64}$ is the hidden state, $\sigma$ is the sigmoid function, and $\odot$ denotes element-wise multiplication. Two stacked layers with dropout $p=0.3$ between them. Final embedding: $\mathbf{e} = W_{\text{emb}} \cdot h_{T}^{(2)} + b_{\text{emb}}$ where $W_{\text{emb}} \in \mathbb{R}^{12 \times 64}$.
| Layer | Shape | Details |
|---|---|---|
| Input | (batch, 30, 12) | 12 features: residual_1d, volume_zscore, close_ret, daily_range, news_sentiment_1d, fear_greed_index, etc. |
| LSTM Layer 1 | (batch, 30, 64) | hidden_dim=64, dropout=0.3 |
| LSTM Layer 2 | (batch, 64) | Last hidden state h_n[-1] extracted |
| Embedding Head | (batch, 12) | Linear(64 → 12) — latent representation |
| Classification Head | (batch, 3) | Linear(64 → 3) — buy/hold/sell logits |
| Output | 14 features | lemb_0–lemb_11 + lstm_prob_buy + lstm_prob_sell |
Where $d_l$ is the dilation factor at block $l$, $K=3$ is the kernel size, and $W_s \in \mathbb{R}^{64 \times c_{\text{in}}}$ is the $1\times1$ shortcut convolution. Global average pooling: $\bar{\mathbf{h}} = \frac{1}{T}\sum_{t=1}^{T} \mathbf{h}_t$, followed by $\mathbf{e} = W_{\text{emb}} \cdot \bar{\mathbf{h}}$ where $W_{\text{emb}} \in \mathbb{R}^{16 \times 64}$.
| Layer | Shape | Details |
|---|---|---|
| Input | (batch, 8, 168) | 8 channels: residual_1h, volume, price_spread, close_open_dir, volume_zscore_7d, hour_sin, hour_cos, residual_vol_24h |
| Block 1 | (batch, 64, 168) | Conv1d(8→64, k=3, dilation=1) + BN + ReLU + Dropout |
| Block 2 | (batch, 64, 168) | Conv1d(64→64, k=3, dilation=2) + residual skip |
| Block 3 | (batch, 64, 168) | Conv1d(64→64, k=3, dilation=4) + residual skip |
| Block 4 | (batch, 64, 168) | Conv1d(64→64, k=3, dilation=8) + residual skip |
| Global Avg Pool | (batch, 64) | Temporal average across 168 timesteps |
| Embedding Head | (batch, 16) | Linear(64 → 16) — latent representation |
| Classification Head | (batch, 3) | Linear(64 → 3) — buy/hold/sell logits |
| Output | 18 features | emb_0–emb_15 + tcn_prob_buy + tcn_prob_sell |
The TCN's dilated convolutions (1, 2, 4, 8) with kernel size 3 give each output neuron a receptive field of 30 hours at the final block. With 4 blocks stacked, the effective context window spans the full 168-hour input. Causal padding ensures no future information leakage.
All models use strict walk-forward validation with temporal ordering to prevent look-ahead bias. Labels are generated from forward returns at 1, 3, 7, and 14-day horizons, classified into three classes (buy/hold/sell) using fixed thresholds.
| Label | Horizon | Threshold | Classification |
|---|---|---|---|
| label_1d | 1 day | ±3% | Buy (>3%) / Hold / Sell (<−3%) |
| label_3d | 3 days | ±5% | Primary target |
| label_7d | 7 days | ±7% | Medium-term confirmation |
| label_14d | 14 days | ±10% | Swing-trade horizon |
| Parameter | Value | Purpose |
|---|---|---|
| n_estimators | 500 | Maximum boosting rounds |
| learning_rate | 0.05 | Step size shrinkage |
| num_leaves | 63 | Tree complexity control |
| min_child_samples | 20 | Leaf minimum observations |
| subsample | 0.8 | Row sampling per tree |
| colsample_bytree | 0.8 | Feature sampling per tree |
| reg_alpha / reg_lambda | 0.1 / 0.1 | L1/L2 regularization |
| early_stopping_rounds | 50 | Patience on val multi_logloss |
Daily inference produces a continuous signal score for each coin in the universe. The score is z-normalized against a 30-day rolling window, and extreme z-scores (>1.5 or <−1.5) are flagged for directional conviction.
A validation IC-3d of 0.44 and test IC-3d of 0.31 are well above the institutional threshold of 0.05 for signal usefulness. The val-to-test degradation of ~30% is expected and within normal bounds for crypto alpha signals. The 74.4% classification accuracy reflects strong label prediction across buy/hold/sell classes. These metrics represent the final state after all 6 phases of the model quality ceiling improvement plan plus lunar cycle features.
This chapter presents the core model diagnostics expected in a quantitative research review: ROC curves per class, training/validation loss convergence, information coefficient progression, signal score distribution with statistical tests, confusion matrix, and probability calibration.
Per-class ROC curves show the classifier's ability to discriminate each label (buy/hold/sell) at varying threshold levels. AUC >0.70 indicates useful discrimination; the buy and sell classes both exceed 0.75, while the hold class is expectedly harder to separate.
The multi_logloss convergence curves confirm the model is well-fitted: training loss decreases monotonically, while validation loss stabilizes around round 350, with early stopping triggering at round 412 (patience=50). No signs of severe overfitting.
Rolling 20-day IC tracks the model's predictive power over time. The final model achieves Val IC-3d of 0.44 after all 6 improvement phases + lunar features. IC stability (low variance of rolling IC) indicates robust signal, not regime-dependent alpha.
The signal_score distribution (P(buy) − P(sell)) for Q4 2025 shows a left-skewed distribution centered around −0.14, consistent with the bearish regime. The 95% confidence interval is [−0.43, +0.14], with a z-score threshold at ±1.5σ gating the most extreme directional signals.
The confusion matrix at optimal threshold shows the model correctly identifies 74.4% of labels. The buy class has the highest precision (fewer false positives), while the hold class absorbs most misclassifications — acceptable since hold signals are not traded.
Calibration curves compare predicted probabilities against observed frequencies. A well-calibrated model produces points near the diagonal. LightGBM is generally well-calibrated out-of-the-box due to its log-loss objective.
The Q4 2025 out-of-sample return of +14.45% on 159 trades yields a t-statistic of 2.61 (p < 0.01), rejecting the null hypothesis that returns are indistinguishable from zero at the 99% confidence level. Combined with the cross-period consistency (Q1 2026: +13.02%, 651 trades), this provides strong evidence of persistent alpha generation.
The same model and exit configuration were evaluated on Q1 2026 (Jan–Mar 2026) as an independent out-of-sample period. Results confirm the strategy's robustness across different market conditions while maintaining consistent risk-adjusted performance.
| Metric | Q4 2025 | Q1 2026 | Combined |
|---|---|---|---|
| BTC Return | -26.2% | -23.1% | -49.3% |
| Strategy Return | +14.45% | +13.02% | +27.47% |
| Net P&L | +$722 | +$651 | +$1,373 |
| Trades | 159 | 651 | 810 |
| Win Rate | 49.1% | 49.2% | 49.2% |
| Profit Factor | 1.37 | 1.39 | 1.38 |
| Alpha vs BTC | +40.7pp | +36.1pp | +76.8pp |
| t-Statistic | 2.61 | 3.84 | 4.52 |
| p-Value | <0.01 | <0.001 | <0.001 |
The combined 810-trade sample across two independent quarters yields a t-statistic of 4.52 (p < 0.001). Both quarters show nearly identical win rates (49.1–49.2%), profit factors (1.37–1.39), and positive alpha versus BTC. The strategy generated +$1,373 on $5,000 capital while BTC declined 49.3%.