Binary 'up/down in N bars' labels are essentially noise in 5min crypto — the signal-to-noise ratio is too low for sequence models to learn anything but the prior. Pure binary classification on raw direction is a dead end without a profitability-aware label (triple barrier). Always sanity-check label class balance and overfit speed in the first 2 epochs.
Salvage
Pipeline scaffolding, position sizing bug found and fixed in backtester.
Re-explore if
Only worth revisiting binary direction labels if combined with very strong event filtering or as an auxiliary head, not as the sole target.
R001
hybrid-sma
Triple Barrier Labeling
-10.6%
—
—
—
—
Hypothesis
Triple barrier with TP=0.75% / SL=0.5% / 60-bar timeout gives a profitability-aware label and should beat binary.
Method
Same LSTM 2x128 lookback=60, but label = triple_barrier_1.5to1, shorts on pred<0.5.
Result
PnL -10.6%, 169 trades, WR 40.8%, PF 0.98 (near breakeven). Severe overfit by epoch 1.
★ Lessons learned
Triple-barrier labels are only valid for the side they were generated for — you cannot symmetrically short on (pred<0.5). Class imbalance (62/38) plus no class weights collapses predictions to the prior. Sharpe computed on bar-by-bar equity with many zero-return bars is meaningless.
Salvage
Triple barrier label generator; bug report on shorts and Sharpe formula.
Re-explore if
Fixed TP/SL barriers only worth revisiting if combined with a volatility regime filter that keeps the barriers meaningful across market states.
R002
labeling
Class Weights + Long Only + Anti-Overfit
-27.4%
—
—
—
—
Hypothesis
Disabling shorts, adding pos_weight in BCEWithLogitsLoss, lowering LR and raising dropout should fix the R001 overfit and produce real discrimination.
PnL -27.4%, 256 trades, WR 52.3%, PF 0.70 (worse than R001). Predictions collapsed into [0.35, 0.53] range, mean 0.467.
★ Lessons learned
Class weights alone cannot rescue a model that has no discriminative signal — they just push the output distribution toward 0.5 without adding edge. WR going up while PF goes down is a classic 'more trades, smaller wins, bigger losses' trap. Regularization must be combined with a richer signal, not used as a substitute for one.
Similar to R002 — GRU at this size does not improve with fixed triple barrier.
★ Lessons learned
Shrinking the model does not save you from a label problem. GRU was a promising direction (cheaper, fewer gates) and would become the eventual workhorse, but only after the labels were upgraded to volatility-adaptive triple barriers. Architecture-only fixes cannot rescue weak labels.
Salvage
GRU code path; first signal that GRU is competitive with LSTM.
Re-explore if
Tiny GRUs are worth re-testing as fast probes when comparing new labels or features, before committing to full ensembles.
R004
mtf-filter
Volatility-Adaptive Triple Barrier (tb_vol)
—
—
—
—
—
Hypothesis
Scaling TP/SL/timeout by EWMA volatility (sigma) should produce labels that are meaningful across market regimes and unlock real alpha.
Method
TP=k_up*sigma, SL=k_dn*sigma, timeout=alpha*k_up bars. Swept k_up/k_dn from 1.8/1.2 to 25/15, alpha 6-96, lookback 20-120, on GRU vs LSTM, with a 15min auxiliary frame.
Result
GRU beats LSTM consistently (R012). Multi-timeframe 15min aux gave +795% (R020-R022). Walk-forward 4-fold validated (R025). BUT all results pre-R027 were invalidated by the sequence-gap bug — true best honest config (tb_vol 10/7 alpha=24, GRU lb=20) was only +15.9%, 87 trades, WR 46%, PF 1.53.
★ Lessons learned
Volatility-adaptive barriers are the right idea and stayed in every later paradigm — fixed barriers were never revived. GRU > LSTM was confirmed here as a permanent finding. The most important lesson is methodological: dropping timeout samples from training created gaps that the model couldn't reproduce live, inflating backtests ~60x. Always reconstruct the exact bar sequence the model will see in production.
Salvage
tb_vol label generator (k*sigma), GRU-as-default, 15min as best base timeframe, sigma clip discovery.
Re-explore if
Wider k_up/k_dn ratios worth re-sweeping only when paired with a new labeling paradigm; the parameterization is otherwise locked.
R027
other
Post-fix: Swing, Dual-Head, Regression
—
—
—
—
—
Hypothesis
After fixing the gap bug, rebuild credible results via swing labels, dual-head outputs, and continuous regression.
Honest results recovered. Regression has very high precision but is too selective for compounding.
★ Lessons learned
Two principles emerged that stayed true: (1) very low trade count + very high WR is not a strategy — compounding needs frequency; (2) dual-head outputs that decompose 'how much up' vs 'how much down' carry more information than a single scalar and would later resurface as MFE/MAE. Always report trade count alongside WR/PF.
Continuous regression labels worth revisiting if combined with event filtering to get more trades without sacrificing precision.
R036
architecture
MFE/MAE Dual-Head Regression (nuevo paradigma)
—
—
—
—
—
Hypothesis
Predicting MFE (max favorable excursion) and MAE (max adverse excursion) as continuous values gives richer information than a binary win/lose label.
Method
DualHeadGRU with MSE on both heads, horizons 60/120/240 bars. R036b sweeps TP/SL; R036c expands dataset to bear market.
Result
R036: +8.3% (H240, fold 5%), WR 69%, PF 1.70. R036b: +9.4% with TP=1.2 SL=0.7. R036c: -1.2% in bear vs B&H -23% — model learns when NOT to enter.
★ Lessons learned
MFE/MAE is the most informative continuous target tried in the project, and the principle 'model that knows when not to trade' (drawdown protection through abstention) becomes a core later thesis. Decomposing P&L into upside and downside potential is a transferable idea worth keeping in any future labeling system.
H120 r>1.5 ep2: +97.9% total, min fold +9.3%, 282 trades/fold, WR 54%, PF 1.49. Profitable in 4/4 folds. MaxDD 37%. Underperforms B&H in strong bulls.
★ Lessons learned
First proof that walk-forward 4-fold robustness is achievable but tells you something important: a strategy that is profitable in every regime can still underperform B&H during mega-bulls because it is selectively long. From here on, 4/4 walk-forward becomes the minimum acceptance bar, and 'beats B&H compound' becomes the second.
MFE/MAE walk-forward worth re-running once we have a higher trade frequency mechanism to capture bull markets.
R038
other
Loss Function Comparison
—
—
—
—
REJECT
Hypothesis
Standard MSE makes MFE/MAE predictions collapse to ratio ~1.0; one of 4 alternative losses should produce useful separation.
Method
Compare mse, mse_ratio, weighted, asymmetric on dual-head GRU.
Result
mse_ratio is the only winner: +16.2%, 28 trades, WR 61%, PF 1.72. MSE: -4.9%. Weighted: -13.6% (hacks the loss by zeroing MAE). Asymmetric: -0.6% (too conservative).
★ Lessons learned
Loss design matters more than architecture for regression labeling — the model will solve whatever you ask, including degenerate solutions like 'predict MAE=0 always'. When a regression target collapses, the answer is a ratio-based or contrastive loss, not more capacity. This pattern (loss-shapes-behavior) repeats with CE class weights in R055.
Salvage
mse_ratio loss function — kept as the standard for any future MFE/MAE work.
Re-explore if
Re-test asymmetric loss when paired with an exit-quality head where conservatism is desired.
Training only on 'interesting' bars filtered by volatility (event-driven sequences) lets the model focus signal and ignore noise.
Method
R046 introduced event filter (ATR>2x mean OR |returns|>p90, ~10.5% of bars). R048-R053 swept walk-forward + feature engineering + volatility filters.
Result
Massive improvement once event filtering was introduced. Binary labels + event-driven + lb=100 + vol_ultra reached +685% summed across 4 folds. 15min base timeframe confirmed optimal.
★ Lessons learned
Event filtering is the single biggest non-label improvement in the whole project — keeping only ~10% of bars (the ones where 'something is happening') gave a >40x compound jump and remains in every production config. Principle: feed the model situations where decisions matter, not the long quiet stretches between them.
Re-examine event-filter thresholds when adding a new feature family (e.g. order flow); the ~10.5% selection rate is calibrated for OHLCV-only inputs.
R054
features
Normalization Study
—
—
—
—
RECORD
Hypothesis
Choice of normalization (per-sequence vs partial vs global) materially changes generalization.
Method
R054/054c/054d compared full per-sequence MinMax vs partial schemes, repeated 3x.
Result
Full per-sequence MinMax wins consistently. R054c vol_tight lb=300 → +791% compound (record at the time).
★ Lessons learned
Per-sequence MinMax (renormalize inside each lookback window) prevents leakage of future statistics and is robust across regimes. Global / train-only z-score normalization, the default in many ML projects, is actively harmful here because BTC price scale changes by orders of magnitude across years. Always normalize inside the input window for non-stationary series.
Salvage
Per-sequence MinMax normalization — permanent in pipeline.
Re-explore if
Revisit only when introducing features with very different distributions (e.g., funding rates) where group-wise schemes may be needed.
R055
labeling
3-Class Labels
—
—
—
—
—
Hypothesis
Splitting the tb_vol label into 3 classes (SL=-1, timeout=0, TP=+1) gives the model a richer target than binary.
Method
CrossEntropyLoss with class weights ce_signal=[2.0, 0.5, 2.0]; GRU 2x128; tb3_vol.
Result
+824% summed (vs +685% binary) — clear win.
★ Lessons learned
The 3-class formulation is the single most important labeling decision in the project. Treating 'timeout' as its own class (rather than dropping it or folding it into binary) preserves a huge amount of information about indecisive market states. Weighted CE with up-weighted edge classes (2.0 / 0.5 / 2.0) keeps gradients focused on rare, decision-relevant outcomes.
Salvage
tb3_vol 3-class labels and ce_signal weights — production permanent.
Re-explore if
Only worth re-examining class weights when changing class balance (e.g., wider barriers that change the timeout share).
R056
features
Feature Importance Study
—
—
—
—
—
Hypothesis
Some of the 47 features are noise or harmful; permutation importance + correlation + ablation can identify them.
Method
Permutation importance, pairwise correlation analysis, and ablation studies on each feature.
Result
11 harmful features identified, clean set of 36 features established. Harmful: volatility_60, volume_ratio, volatility_12, hour_sin, volatility_24, obv_sma_20, obv_diff, macd, atr_14_pct, ema_9_21_cross, ema_21_50_cross.
★ Lessons learned
Negative-importance features actively hurt: they let the model overfit to spurious correlations. Surprisingly, MACD and several volatility horizons were harmful — likely because they encode information already present in cleaner form elsewhere. Always validate features one-by-one; never trust the 'more is better' heuristic in noisy financial data.
Salvage
CLEAN_36_FEATURES list — permanent in production. Permutation importance harness.
Re-explore if
Re-run feature audit any time a new family is added or the labeling changes substantially.
R057
features
Optimized Feature Sets
—
—
—
—
—
Hypothesis
An even more aggressive 'positive_only' set (24 features) might be more robust than clean 36.
Method
Compare clean 36 vs positive_only 24 on the same pipeline.
There is a trade-off between feature count and trade quality vs robustness: smaller sets give higher per-trade quality but worse coverage. The optimal point depends on whether the strategy is selective or always-invested; clean 36 won because it generalized across both modes.
Salvage
Both 24 and 36 feature lists kept as configuration options.
Re-explore if
Switch to positive_only 24 if a future selective strategy needs to maximize per-trade WR/PF over frequency.
R058
other
Compound Metric Study
—
—
—
—
—
Hypothesis
Compound returns (product of fold returns) is the right top-line metric, but how stable is it across seeds?
Method
Multiple seed runs on positive_only, vol_tight, lb=300, k15/15, thr=0.25.
Result
+4,783% compound peak. Fold 0 varies +86% to +262% between seeds — large variance.
★ Lessons learned
Compound returns multiply over folds, so a single bad fold tanks the whole number — making seed variance dangerous. Single-seed compound results are not trustworthy; you need ensembles or multi-seed validation to estimate the true distribution. This finding directly motivated R069/R070 ensemble work.
Salvage
Compound metric defined as product((1+fold/100))-1; seed variance documented.
Re-explore if
Re-examine seed variance whenever switching model architecture or labeling.
R059
labeling
3-Class + Clean Features Combined
—
—
—
—
—
Hypothesis
The 3-class label and clean 36 features should compound their gains.
Clean 36 beats positive_only 24 once 3-class labels are in place.
★ Lessons learned
Feature set rankings depend on the label — what was 'highest quality' with binary labels (positive_only 24) loses to the broader clean 36 once labels become richer (3-class). Never freeze a feature ranking without locking the label first; re-run feature studies after major label changes.
Salvage
Confirmation of clean 36 + tb3_vol as the canonical stack.
Re-explore if
Re-run if labels change again.
R060
features
Event Filter Comparison
—
—
—
—
—
Hypothesis
There is a better event filter than the vol_tight default, and the optimal lookback may differ from 100.
Method
6 event filters x 4 lookbacks x multiple k/thr configs.
vol_tight is the right event filter and lb=300 is the right lookback — this is the canonical recipe. The k/thr sweet spot (25/15, 0.40) was retained as a default; larger k values produce wider barriers that compound better when you also have an exit mechanism.
Salvage
Default thr=0.40, k=25/15, lb=300 — permanent.
Re-explore if
Re-sweep filters only when adding a new feature family that changes the volatility distribution.
R061
exit-logic
Exit Mode Comparison
—
—
—
—
—
Hypothesis
Dynamic/trailing/hybrid exits should outperform simple fixed TP/SL by capturing more of the move.
Method
Compare fixed vs dynamic vs trailing vs hybrid vs always-invested exit modes.
Result
Fixed exit wins: +3,440% compound. Simpler is better.
★ Lessons learned
Adaptive exits look smart but in walk-forward they overfit per-trade noise and underperform fixed barriers calibrated to volatility. The cleaner the exit logic, the less surface area for overfitting. This is a powerful 'simpler beats complex' result that recurs throughout the project (and only gets reversed much later by V115 with its layered cascade — and only because the layers are independently validated).
Salvage
Fixed exit as default.
Re-explore if
Adaptive exits worth re-examining ONLY when the exit signal itself is model-derived (e.g., predicted MFE peak), not heuristic.
R062
mtf-filter
Multi-Timeframe Features
—
—
—
—
—
Hypothesis
Adding 1h and 4h aggregated features should provide higher-timeframe context and improve decisions.
Method
Stack 1h and 4h aggregated features alongside 15min input.
Result
1h+4h features do NOT help. lb=300 already captures enough context.
★ Lessons learned
When the lookback is already 300 event bars (~weeks of context), additional higher-timeframe features are redundant. The model is already seeing the trend. This negative result repeats in R119 (multi-timeframe FILTER) and is now a project-wide prior: don't stack timeframes on a model that already has a long lookback.
Salvage
Justification for single 15min timeframe in production.
Re-explore if
Multi-timeframe features worth revisiting only with much shorter lookbacks (<50 bars) or when the higher TF carries clearly orthogonal info (e.g., daily SMA trend filter, which DID work in R094).
R063
exit-logic
Long/Short + SL Signal Exit
—
—
—
—
—
Hypothesis
Adding short trades using P(SL) and exiting on SL-signal should add alpha.
Method
Enable shorts when P(SL) crosses threshold; exit longs on SL-signal.
Result
Shorts don't work (P(SL) not precise enough). SL-signal exit inferior to always-invested.
★ Lessons learned
P(SL) is not symmetric with P(TP) — the model can predict 'this is bad' but not 'this will fall by X%'. Shorts have been tested multiple times and consistently fail; the recommendation is to treat BTC strategies as long-only until a dedicated short-only model is trained. Signal-based early exits also lose to staying invested.
Salvage
Confirmation that long-only is the right default.
Re-explore if
Shorts worth revisiting only with a separately trained model whose labels are short-specific (mirror tb3_vol for the short side).
R064
other
Sliding vs Expanding Window
—
—
—
—
PARKED
Hypothesis
A sliding (fixed-size) training window may generalize better to recent regimes than an expanding one.
Method
Compare sliding vs expanding window training in walk-forward.
More data > more recent data, in this regime — the model benefits from seeing the full BTC history including 2017-2018 cycles. The 'concept drift' argument for sliding windows did not materialize. Expanding window is the safer default.
Salvage
Expanding window as default in validation harness.
Re-explore if
Re-test sliding window once dataset extends past 2026-2027 and the oldest data may become genuinely stale.
R065
other
Timeframe Comparison
—
—
—
—
—
Hypothesis
The optimal base timeframe might not be 15min; also, sigma clipping might matter.
Method
Compare 5/10/15/20/30min, 1h, 4h. Test removing sigma clip [0.0005, 0.005].
Result
15min optimal across all comparisons. Removing the sigma clip cuts compound by ~2.5x.
★ Lessons learned
Two permanent settings nailed down here: 15min base timeframe and the sigma clip [0.0005, 0.005]. The sigma clip is critical and easy to forget — extreme volatility values create huge labels that mess up the loss; tiny values create degenerate barriers. Always clip volatility inputs to a sane range before label generation.
Salvage
15min lock, sigma clip [0.0005, 0.005] permanent.
Re-explore if
Re-examine timeframe only when adding non-OHLCV inputs (e.g., order book, funding) that may resolve at different rates.
R066
sizing
Position Sizing
—
—
—
—
PARKED
Hypothesis
Fractional or pyramided sizing may give better risk-adjusted returns than full position.
Method
Sweep position size from 25%-100%; test pyramiding (adding to winners).
Result
100% per trade maximizes compound (with higher DD). Pyramiding is marginal — not worth complexity.
★ Lessons learned
Maximum compounding requires maximum exposure when the model's edge is real; fractional sizing trades long-run growth for lower DD. Pyramiding adds complexity (state management, partial fills) without proportional return. Use full position unless DD is a hard constraint — then prefer fewer better trades, not smaller ones.
Salvage
100% position default; pyramiding shelved.
Re-explore if
Pyramiding and fractional sizing become relevant when running real money with regulatory or psychological DD limits, or after R116 Kelly framework is integrated.
R067
other
Multi-Confirmation Entry
—
—
—
—
—
Hypothesis
Requiring N consecutive bars of agreement before entering improves trade quality.
Method
Compare consec_1 (no confirmation) vs consec_3 vs consec_4.
Result
consec_3-4 confirmation improves trade quality by ~+47%.
★ Lessons learned
Cheap, robust filters at the decision boundary (require 3-4 consecutive 'go' votes) are far more effective than complex model changes. The same principle reappears in R070 (ensemble voting threshold). When a model is noisy near the decision boundary, requiring persistence in agreement is a high-leverage fix.
Salvage
consec_N filter — used in production.
Re-explore if
Re-tune consec_N if model output becomes notably less noisy (e.g., after ensembling) — the optimal N may drop.
R068
other
Always-Invested Strategy
—
—
—
—
RECORD
Hypothesis
Instead of selective trading, stay invested like B&H and only exit when the model signals danger.
Method
Default to long; exit on model danger signal (low P(TP) / high P(SL)).
This is the single biggest strategic shift in the project. In a long-run upward market like BTC, the cost of being out is much larger than the cost of being in during draw-downs. Use the model for DEFENSE (when to exit) rather than offense (when to enter). All later production configs (V2-V6) inherit this stance.
Salvage
Always-invested mode — permanent.
Re-explore if
Selective-only mode worth revisiting only for short-side strategies or for assets without a long-run drift.
R069
ensemble
Multi-Seed Validation
—
—
—
—
—
Hypothesis
Single-seed results are unreliable; running multiple seeds reveals true robustness.
Method
Train 5 seeds per config and compare seed-by-seed.
Result
5 seeds per config reveal large variance; single-seed results are not trustworthy.
★ Lessons learned
Single-seed metrics are essentially noise for this problem. The minimum acceptable validation is multi-seed (5+) per config. Even better is multi-seed multi-set (R084). This becomes a project-wide standard and the source of the R069 checkpoints that V2-V6 all share.
Salvage
outputs/round_069 5 seeds x 4 folds — production checkpoints used by V2-V6.
Re-explore if
Re-train seeds when the data window extends or labels change substantially.
R070
ensemble
Ensemble of 5 Seeds
—
—
—
—
—
Hypothesis
Ensembling 5 seeds with majority voting reduces variance and improves robustness.
Method
Aggregate 5 seeds with simple average vs voting (>=4/5 agree).
Ensembling pays for itself in robustness even when no single model is dramatically better. Hard voting (>=4/5) outperforms soft averaging because it filters out individual model overconfidence near the decision boundary. The 'require N agreements' lesson from R067 generalizes to ensemble members.
Salvage
5-seed voting ensemble — production permanent.
Re-explore if
Test 9-seed ensembles (later R089-R092) — already done, no gain. Worth re-checking when adding fundamentally different model families (e.g., XGBoost from R118 in a stacking setup).
R071
ensemble
Hybrid Always-Invested + Ensemble Voting
7,128%
—
4
—
RECORD
Hypothesis
Combine always-invested with 5-seed voting and tb_vol k_up=20 k_dn=10 thr=0.35 to break the +5,000% barrier.
Method
Stay invested; exit when >=4/5 models detect danger (P(TP)<0.25 OR P(SL)>0.65). k_up=20, k_dn=10, threshold=0.35.
Result
RECORD ~+7,128% compound, beats B&H in 4/4 folds, fold 2 +261% vs B&H +228%.
★ Lessons learned
The combination of always-invested + ensemble + voting + wide barriers (k_up=20) is the canonical winning recipe. Fold 2 was historically the hardest to beat (2022-2024 recovery); cracking it 4/4 means the strategy works across regimes. Wide barriers + ensemble voting reduce trade frequency but each trade is high-conviction.
Salvage
R071 hyperparameters are the production V2 reference config.
Re-explore if
Re-tune thresholds when the model outputs distribution shifts (e.g., after retraining on extended data).
R072
other
Multi-Seed Validation of R071
—
—
4
—
—
Hypothesis
R071 generalizes across different seed sets.
Method
Test R071 config on 3 seed sets: A (42-46), B (100-104), C (200-204).
Result
Set A 4/4, Set B 3/4 (loses fold 3 by ~6%), Set C 4/4 — 2/3 sets pass 4/4.
★ Lessons learned
Even after ensembling, the seed-set choice can flip a fold. The right validation requires multiple SETS of ensembles (3 sets of 5 seeds), not just a single ensemble. This is the strictest robustness check used in the project and revealed that R071 was nearly-but-not-quite robust enough.
Salvage
Three-seed-set validation protocol — became standard.
Re-explore if
Always run 3-set validation before declaring a config production-ready.
R073
labeling
Labeling Innovation (Exhaustive)
—
—
—
—
REJECT
Hypothesis
There is a better labeling than tb3_vol — speed-weighted, 5-class, efficiency, DSR, filtered, next-event, RL meta-layer, self-distillation, conditional barriers, multi-resolution consensus, trend scanning, path-quality weighted.
Method
13 different labeling methods systematically tested against the tb3_vol 3-class baseline.
Result
ALL 13 methods FAIL to beat tb3_vol 3-class.
★ Lessons learned
tb3_vol with 3 classes is a local optimum that is extremely hard to beat — and we now know why: (1) regression labels fail with GRU because CE concentrates gradients better; (2) timeouts (24% of labels) are essential information, not noise — methods that drop timeouts always underperform. The labeling search is closed; future gains have to come from features, exits, ensemble, or regime.
Salvage
Permanent prior: don't search for new labels unless a new model family is also introduced.
Re-explore if
Only worth re-running with a fundamentally different model family (Transformer with hierarchical attention, diffusion, etc.) that may exploit a different label structure.
R081
other
Ultimate Production Config
—
—
—
—
RECORD
Hypothesis
All breakthroughs (tb3_vol, clean 36, event-driven, lb=300, always-invested, ensemble voting, wide barriers) can be combined into one validated config.
Method
Stack all confirmed components and validate.
Result
Confirmed all components work together.
★ Lessons learned
Stacking confirmed components multiplicatively (each ~+20-50%) without negative interactions is rare in ML — it works here because each component addresses a different failure mode (signal, features, sequence, strategy, robustness). The recipe is composable and survives stacking.
Salvage
R081 production recipe — feeds into R082 grid and all V2-V6 deployments.
Re-explore if
Re-stack after any new confirmed primitive.
R082
exit-logic
Fine Grid + DD Protection (PENDING)
—
—
4
—
REJECT
Hypothesis
Fine-tune thresholds (step 0.02) and add drawdown protection to get 3/3 seed sets passing 4/4.
Method
Grid: exit_tp x exit_sl x reenter x DD protection on pre-trained R081/R069/R072 models.
Result
Notebook prepared, but during R083 review the equity double-counting bug was found — invalidated all R068-R082 always-invested results (inflated ~2x).
★ Lessons learned
Always recompute equity by simulating bar-by-bar including the closing transaction explicitly — do not add 'position_value' at the end. The R082 bug taught the team to never trust a backtest until the close-out logic has been audited line by line. Every later 'record' (R084, R110, R120) is recomputed with the fixed equity logic.
Salvage
Grid search harness; lesson on equity accounting.
Re-explore if
DD protection conclusively rejected later (R097); only revisit if a regulatory DD limit is imposed.
R110
other
R110 local reproduction
70,576%
239.2%
4
—
SUPERSEDED
Hypothesis
An external agent's V62->V115_cmp evolution can be reproduced at the dollar with our GRU checkpoints and validated locally.
Cross-team replication at the dollar is the gold-standard validation — when two independent code paths give the same numbers on the same checkpoints, the result is real. V66's +245% min alpha is the strongest worst-fold result in the project; V115 is higher compound but more complex. The lesson: a cascaded exit (peak_drop + ratchet + regime cooldown) can extract another ~2x compound over a single defensive exit.
Salvage
V115_cmp and V66 configs deployed as V5 and V6 servers; HybridV115Trader class.
Re-explore if
Re-validate any future evolution of these exit cascades against this baseline.
R112
exit-logic
V66 cd_loss_uniform sweep
56,724%
249.1%
4
32.0%
SUPERSEDED
Hypothesis
Sweeping the cd_loss_uniform parameter (cooldown after loss with uniform defensive stance) finds a better point on the freq/quality curve than V66's (4,48).
Method
Sweep cd_loss_uniform parameter on the V66 base.
Result
—
★ Lessons learned
Cooldown parameterization is a high-leverage post-loss filter — but small parameter changes can shift fold-by-fold consistency significantly. Always evaluate cooldown sweeps with 3-set seed validation to avoid locking a single-set optimum.
Salvage
Cooldown sweep harness.
Re-explore if
Re-sweep cooldown after any change to the underlying selection logic (e.g., adding MACD_div).
R113
hybrid-sma
V66 multi-attack sweep (A1+A2+A5)
70,576%
245.2%
4
27.7%
SUPERSEDED
Hypothesis
Combining multiple 'attack' configurations (A1+A2+A5 entry variants) yields a more diversified ensemble.
Method
Sweep combinations of A1, A2, A5 entry attacks together.
Result
—
★ Lessons learned
Combining multiple entry styles introduces correlation between them — diversification gains require the styles to fail in different regimes. Quantify cross-attack correlation before combining; otherwise the ensemble just doubles costs.
Salvage
Multi-attack ensemble harness.
Re-explore if
Re-test when a new attack style with low correlation to A1/A2/A5 is found.
R114
ensemble
Confidence-weighted voting (Agent C #1)
70,576%
245.2%
4
27.7%
SUPERSEDED
Hypothesis
Weighting seed votes by softmax confidence outperforms unweighted >=4/5 majority.
Method
Replace hard vote with confidence-weighted soft vote across 5 seeds.
Result
—
★ Lessons learned
Confidence weighting tends to underperform hard voting when individual models are mis-calibrated (overconfident in noisy regions) — this matches R070 finding. If you do weighted voting, calibrate the softmax outputs first (temperature scaling) on a validation fold.
Salvage
Soft-vote harness; reminder to calibrate before weighting.
Re-explore if
Re-test after applying temperature calibration to the seed outputs.
R115
other
Vote threshold sweep (asymmetric)
70,576%
245.2%
4
27.7%
SUPERSEDED
Hypothesis
The optimal vote threshold and min_votes are not yet at (>=4/5, thr=0.35).
Method
Sweep vote_threshold x min_votes on the V66/V115 stack.
Result
—
★ Lessons learned
Voting parameters interact strongly with cooldown — a stricter vote with shorter cooldown can be equivalent to looser vote + longer cooldown. Always sweep jointly with cooldown to avoid finding a fake local optimum on one axis.
Salvage
Vote+cooldown joint sweep harness.
Re-explore if
Joint-sweep again whenever cooldown logic changes.
R116
sizing
Position sizing (fractional Kelly, vol_scaled, dd_throttled)
70,576%
245.2%
4
100.0%
SUPERSEDED
Hypothesis
Sizing by fractional Kelly (using P(TP)/P(SL) estimates) outperforms fixed 100% in compound-adjusted terms.
Method
Implement Kelly fraction sizing using ensemble P(TP) and P(SL) outputs.
Result
—
★ Lessons learned
Kelly only works if the probability estimates are calibrated — uncalibrated softmax outputs over-size losing trades because P(TP) is biased high. Calibrate first; then a fractional Kelly (0.25x-0.5x) is the right starting point given parameter uncertainty.
Salvage
Kelly sizing harness with calibration hook.
Re-explore if
Re-test after temperature calibration of seed outputs.
R117
mean-reversion
Mean reversion strategies portfolio (EXPLORATION — new paradigm)
179,453%
-42.0%
3
18.8%
ITERATE
Hypothesis
Mean-reversion strategies (BB_revert, RSI_extreme, Z_score, MACD_div) are uncorrelated with V66 momentum and can complement it in a portfolio.
Method
Backtest 4 mean-reversion strategies on the same 4-fold walk-forward; reference V66 +70,576% compound, +245% min alpha.
Result
4 strategies tested in 94.1s. MACD_div emerges as the standout with +179,453% compound but min_alpha -42% (loses fold 2). It's higher-frequency (6,544 trades vs V66's 300) and orthogonal to V66.
★ Lessons learned
Mean reversion alone fails the worst-fold gate (-42% min alpha), but its uncorrelated payoffs are exactly what V66's selectiveness needs — high trade frequency in regimes where V66 is dormant. A pure mean-reversion strategy is a poor standalone but a great portfolio diversifier (proven in R120).
Re-test other mean-reversion candidates (Z-score variants, deeper BB) as additional portfolio sleeves.
R118
alt-model
XGBoost classifier as GRU alternative (EXPLORATION new model family)
0.5%
-5.3%
—
2.2%
REJECT
Hypothesis
A gradient-boosted-tree classifier (XGBoost) gives alpha independent from the GRU and can be stacked.
Method
Train XGBoost on the same clean 36 features + tb3_vol labels; integrate with V66 cascade. 191s runtime.
Result
XGB+V66 compound 245.8% (vs GRU+V66 +70,576%); min alpha -128%; beats B&H in 0/4 folds.
★ Lessons learned
Tree-based models can't compete with GRU on sequential 15min crypto data — they lack memory across the lookback window. XGBoost trained on summary-stat features could potentially work as a META-model on top of GRU outputs (stacking), but as a primary model it is decisively worse.
Salvage
XGB pipeline; possible future use as meta-learner for ensemble gating.
Re-explore if
Re-test XGBoost as a META-stacker (input = GRU ensemble outputs, output = entry decision), not as a primary.
R119
mtf-filter
Multi-timeframe filter (4h context on V66 15min)
66,750%
168.8%
4
26.1%
SUPERSEDED
Hypothesis
Adding a 4h context filter (EMA bullish, no extreme RSI, slope supportive, vol regime, or all combined) on top of V66 improves consistency.
Method
Test 5 MTF filter variants on V66 base; 544.8s runtime. Baseline V66 +70,576% / +245.2% / 27.7% MDD.
Result
—
★ Lessons learned
Third confirmation (after R062 and R096) that multi-timeframe filters do NOT help once the V66 stack already includes the daily SMA filter. Lesson upgraded to a hard rule: do NOT add more TF filters to V66-class strategies. Future MTF ideas should be tested as the SOLE higher-TF signal, replacing the daily SMA rather than stacking with it.
Salvage
Hard rule against TF-stacking; freed Colab budget for portfolio work (R120).
Re-explore if
Only revisit if removing the daily SMA filter, e.g., to test a pure 4h-based strategy.
Allocating between V66 (momentum) and MACD_div (mean-reversion, R117) in either uniform or regime-aware proportions produces a portfolio that beats either standalone.
Method
Pure math on per-fold PnL from R110 (V66) + R117 (MACD_div). 18 configs (11 uniform + 6 regime-aware + 1 baseline). No retraining.
Result
7 winners pass all gates (4/4 vs B&H). Top: regime_macd_F0_F1_F3 at +362,991% compound, +244.8% min alpha, 4,983 trades, MDD 21.0% — vs V66 baseline +70,576%, +245% min alpha, 300 trades, 27.7% MDD. ~5x compound improvement, ~16x trade frequency, lower MDD, same min alpha.
★ Lessons learned
The diversification thesis works at industrial scale: combining a low-frequency selective momentum strategy (V66) with a high-frequency mean-reversion strategy (MACD_div) in REGIME-AWARE proportions (heavy MACD in trending folds F0/F1/F3, V66-only in mega-bull F2) gives a 5x compound jump WITHOUT sacrificing the worst-fold alpha. Regime-aware beats uniform because each strategy has clear regime preference; the math is purely additive on PnL (no retraining cost). This is the new project record and the most important strategic discovery since R094 (daily SMA filter).
Salvage
Top config regime_macd_F0_F1_F3 (w_v66=0.25, w_macd=0.75 with regime overrides) ready for production design. Portfolio math harness reusable for any future pair of strategies.
Re-explore if
Extend with a third sleeve (e.g., XGB-meta from R118, or another mean-reversion variant) once two-sleeve portfolio is stable in production.
Forward labels + purged WF give honest classifier performance.
Method
Forward-label generation (no peek), purged WF with 5-bar gap. Re-train R121 binary.
Result
Real recall 15-49% (vs R121b's phantom 75%+). New honest champion: 'τ=0.3 hard else 25/75' +173K compound, +62 min α, 4/4 BH.
★ Lessons learned
[[classifier-label-leak]] [[r128-family-validated]] — forward labels are non-negotiable.
Salvage
Honest classifier champion in portfolio direction.
Re-explore if
Production deploy when V66 rotation needed.
R135
mean-reversion
Production-grade bar-by-bar portfolio simulator
—
—
—
—
REJECT
Hypothesis
A bar-by-bar simulator with V66 cascade + portfolio routing matches paper-trade reality.
Method
Build simulator. Replay R134 winner. Compare to R134 vectorized backtest.
Result
4 stacked bugs in initial version (selective trading, peak_drop on price, no trail ratchet, wrong params). Fixed in R136.
★ Lessons learned
Bar-by-bar simulators are bug magnets. R136 fixed all 4. Foundation for R173 audit.
Salvage
Bug-fixed simulator became R173 honest engine baseline.
Re-explore if
Already in use as R173 bug-fixed engine.
R136
other
R110 V66 reproduction VERIFIED (+70,576% at the dollar)
70,576%
239.2%
4
—
ACTIVE
Hypothesis
Can we reproduce R110's +70,576% V66 result offline on Hetzner CPU using the original outputs/round_069/ checkpoints?
Method
Port R110 notebook cell 4 'run_bt_detailed()' verbatim into scripts/run_r110_local.py. Recovered 20 walk-forward checkpoints (5 seeds × 4 folds) from Drive. Ran on Hetzner CPU.
Result
EXACT MATCH to R110 (+70,576%) but R173 audit later found this number had intra-bar lookahead bug. HONEST V66 = +42,636% / +193 min α / 4/4 BH.
★ Lessons learned
R135's prior +44% failure was due to 4 stacked bugs: (1) selective trading instead of always-invested, (2) peak_drop on price instead of avg_tp_bar, (3) no trail ratchet (3 levels), (4) wrong V66 params pd_lat=0.38 vs 0.50, pd_bear=0.20 vs 0.42. Closes the reproducibility gap.
Salvage
scripts/run_r110_local.py is now the canonical offline simulator for V66-family strategies. Hetzner CPU = viable backtest target. No Colab/RunPod needed for iteration.
Re-explore if
If a future deployment reproducibility check fails, this script is the baseline.
Can we reproduce R117's +179,453% MACD divergence offline?
Method
Port pipeline_R117_mean_reversion.ipynb from archive/r117 tag to standalone Python. Same fold splits, MACD computation via add_all_features.
Result
EXACT MATCH: compound +179,453.2%, per-fold [+540/+2506/+186/+276], min α -42 (R117: identical). Confirms MACD does NOT beat BH on F2.
★ Lessons learned
Both pillars of R128 family portfolio (V66 + MACD_div) now verified offline. Pure TA strategy, no model retraining. Very fast (1 min CPU). Min α -42 means MACD is a COMPLEMENT (high compound, weak floor), not a replacement for V66.
Re-evaluate if exchange microstructure changes invalidate the macd_hist signal.
R138
other
True bar-by-bar V66 + MACD portfolio simulation
70,576%
239.2%
4
—
SUPERSEDED
Hypothesis
R128 family used fold-aggregate uniform-daily approximation. Bar-by-bar simulation gives different results.
Method
Run V66 + MACD in same bar-by-bar loop, save full equity curves. Apply fixed-weight blend per bar.
Result
Fixed 75/25 V66/MACD → +116K compound +167 min α 4/4 BH. Fixed 50/50 → +151K /+96 /4/4. All weights with w_v66 ≥ 0.25 beat V66 alone in compound while preserving 4/4 BH. Trade-off compound ↔ min α is monotonic.
★ Lessons learned
Diversification effect is real, not just a math artifact. The compound/min α trade-off is fundamental — you can't get both V66's +245 min α AND MACD's compound boost simultaneously with simple fixed weights.
Salvage
Bar-by-bar simulator framework usable for any future portfolio experiments.
Re-explore if
If a new sleeve emerges that's orthogonal to V66, plug into this framework.
R139
labeling
R128 family re-validation with daily rebalance + R134 classifier
67,442%
218.8%
4
—
RECORD
Hypothesis
R128's classifier-driven allocation might be inflated by approximation. Bar-by-bar + R134 honest classifier gives the real number.
Method
Use R138's bar-by-bar equity curves + R134 forward-label classifier (purged WF) for daily allocation. Daily rebalance.
Result
R134 τ=0.3 hard else 25/75 → +173,031% compound, +62 min α, 4/4 BH (best classifier policy). R128d 'soft+25% floor' under honest classifier: +153,586% (vs reported +130,333% — 18% conservative).
★ Lessons learned
R128 family was approximately correct, not fundamentally broken. The R121b label leak inflated apparent recall but didn't change portfolio direction significantly. No classifier-driven policy with V66 weight < 0.50 keeps min α > 0.
Salvage
R134 honest classifier preserved; R128 family results re-baselined honestly.
Re-explore if
If a classifier with >50% recall emerges, retest this allocation logic.
val_loss of R141 (~0.50) was SAME as canonical. Only the BACKTEST revealed the disaster. Train metrics ≠ deployment performance. Mechanism: V66 thresholds calibrated for canonical-90 distribution; any input filter shift breaks V66 calibration.
Salvage
Event filter direction CLOSED loose side. Don't loosen filter without re-tuning V66 thresholds (eb/el/er/nb/nl/nr).
Re-explore if
If V66 thresholds are ever fully re-grid-searched, re-test relaxed filter under new thresholds.
R142
features
Tight event filter (return_percentile=95)
38.3%
-216.3%
1
—
REJECT
Hypothesis
If loose filter destroys (R141), tight filter (~5% bars) should produce more confident predictions and more alpha.
Method
Same as R141 but return_percentile=95. RunPod A5000 ~$0.03.
Result
ALSO FAIL: compound +38.3%, min α -216, 1/4 BH. Better than R141 (loose) but still catastrophic.
★ Lessons learned
Event filter direction CLOSED BOTH WAYS. Canonical 90-percentile is a global optimum. V66 thresholds are TIGHTLY calibrated. Mechanism: tight filter shifts model output distribution to extremes; V66's hardcoded thresholds over/under-trigger.
Salvage
Definitively close 'event filter tuning' as standalone direction.
Re-explore if
Only re-explore filter + threshold joint grid search if a new paradigm motivates it.
R143
labeling
Different labeling tb3_vol_15_10
6,363%
15.1%
4
—
REJECT
Hypothesis
Different k_up/k_dn ratios (15/10 vs canonical 10/7) capture different price moves and might give cleaner GRU signal.
Method
Retrain GRU 2x128 ensemble with tb3_vol_15_10 labels. Backtest V66 with canonical filter at eval. RunPod A5000.
Result
FAIL but cleaner than R141/R142: compound +6,363%, min α +15, 4/4 BH. The strategy stays coherent but 11× lower compound, 16× lower min α than canonical.
★ Lessons learned
Labeling change doesn't completely break V66 (kept 4/4 BH) but heavily reduces alpha. tb_vol_10_7 (current canonical) is well-calibrated. Similar lesson as filter: V66 thresholds are tightly coupled to label distribution.
Salvage
Confirms canonical labeling stays.
Re-explore if
Re-test labels only if combined with V66 threshold grid search.
R144
architecture
Bigger architecture GRU 2x256
-37.6%
-202.7%
0
—
REJECT
Hypothesis
More capacity (2x256 vs canonical 2x128) → richer representations → better predictions.
CATASTROPHIC: compound -37.6%, min α -203, 0/4 BH. Worst of R141-R144.
★ Lessons learned
More capacity → overfit. The canonical 2x128 sits at the right point on the bias-variance curve for this data. Confirms V66 is at a tight architecture optimum.
If sequence length doubles or feature count grows, capacity might need to grow proportionally.
R146
other
ATR-adaptive initial SL
70,576%
239.2%
4
27.7%
REJECT
Hypothesis
Fixed 10% SL is naive for BTC's variable volatility. ATR-adaptive should improve risk/reward.
Method
Replace fixed 10% with max(2·ATR, floor) and similar variants on canonical V66. 6 variants tested. CPU only.
Result
ALL ATR variants WORSE than canonical fixed 10%. Best: ATR 2.5x floor 7% gives +49K (vs canonical +70K). All have HIGHER MDD too.
★ Lessons learned
The 'naive' fixed 10% SL is actually optimal given V66's full exit cascade. ATR adapation interacts badly with the other exits (trail, DRSI, peak_drop). Confirms V66 components are co-optimized.
Salvage
Don't replace SL component alone — needs joint tuning of all exits.
Re-explore if
If full exit-cascade grid search is run, include ATR variants.
R148
labeling
Meta-labeling V66 + R134 take/skip filter
70,576%
239.2%
4
27.7%
REJECT
Hypothesis
R134 honest classifier as a take/skip filter on every V66 entry should improve precision (López de Prado meta-labeling).
Method
Tau threshold sweep (0.1-0.7) on R134 P(v66_zone). Skip V66 entry if p < tau.
Result
ALL thresholds reduce compound (best τ=0.1 → +3,681%). Skip rate 92-97% even at low τ. R134 predicts 'not v66 zone' too often → V66 misses most entries.
★ Lessons learned
R134 recall is 15-49% (per classifier-label-leak memory). At useful thresholds it filters out too many legitimate V66 trades. Meta-labeling needs a HIGH-RECALL primary classifier, R134 doesn't qualify.
Salvage
Confirms R134 limitations from earlier rounds.
Re-explore if
If a classifier with recall > 70% emerges, retest meta-labeling.
R149
other
Block bootstrap CI on V66 canonical
70,576%
239.2%
4
—
REJECT
Hypothesis
Is V66's +245 min α statistically robust or path-dependent?
Method
Block bootstrap (block=20 trades) per fold, 5000 reps. Report 5/50/95 percentile of compound and alpha.
Result
MIXED: F0 ROBUST (P(α<0)=0.000), F1 fragile (P(α<0)=0.109), F2 fragile (P(α<0)=0.073), F3 OK (P(α<0)=0.010). Worst-fold 5% percentile: -49.
★ Lessons learned
V66 has TAIL RISK in bull (F1) and recovery (F2) regimes — 7-11% probability of negative alpha under permutation. Historic record was favorable but partly luck-dependent. This drove R150 (circuit breaker) and informed deployment risk awareness.
Salvage
Critical info for V66 live trading risk management.
Re-explore if
Re-run after any V66 modification (e.g., adding pyramid in R163/R170-B).
R150
other
Max-DD circuit breaker
70,576%
239.2%
4
27.7%
REJECT
Hypothesis
Pause trading after X% drawdown for Y days. Should reduce tail risk found in R149.
Method
6 variants of (DD_threshold, pause_days). CPU only.
Result
ALL variants WORSE compound for marginal MDD reduction. Best: DD 20% / pause 30d gives +20K compound (vs canonical +70K), MDD 20% (vs 27.7%). Compound loss > MDD gain.
★ Lessons learned
Naive DD circuit breaker is too blunt. V66's existing trail+peak_drop+GRU danger cascade already handles risk. A circuit breaker that triggers on DD that V66 itself caused = double-exit.
Salvage
If volatility/regime-aware kill-switch designed in future, this gives baseline.
Re-explore if
Re-test only after smarter regime detection added.
R151
architecture
V66 long + SHORTS during cash gaps ★ STRICT-WIN
114,349%
321.6%
4
—
RECORD
Hypothesis
Canonical GRU's P(SL) head is informative both for V66 exits AND for entering SHORTS during V66 cash periods. Adds alpha V66 leaves on the table.
Method
When V66 in cash + P(SL) > tau + cooldown done → enter SHORT. Close on P(TP) > tau2 OR price moved against us OR 40h timeout. Tested 5 tau combos.
Result
★ Best R151-A (P(SL)>0.65, P(TP)>0.35, sl=8%): compound +212,591%, min α +245, 4/4 BH (3× V66!). 93 shorts, 56.6% WR. F0 doubles 435→880, F1 537→852.
★ Lessons learned
BREAKTHROUGH. ADD orthogonal sleeves to V66, DON'T modify V66's inputs/architecture. R151-A captures bear/correction alpha V66 misses without changing V66 itself. No retraining required.
Salvage
First deployment candidate of autonomous sprint. Needs perp (Binance BTCUSDT) for shorts.
Re-explore if
If perp funding rates change materially, re-run R160 friction stress.
MARGINAL: F0 ROBUST, F1 fragile (P(α<0)=0.048), F2 FRAGILE (P(α<0)=0.172, 5% percentile = -80), F3 OK. Worst-fold 5% α = -80.
★ Lessons learned
R151-A is path-dependent in F2 (recovery regime). Shorts amplify both upside AND downside. Drives R154 (regime filter) and R160 (friction stress).
Salvage
Quantified tail risk for deployment risk-sizing.
Re-explore if
Re-run after any modification to R151's short logic.
R153
other
Bootstrap CI on R151-B (more conservative)
114,349%
321.6%
4
—
PARKED
Hypothesis
R151-B with higher threshold should have better tail than R151-A.
Method
Same bootstrap on R151-B (P(SL)>0.70, sl=10%).
Result
AMBIGUOUS: tail risk SHIFTS from F2 (R151-A) to F0/F1 (R151-B). Different but not better overall.
★ Lessons learned
Tail risk is inherent to short-during-gap paradigm — moving the threshold redistributes but doesn't eliminate.
Salvage
R151-B is alternative for deployment if F2-bear concern dominates.
R154
exit-logic
R151-A + regime filter (skip shorts in recoveries)
250,538%
245.1%
4
—
RECORD
Hypothesis
R151-A is fragile in F2 (recovery). Disabling shorts during recovery regimes (recent N-day return > X%) should fix tail risk.
Method
7 variants of (lookback_days, return_threshold). E.g., skip shorts if 21d return > +15%.
Result
7/7 variants STRICT-WIN. Best: 21d>+15% → compound +250,538 (+18% over R151-A), min α +245, 4/4 BH. F2 PnL UNCHANGED across all variants — filter triggers in F0 (bear) not F2.
★ Lessons learned
Regime filter improves compound but does NOT fix F2 tail risk (the bootstrap fragility is path-dependent, not regime-fragile). F2's recoverable losses cluster in DOWN windows within recovery, not in steady-up periods.
Salvage
Best R154 config saved as alternative R151 variant.
Re-explore if
Re-explore with smarter regime indicator (HMM, etc.).
R155
labeling
SHORT-specific GRU (tb3_vol_7_10) on RunPod
—
—
—
—
REJECT
Hypothesis
Train a separate GRU with asymmetric short-favoring labels (k_up=7, k_dn=10).
Method
Same arch as canonical but tb3_vol_7_10. RunPod A5000 ~$0.03.
Result
Training complete, val_loss 1.03 (vs canonical 0.50). Used by R156 eval.
★ Lessons learned
Asymmetry chosen WRONG: k_dn=10 means SL barrier is FARTHER → FEWER SL labels → harder to learn drops. Corrected in R157.
R156
other
Dual-model: V66 longs + R155 shorts
70,576%
239.2%
4
—
REJECT
Hypothesis
R155 produces cleaner short signal than canonical R069 P(SL).
Method
Use canonical R069 for V66 long sleeve + R155 for short signal. Tau sweep.
Result
FAIL: R155 P(SL) WORSE than canonical for shorts. Best variant +52K (vs R151-A +212K).
Training complete, val_loss 0.84 (better than R155's 1.03 but still worse than canonical 0.50).
★ Lessons learned
Improved over R155 in val_loss. Eval in R158.
R158
other
Dual-model: V66 longs + R157 shorts
1,772%
-290.9%
3
—
REJECT
Hypothesis
R157's better val_loss → better short signal.
Method
Same as R156 but with R157.
Result
CATASTROPHIC: min α -290 to -311 across all 5 thresholds. R157's P(SL) is NOISY → wrong-time shorts.
★ Lessons learned
'Train short-specific GRU' direction CLOSED. Canonical R069 P(SL) remains the BEST short signal. Asymmetric labels make most outcomes Timeout (model can't distinguish TP vs SL).
R159
other
2026 OOT validation
-5.2%
13.8%
1
—
RECORD
Hypothesis
Declare 2026-01-01 → present as STRICT OOT. Evaluate all champions ONCE.
Method
Use fold-3 checkpoints (trained pre-2024) on the 2026 OOT slice. Test V66, R151-A, R151-B, R154.
Result
ALL 4 candidates beat BH in OOT 2026 (real bear, BH -19%). V66 +11.4% α, R151-A +13.8% α, R151-B +11.4%, R154 +13.8%. Not overfit to in-sample.
★ Lessons learned
OOT validation = mandatory gate. Strategies that beat BH in OOT 2026 are not just historical curve-fits.
ALL friction layers PRESERVE 4/4 BH. Worst case (all + half-Kelly): compound +89,759% (+27% over V66 +70K), min α +183. Still strongly positive.
★ Lessons learned
R151-A is execution-realistic. Half-Kelly sizing is a clean way to reduce variance. Min α drops from +245 to +183 with friction — still robust.
Salvage
Production R151-A config: half-Kelly + 0.01%/8h funding overlay.
Re-explore if
Re-run if Binance funding rates change >2× current level.
R162
sizing
R134 as POSITION SIZE multiplier on V66
70,576%
239.2%
4
—
REJECT
Hypothesis
Use R134's P(v66_zone) as size multiplier (25/50/75/100) per V66 entry.
Method
3 size schemes (hard, aggressive, soft).
Result
FAIL: all variants WORSE than canonical. R134 recall 15-49% → forces V66 to size DOWN at wrong times. Best: +6,278% vs canonical +70,576%.
★ Lessons learned
R134 recall too low for sizing application. R148 (filter) and R162 (sizing) both fail for same reason.
Re-explore if
Only if higher-recall classifier emerges.
R163
architecture
Pyramiding × always-invested V66 ★★ STRICT-WIN
198,893%
372.8%
4
—
RECORD
Hypothesis
CTA classic: add to position at +X% unrealized when GRU re-confirms. Captures bull tails V66 alone misses.
Method
5 variants of (trigger, add_size, max_leverage, min_hold). Multi-leg position management with weighted entry.
Result
ORIGINAL claim: +198,893% compound, +373 min α. R173 audit found 4 engine bugs (UNFUNDED LEVERAGE). HONEST: pyramid never fires (cap=0 blocks all 583 attempts). R174 confirmed: bug-fixed R163 = +42,636% IDENTICAL to V66. Phantom 100%.
★ Lessons learned
Pyramid is the FIRST mechanism to improve min α above V66's +245. F1 (bull) unchanged because gru_safe only fires at event bars (rare in steady bull). The selectivity (3 adds total in 8 years) is FEATURE not bug. Spot-only — no perp needed.
Salvage
Major deployment candidate. Cleaner than R151 (no perp).
Re-explore if
Sensitivity sweep in R170 found better config R170-B.
R165
other
2026 OOT for R163 pyramid
41.3%
60.3%
1
—
REJECT
Hypothesis
Validate R163 pyramid in 2026 OOT.
Method
Test 5 R163 variants + V66 + R151-A on 2026 OOT.
Result
Originally +41.3% OOT / +60.3% α. R173 audit shows phantom unfunded leverage. HONEST = identical to V66 alone.
★ Lessons learned
Pyramid CAPTURES BEAR-MARKET INTRADAY RALLIES. 2026 had a sharp rally within the broader bear; pyramid leveraged into it perfectly. Validates the additive paradigm with REAL data.
Salvage
R163 promoted to primary deployment candidate.
R166
other
COMBINED R163 pyramid + R151-A shorts
198,893%
372.8%
4
—
RECORD
Hypothesis
The two breakthroughs (pyramid + shorts) cover orthogonal regimes — should STACK.
Method
Single backtest with both sleeves active. Pyramid on long entries, shorts during cash gaps.
IN-SAMPLE super-additive because each sleeve fires at different regimes. F0 1322 > max(R163 676, R151-A 880). BUT R167 shows this is path-dependent (see R167).
Salvage
Mechanism understood; not deployed.
Re-explore if
If position sizing per sleeve is added to prevent overlap.
R167
other
2026 OOT for COMBINED
41.3%
60.3%
1
—
RECORD
Hypothesis
If R166's +454K is real, OOT 2026 should show massive alpha.
Method
Same OOT slice as R165, test all 4 variants.
Result
CRITICAL: COMBINED ≈ R151-A alone in OOT (both -5.2% / +13.8% α). The 2 shorts in OOT CANNIBALIZED the 1 pyramid opportunity (same cash-gap window).
★ Lessons learned
Super-additivity in backtest is PATH-DEPENDENT. In short OOT windows, sleeves overlap. R163 ALONE is the true winner. Methodology lesson: always validate combined strategies in OOT before deploying.
Salvage
Cleaner final ranking: R163 > R151-A > V66 in OOT.
Re-explore if
Re-explore if pyramid/short positions can be CONCURRENT instead of mutually exclusive (currently can't since both use cash).
R169
mtf-filter
R169: V66 backtest with R168 MTF-trained checkpoints
-55.9%
-222.2%
0
—
REJECT
Hypothesis
Validate R168 via V66 backtest.
Method
Standard V66 backtest using R168 60-feature checkpoints.
Result
FAIL: compound -56%, min α -222, 0/4 BH.
★ Lessons learned
Multi-timeframe direction CLOSED as standalone retraining.
R170
other
R170: dense pyramid sweep around R163 winner
228,349%
430.4%
4
—
RECORD
Hypothesis
R163's (0.10/0.50/1.5x/24h) may not be optimal. Dense sweep around it finds true optimum.
Original R170-B +257,754%. R173 audit: 6.05× inflation phantom leverage. HONEST: identical to V66 alone (517/517 attempts blocked).
★ Lessons learned
R163 was sub-optimal. Higher leverage + bigger add + slightly higher trigger improves both compound AND min α. Sweep was worth doing.
Salvage
R170-B promoted to FINAL deployment candidate after R171 OOT validation.
Re-explore if
Annual re-sweep as market regime evolves.
R171
other
R171: OOT 2026 for R170 sweep winners
53.0%
71.9%
0
—
REJECT
Hypothesis
R170 candidates need OOT validation to crown the true winner.
Method
Test V66, R163, 5 R170 variants on 2026 OOT slice.
Result
Originally +53% OOT / +71.9% α. R173 audit: same phantom root cause. HONEST = V66 alone (+12.4% α).
★ Lessons learned
Most aggressive variant (higher leverage + bigger add) wins both backtest AND OOT. Pyramid is robust — selectivity (filter on +12% unreal + GRU re-vote) prevents over-trading even with aggressive size.
Salvage
R170-B is the FINAL deployment leader. Backtest +257K / +415 / 4/4. OOT 2026 +53% / +71.9% α. Spot-tradeable, no perp, no funding cost.
R172
exit-logic
R172: R170-B with full instrumentation per fold
—
—
—
—
—
Hypothesis
If R170-B is real, per-fold instrumentation should match the aggregate.
Method
Full instrumentation: per-trade logs, cap snapshot, leverage tracker, pyramid event log.
Result
Per-fold cap reconstruction did NOT match aggregate. Trigger for R173 forensic audit.
★ Lessons learned
Instrumentation revealed 4 engine bugs ([[r173-pyramid-was-phantom]]). R170-B was 100% phantom.
Salvage
Saved deployment by triggering R173.
Re-explore if
Never. Pyramid direction closed.
R173
other
R173: bug-fixed engine for V66 + pyramid
42,636%
192.8%
4
—
SUPERSEDED
Hypothesis
Are R163/R170-B pyramid results real or simulation artifacts?
Method
Forensic audit by specialized agent. Found 4 critical bugs: (1) intra-bar lookahead in pyramid trigger, (2) intra-bar lookahead in V66 exits, (3) constant-base sizing, (4) UNFUNDED LEVERAGE. Implemented bug-fixed engine.
F0 +293/+115/-30/+34 (5%/p50/95% α). F1 +853 stable. F2 +428 p50 but P(α<0)=18.1%, worst-5% -82. F3 +239 stable.
★ Lessons learned
F2 recovery is path-dependent: shorts that win on avg yield losses under permutation. Documented tail risk.
Salvage
Confirms F2 fragility but base R151-A still beats V66 honest in all bootstrap reps.
Re-explore if
If a regime detector or sizing rule can specifically cut F2 tail.
R181
exit-logic
R181: regime-filtered R151-A under bug-fixed engine
136,242%
193.8%
4
—
ITERATE
Hypothesis
Does skipping shorts in recovery regimes (N-day return > threshold) fix R180's F2 tail risk?
Method
7 filter variants × 4 folds. All under bug-fixed engine. Compare F2 PnL/α directly.
Result
F2 PnL IDENTICAL (+428%) across ALL 7 variants. Filter never triggers in F2 — only F0. Regime filter does NOT address F2 fragility.
★ Lessons learned
F2 tail risk is path-dependent within F2's own short trades, not from misclassified recoveries. Simple N-day filter useless.
Salvage
Closes the regime-filter direction definitively.
Re-explore if
HMM-based regime detector (complex, untested).
R182
sizing
R182: R151-A with adaptive Kelly sizing based on rolling short WR
113,981%
193.8%
4
—
ITERATE
Hypothesis
Adjust short size based on rolling WR; cuts exposure during losing streaks.
Method
4 adaptive Kelly schedules (WR-5/10/20) + half-Kelly fixed vs full-notional baseline.
Result
All adaptive variants REDUCE compound 25-45% AND reduce min α. F2 α drops below base for all. Half-Kelly fixed: +76,873% / +178 min α (only viable risk-reduction variant).
★ Lessons learned
Short WR ~54% throughout (folds vary 50-58%); rolling WR doesn't detect F2-like degradation. Cuts winners.
Salvage
Half-Kelly fixed remains as conservative deployment variant: -33% returns, ~-50% variance, still 1.8× V66 honest.
Re-explore if
If a true regime signal is found that correlates with short-WR drop.
R183
other
R183: R151-A under bug-fixed engine with full per-fold instrumentation
113,981%
193.8%
4
—
ITERATE
Hypothesis
Per-fold trades + WR not stored in earlier metadata. Re-run R151-A with full instrumentation to surface in ranking.
Method
Same as R174 (R151-A bug-fixed engine) but tracks per-trade {side, ret, bar_in, bar_out}. Computes per-fold: trades, longs, shorts, wins, losses, WR, long_wr, short_wr, avg_win, avg_loss, profit_factor.
Result
Exact match to R174 baseline: +113,981% / +194 min α / 4/4 BH. 389 total trades, 55.01% WR. F2 shorts WR=39% (lowest, matches R180 tail-risk finding).
★ Lessons learned
F2 recovery shorts have lowest WR — F2 PnL comes from longs (62% WR), not shorts (39% WR). Tail risk is structural to F2 shorts.
Salvage
Data populates ranking page detail (per-fold trades/WR/long/short breakdown).
Re-explore if
If a new candidate strategy needs same instrumentation.
R184
other
R184: empirical re-execution of phantom strategies under bug-fixed engine to verify R173 audit concl
—
—
—
—
—
Hypothesis
If R173 audit reasoning is correct, R163/R170/R166 should collapse to V66 baseline under bug-fixed engine (because cap=0 blocks pyramid adds).
Method
Re-execute R163 best (trig=0.10), R170-B (trig=0.12), R170 trig=0.05, R166 combined, and V66 control under run_bugfix_engine. Compare honest compound vs original buggy.
Result
ALL 3 pyramid strategies collapse to EXACTLY +42,636% (V66 baseline). 78-83% of original alpha was phantom. R166 has minor R184 bug but conceptually = R151-A shorts honest (+113K, from R174).
★ Lessons learned
Audit R173 EMPIRICALLY CONFIRMED. Pyramid direction permanently closed under honest engine. The phantom alpha (155K+ inflated) came 100% from unfunded leverage.
Salvage
Now have honest values for R163/R170-B/R170 to display in ranking (= V66 baseline). Phantom badges are quantitatively justified.
Re-explore if
Pyramid would require fundamentally different design (true margin trading on Binance perp with real funding cost).
R185
ensemble
R185: V2 (GRU Ensemble always-invested) under REALISTIC-EXEC engine
7,781%
62.1%
4
—
REJECT
Hypothesis
V2 pre-audit compound (+7,641%) may be inflated like V66 was (1.66×). Re-run under REALISTIC-EXEC to find true number.
Method
Re-execute V2 (GRU Ensemble always-invested + uniform thresholds) under bug-fixed engine: detect@close[i] → execute@open[i+1]. Same V2 params from production_v2.yaml.
Result
Compound +7,781% (vs optimistic +7,641%, only 1.8% delta!). Min α +62.1 (new metric). 4/4 BH. Inflation factor 0.98× (essentially identical). Per-fold: F0=+327%, F1=+176%, F2=+297%, F3=+68%.
★ Lessons learned
V2 has no inflation because it only uses GRU danger voting (no trail/init_sl/peak_drop). Inflation comes from close-based threshold exits, not from execution price choice per se. V2's pre-audit number was already realistic.
Salvage
V2 confirmed deployment-grade. +62 min α is acceptable (lower than V6 +193 but still positive).
Re-explore if
If V2 needs more alpha, add trail or peak_drop (carefully calibrated).
R186
other
R186: V3 (hybrid_v3) under REALISTIC-EXEC engine
11,400%
44.4%
4
—
REJECT
Hypothesis
V3 has trail 10% + DRSI + GRU danger. Expect inflation like V66 (1.66×) under REALISTIC-EXEC.
Compound +11,400% vs optimistic +7,128% — 1.6× HIGHER (no inflation, DEFLATION). Min α +44.4. 4/4 BH. Per-fold: F0=+560%/41tr trail-dominant, F1=+164%/66tr trail-dominant, F2=+279%/46tr gru-dominant, F3=+75%/60tr gru-dominant. 213 trades total, 48% WR.
★ Lessons learned
When trail triggers at close[i] (= local min where stop fires), open[i+1] is often ABOVE close[i] (rebound after stop hit) → exec at open[i+1] gives BETTER price than at close[i]. So trail-based strategies tend to DEFLATE under REALISTIC-EXEC, not inflate. V66's 1.66× inflation came from peak_drop, not from trail.
Salvage
V3 confirmed deployment-grade. +44 min α is acceptable but lower than V66 +193.
Re-explore if
If V3 wants tighter trail (e.g., 7%) — could improve min α.
R187
exit-logic
R187: V4 (hybrid_v5 3-Regime Robust-5) under REALISTIC-EXEC
29,909%
99.7%
4
—
REJECT
Hypothesis
V4 has 3-regime adaptive trail + DRSI + GRU. Test inflation factor.
Compound +76,725% vs optimistic +168,759% (2.2× DEFLATION). Min α +266 vs optimistic +238 (HIGHER honest). 4/4 BH. Per-fold: F0=+376%/66tr, F1=+618%/103tr, F2=+505%/59tr, F3=+272%/75tr. 303 trades, 56% avg WR. BEATS V6 V66 honest (+42,636% / +193) by 80% compound + 73 min α.
★ Lessons learned
V5 V115_cmp = MEJOR producción que V6 V66 incluso honest. ATR-adaptive SL + regime-split trail_tight + peak_drop work synergistically. The +30K min α gap vs V66 comes from V5's tighter SL clip (3-10% vs V66 fixed 10%) catching more loss in bear regimes.
Salvage
V5 V115_cmp confirmed strongest deployment-grade strategy honestly. Should NOT be deprecated in favor of V6.
Re-explore if
If V5+R151-A shorts combine in honest engine — could be the next deployment champion.
R189
other
R189: comprehensive per-fold instrumentation of all valid honest variants + V5+shorts upside
113,981%
193.8%
4
—
ITERATE
Hypothesis
Close per-fold trades/WR gap for R173/R174 variants. BONUS: does V5 V115_cmp + R151-A shorts beat V5 alone enough to justify futures API?
V66 +42,636%/+193 / R151-A full +113,981%/+194 / half-K +76,873%/+178 / conservative +60,539%/+169 / V5+shorts +111,195%/+125. CRITICAL: V5 alone +76,725%/+266 BEATS V5+shorts on min α (-53% degradation). Futures API NOT worth implementing.
★ Lessons learned
Shorts addon works on V66 (+193 baseline) because adding +1 min α is neutral. On V5 (+266 baseline), shorts pull worst-fold DOWN (-53%). The shorts edge captured by R151-A on V66 is ALREADY captured by V5's tighter cascade (ATR-adaptive SL + peak_drop + regime cooldown). Adding shorts to V5 = double-counting alpha + introducing futures risk for zero net benefit.
Salvage
Definitive: V5 V115_cmp standalone is the optimal production strategy. Don't deploy R151-A futures combo. Dashboard collector now merges R189 per-fold data into all matching honest entries.
Re-explore if
Only if shorts logic is fundamentally redesigned to target a market regime V5 doesn't already cover (e.g., extreme bear -50%+ moves).
Pyramid was phantom (R163/R170/R184) due to cap=0 bug. With 50% cap initial + 50% reserve for REAL adds, can pyramid mechanic add alpha to V5 V115_cmp baseline (+76,725% / +266 min α)?
Pyramid direction PERMANENTLY closed even under honest accounting. The phantom alpha that R163/R170 showed was 100% from the bug. Initial cap reduction (50%) destroys compound faster than pyramid adds can recover. V5 cascade already captures the upside that pyramid would have harvested.
Salvage
Negative result valuable — saves time exploring pyramid variants in future. R&D effort redirected to extended exits (R191), cascade tweaks (R192), new architectures (R193 TCN).
Re-explore if
Only with fundamentally different paradigm — e.g., true margin trading on futures (not available for Spain account) or fractional Kelly scaling based on prediction confidence.
R191
exit-logic
R191: V5 V115_cmp + 6 extended exit conditions
76,725%
265.9%
4
—
RECORD
Hypothesis
V5 +266 min α might be tightened with extra exit conditions (atr_z spike, drsi tighter, rsi confluence, slope reversal, etc).
Method
Tested 6 extra exit types added to V5 V115_cmp cascade: atr_z_spike, drsi_75, drsi_oversold, rsi_confluence, slope_neg, double_atr_drsi. CPU only, no retraining.
Result
NONE improve V5 baseline. atr_z_spike OVER-exits (compound +1,479%, min α -90). drsi_oversold ties min α +266 but loses compound. All others underperform. V5 cascade well-calibrated already.
★ Lessons learned
V5 V115_cmp's existing 5-exit cascade is structurally optimal for its labeling+architecture. Adding more exits causes over-exiting → loses compound without improving min α. Direction CLOSED for marginal tweaks.
Salvage
Two consecutive negatives (R190 pyramid, R191 exits) confirm V5 is at local optimum. Need step-change: different sizing logic, new architecture (R193 TCN), or new labeling (R194).
Re-explore if
Only if a fundamentally new feature is introduced (e.g., MTF after lookahead audit, cross-asset).
R192
sizing
R192: V5 V115_cmp + DYNAMIC position sizing based on prediction confidence
76,725%
265.9%
4
—
RECORD
Hypothesis
V5 might be improved by sizing proportionally to prediction confidence: high confidence → 100%, low confidence → 40%. Reducing low-conf exposure should improve min α.
ALL FIVE variants underperform V5 baseline (+76,725% / +266 min α). Best: anti_confidence +71,858% / +265.3. Worst: combined +27,453% / +25. Reducing position size kills compound, doesn't protect min α (V5 cascade already exits well).
★ Lessons learned
V5's '100% always' sizing is structurally optimal. The cascade catches bad trades via exits, not by reducing entry size. Three consecutive negatives (R190 pyramid, R191 exits, R192 sizing) confirm V5 is local optimum for current architecture+labeling+features.
Salvage
Direction CPU-tweaks definitively closed. Pivot to RunPod GPU step-change: new architecture (R193 TCN), new labelings (R194 tb_vol variants), or new features (multi-timeframe after audit #74).
Re-explore if
Only if V5's prediction confidence calibration is REPLACED (e.g., new architecture with better-calibrated confidence outputs).
R195
other
R195: V5 V115_cmp + margin leverage 1.0x..2.0x
9,152,200%
924.6%
4
—
RECORD
Hypothesis
V5 cascade has tight init_sl=10%. With margin leverage, init_sl exits BEFORE drawdown reaches liquidation threshold (25% at 2×). USDC interest 0.0125%/day is negligible.
ALL levered variants BEAT V5 baseline with HIGHER min α. 0 liquidations across all folds. 1.25× → +297K compound (+120 min α improvement). 1.5× → +1M compound (+268 min α). 2.0× → +9M compound (+659 min α). USDC interest negligible (0.026% of compound).
★ Lessons learned
V5's tight init_sl=10% protects against liquidation even at 2× leverage. The cascade exits LONG before drawdown reaches the 25% liquidation threshold. Backtest doesn't model flash-crashes, slippage spikes, API failures — those COULD trigger liquidation in real life. Conservative deployment: 1.25× balances upside (+4× compound) with safety (more buffer to liquidation).
Salvage
V11 candidate identified: V5 + 1.25× leverage on margin. +297K compound, +386 min α, 0 backtest liquidations. Requires margin API (now enabled on V5 account). Deploy after V7 (R151-A) stable in paper-trade.
Re-explore if
If V11 paper-trade validates: try 1.5× variant. If liquidation events observed: drop to 1.10× ultra-conservative.
R196
other
R196: stress test of R195 leveraged V5 with realistic adversities
—
—
—
—
—
Hypothesis
R195 showed V5 + leverage 1.25× yields +297K with 0 liquidations. Real-world has slippage, API delays, gaps. Will V5 leveraged survive realistic adversities?
Flash crashes alone don't kill V5 (init_sl handles them, 0 liquidations). BUT slip 2% destroys compound from +76,725% to +79% at 1.0× baseline. Slip 5% = -100% total loss at ALL leverages. Gap 2% same. WORST CASE (slip 5% + delay 3 + gap 2% + flash): -100% all leverages.
★ Lessons learned
CRITICAL: V5 baseline (+76,725% honest) ASSUMES 0.01% slip per trade. With realistic slip 0.5-2%, compound collapses 99%+ even at 1.0× (no leverage). R195 leverage finding was a MIRAGE that depends on PERFECT execution. Leverage AMPLIFIES the fragility but isn't the root cause — V5's high-frequency cascade is hyper-sensitive to slippage.
Salvage
V11 (V5+leverage) PAUSED until V5 live slippage measured. If avg live slip < 0.5%, R195 leverage might still be viable. If > 1%, V5 itself is over-optimistic. URGENT: audit V5 bot's actual fill prices vs close.
Re-explore if
After live V5 slippage audit shows <0.5% avg. Then re-test 1.10× leverage with corrected slip model.
R197
other
R197: V5 with higher reenter thresholds × slippage stress
76,725%
265.9%
4
—
RECORD
Hypothesis
Higher reenter threshold = fewer trades = more robust to slippage. R197 sweeps reenter +0.05/+0.10/+0.15/+0.20 × slip 0/0.1/0.5%.
V5 baseline WINS at all slip levels. Higher reenter destroys alpha: +0.05→+9K compound (was +76K), +0.10→+414 compound. Slip effect on V5 baseline: 0.01%→+76K/+266, 0.1%→+38K/+203, 0.5%→+3.5K/+15 (still positive!).
★ Lessons learned
V5 baseline already optimal — increasing selectivity removes more GOOD trades than BAD ones. The 'high-freq hurts slip' hypothesis was WRONG. V5 IS robust to plausible slip (0.1% slip still gives +38K/+203). R196 worst-case (2% slip) was unrealistic.
Salvage
Confirms V5 V115_cmp is the deployment champion (no direction beats it after 7 attempts). At realistic live slip 0.01-0.1%, V5 backtest is achievable.
Re-explore if
Different paradigm entirely (e.g., new architecture via RunPod, cross-bot ensemble, multi-timeframe).
Combine V5 and V66 cascades: defensive (exit if either) or aggressive (exit if both) or regime-conditional (V66 in bear only). Mixed cascade might improve risk-adjusted returns.
Method
5 modes tested: baseline_v5, baseline_v66, defensive, aggressive, regime_v66_bear. Same GRU predictions, different exit rules.
Result
V5 baseline wins all. defensive +63K/+235 (worse min α). aggressive +72K/+252 (close but loses). regime_v66_bear = aggressive (identical pattern). V66 cascade is strictly inferior, blending it with V5 only adds drag.
★ Lessons learned
Cascade ensemble doesn't help when one cascade is strictly inferior. V66 was the predecessor; V5 cascade is its improvement. Mixing adds noise. After 8 R&D directions, V5 V115_cmp is uncontested CPU local optimum.
Salvage
Confirms V5 standalone is the deployment champion. Combined with R195 leverage finding, V5 + 1.25× margin leverage (V11 candidate) is the only meaningful improvement found.
Re-explore if
After GPU experiments (R193 TCN retry, R194 alternative labelings, multi-task GRU) — different GRU base may unlock new cascade options.
R199
ensemble
R199: isotonic probability calibration on V5 ensemble outputs
V5 ~45% losing trades may have predictable features. Train RandomForest secondary on (entry context → was profitable). Filter pre-trade.
Method
V5 V115_cmp = primary. Generate F0/F1 entries with context (regime, ATR, DRSI, slope, P(TP), P(SL)) + outcomes. Train RF (200 trees, depth 6). Apply to F2/F3 with veto thresholds 0.40-0.60.
Result
Best variant (keep 81%): +72,623% / +254. Worse than V5 baseline at ALL veto levels. RF can't identify losing trades reliably enough.
★ Lessons learned
V5's 45% loss rate is IRREDUCIBLE NOISE at entry-time features. The losing trades don't have predictable signatures in (regime, vol, RSI, slope, GRU probs). Meta-labeling direction closed.
Salvage
Closes orthogonal-filter approach as path to beat V5.
Re-explore if
Only with richer feature set (e.g., order book, macro, on-chain) — out of scope for this sprint.
R203
sizing
R203: V5 V115_cmp + continuous vol-adjusted Kelly sizing
981,182%
529.3%
4
—
RECORD
Hypothesis
R196 showed V5 baseline dies at slip 2%. Does vol-Kelly amplify slip fragility (bigger positions → more slip) or survive better?
Vol-Kelly beats V5 baseline at EVERY slip level. Slip 0.5%: +10,869%/+82 vs V5 +3,563%/+15 (3× / +67). Slip 1%: vol-Kelly +11%/-137 survives, V5 dead. 0 liquidations.
★ Lessons learned
Inverse-vol scaling AUTO-HEDGES against slip: high vol periods (worst slip) get smaller positions; low vol (less slip) get bigger. Vol-Kelly maintains multiplicative advantage at all stress levels.
Salvage
Vol-Kelly DEPLOYMENT-GRADE. V11 candidate fully validated. First sprint direction surviving stress test.
Re-explore if
If slip dynamics change in deployment (monitor live).
R204
sizing
R204: vol-Kelly with lookahead bugs FIXED
1,001,557%
531.0%
—
RECORD
R205
other
R205: real slippage measurement from production logs
—
—
—
—
—
R206
sizing
R206: R204 honest vol-Kelly under real-slip stress
—
—
—
—
—
R210
exit-logic
R210: multi-task cascade on F0
—
—
—
—
—
R216
architecture
R216: shift-random test on GRU predictions
—
—
—
—
—
R217
sizing
R217: vol-Kelly variants sweep — find the full margin roster
8,835,065%
919.2%
—
RECORD
R218
other
R218: V10 shorts feasibility under Binance margin BTC borrow rates
25,214%
120.3%
—
REJECT
R219
other
R219: V10 shorts with R183 canonical max_hold=480
—
—
—
—
—
R220
sizing
R220: V7 vol-Kelly stress under realistic USDC margin rates
1,001,557%
531.0%
—
RECORD
R222
sizing
R222: V7 vol-Kelly LONG + R151-A shorts combined on Binance margin
861,812%
171.2%
—
ITERATE
R223
sizing
R223: balanced long-short pure signal (no V5 cascade)
18,439%
63.1%
—
REJECT
R225
sizing
R225: GARCH(1,1) one-step-ahead vol forecast vs rolling-30d in vol-Kelly
—
—
—
—
—
R226
exit-logic
R226: Hurst exponent regime filter as V5 entry overlay