Navigation

2026-06-06 · forex orthogonal candidate discovery · batch 3 + 4 · pane B (loop-batch34)

Iteration 1 — register 20 candidates, write clean-room kernels, smoke, launch the screen

The 20 newly-shortlisted parameterless candidates (batch 3 + batch 4) are registered in the multi-slice probe with clean-room numpy/scipy kernels, smoke-validated on real EURUSD@5 bars (0 degenerate, 0 null), and queued through the same Spearman multi-slice screen (174 cell-slices) that adjudicated batches 1-2.

20
candidates registered
20/20
kernels non-degenerate (smoke)
2
new substrates (ret_dur · qcount)
174
cell-slices queued

▶ WHAT THE LOOP IS DOING NOW

Running --mode full --batches 3,4 --max-hours 9 --out batch34_results inside the hard-capped forex-loops.slice (200% CPU / 4 GB, CPUWeight 10 → yields to production + the crypto loop). Read-only ClickHouse via the probe's polite ch() helper. Real bars only, computed in RAM; only result JSONs + this HTML are written.

⏭ NEXT PENDING TASKS

What iteration 1 did

  1. Read all 20 candidate cards (findings/.../candidates/NN-<slug>.md) → extracted each estimator formula.
  2. Wrote 20 clean-room numpy/scipy kernels + REGISTRY lines declaring each substrate + BATCHES[3], BATCHES[4]. GPL references (MZanin irreversibility lib, crqa, Sage, robustbase, Hmisc) were reimplemented FROM FORMULA; permissive refs (ts2vg MIT, statsmodels/networkx/scipy BSD, librosa ISC, ordpy MIT) used directly or mirrored. Provenance recorded per kernel.
  3. Added 2 new substrates to prepare_substrates + roll_candidate: ret_dur = logret × bar-duration (for #63 Hoeffding-D) and qcount = per-bar quote_count (for #86 Fano factor — confirmed the column exists in fxview_cache.forex_bars).
  4. Smoke-validated all 20 on EURUSD@5 live_tail (30,000 bars → 7,450 eval points, 125 legal prod cols): every kernel finite, 0 nulls, std>0, range>0 — none degenerate; parameterless by inspection (no free knob).
  5. Launched the full 174-cell-slice screen in the slice with checkpoint/resume.

Smoke results — EURUSD@5 live_tail (real bars, measured)

Single-cell preview only — the binding numbers come from the 174-cell distribution in iter 2. topProd ρ = highest |ρ| vs a shipped column; worstCand ρ = highest |ρ| vs another new candidate.

#candidatesubstratestdrangenulltopProdρworst cand-partnerρ
25pomeau_irreversibility_lag1logret0.1632.110.00ask_close0.17guzik0.17
28guzik_increment_magnitude_asymmetrylogret0.0430.280.00lookback_twap_position0.25porta0.79
67categorical_rqa_determinism_logret_signsigns0.0050.050.00lookback_kaufman_er0.06sign_markov_slem0.54
70categorical_rqa_diagonal_entropy_logret_signsigns0.0190.170.00intra_intensity_qps0.12sign_markov_slem0.43
118critical_exponent_sign_wordsigns1.72100.00close_slope_rank_q0.14palindromic_defect0.23
119palindromic_defect_sign_wordsigns8.80560.00lookback_midprice0.17critical_exponent0.23
96sign_markov_entropy_production_rate_threestatesigns0.0020.040.00lookback_kaufman_er0.04psd_wiener_flat0.08
97sign_markov_slem_spectral_gap_mixing_threestatesigns0.0410.200.00lookback_garman_klass0.08rqa_determinism0.54
72psd_wiener_spectral_flatnessclose0.0270.230.00lookback_burstiness0.12psd_spectral_centroid0.95
74psd_spectral_centroid_normfreqclose0.0180.150.00lookback_burstiness0.16psd_wiener_flatness0.95
57hvg_mean_shortest_path_lengthclose3.4020.90.00lookback_burstiness0.22psd_spectral_centroid0.58
55hvg_degree_assortativity_coefficientclose0.0490.330.00lookback_burstiness0.20hvg_mean_path0.22
63hoeffding_d_midreturn_durationret_dur★0.0050.050.00session_fine_id0.15interquote_fano0.20
44ohlc_ordinal_pattern_indexohlc_bar4.34140.00bid_imbalance_ewma0.85critical_exponent0.03
86interquote_count_fano_factorqcount★18.91380.00lookback_intensity0.51hoeffding_d0.20
82sign_negentropy_logcosh_gaplogret0.00050.0050.00lookback_permutation0.38cumulative_residual_extropy0.65
38cumulative_residual_extropylogret2.6e-52.3e-40.00spread_high0.19sign_negentropy0.65
07right_quantile_weight_tailweightlogret0.2071.230.00lookback_permutation0.14sign_negentropy0.35
102left_medcouple_lower_tailweightlogret0.1931.220.00bid_close0.18porta0.41
27porta_increment_sign_asymmetrylogret0.0340.200.00lookback_twap_position0.25guzik0.79

★ new substrate. The single-cell preview already flags three intra-batch clusters to watch in the full screen (see below).

Predicted redundancy clusters (single-cell preview — confirm in iter 2)

Spectral pair (batch 3)psd_wiener_spectral_flatness ↔ psd_spectral_centroid_normfreq = 0.95. Likely a collapse-to-representative; also watch both vs batch-1 keeper spectral_log_slope.
Logret sign/magnitude asymmetryguzik (28) ↔ porta (27) = 0.79; pomeau (25) nearby. Three time-irreversibility items on the same logret substrate — expect at most one survivor.
Sign-stream structure — RQA determinism/entropy (67/70) ↔ sign-Markov SLEM (97) ≈ 0.43-0.54. Cross-batch: watch all four signs-items vs batch-2 keepers lziv_complexity_signs + sign_two_state_entropy_rate.
Candle ordinal vs order-flowohlc_ordinal_pattern_index ↔ bid_imbalance_ewma = 0.85 (vs a shipped column). Single cell — could be regime-specific; the distribution rule decides.

The 20 candidates — families & substrates

batch#candidatefamilysubstratekernel provenance
325pomeau_irreversibility_lag1time-irreversibilitylogretclean-room (MZanin GPL)
328guzik_increment_magnitude_asymmetrytime-irreversibilitylogretclean-room
367categorical_rqa_determinism_logret_signcategorical-RQAsignsclean-room (crqa GPL)
370categorical_rqa_diagonal_entropy_logret_signcategorical-RQAsignsclean-room (crqa GPL)
3118critical_exponent_sign_wordcombinatorics-on-wordssignsclean-room (Sage GPL; runs theorem)
3119palindromic_defect_sign_wordcombinatorics-on-wordssignsclean-room Eertree (Sage GPL)
396sign_markov_entropy_production_rate_threestatesign-Markovsignsclean-room (smoothed 3×3)
397sign_markov_slem_spectral_gap_mixing_threestatesign-MarkovsignsPyDTMC@MIT (reimpl)
372psd_wiener_spectral_flatnessspectralcloselibrosa@ISC (reimpl)
374psd_spectral_centroid_normfreqspectralcloselibrosa@ISC (reimpl)
457hvg_mean_shortest_path_lengthvisibility-graphclosets2vg@MIT + scipy@BSD
455hvg_degree_assortativity_coefficientvisibility-graphclosets2vg@MIT + networkx@BSD
463hoeffding_d_midreturn_durationcopula-free non-monotoneret_dur★clean-room (Hmisc GPL)
444ohlc_ordinal_pattern_indexcandle ordinalohlc_barordpy@MIT (reimpl)
486interquote_count_fano_factorduration count-dispersionqcount★elephant@BSD (reimpl)
482sign_negentropy_logcosh_gapnegentropylogretsklearn@BSD (reimpl)
438cumulative_residual_extropyinformationlogretclean-room estimator
407right_quantile_weight_tailweightdistributional taillogretclean-room (robustbase GPL)
4102left_medcouple_lower_tailweightdistributional taillogretstatsmodels@BSD-3
427porta_increment_sign_asymmetrytime-irreversibilitylogretclean-room

Cross-batch baseline — the 14 batch-1-2 KEEP set

Iter 2 tests the new 20 against these (in addition to among themselves). Same-substrate overlaps to watch: signs (lziv_complexity_signs, sign_two_state_entropy_rate), close-spectral (spectral_log_slope), visibility-graph (hvg_clustering, dhvg_indeg_outdeg_kld), durations (local_variation_lv, pietra_hoover_durations).

anderson_darling_a2 · dhvg_indeg_outdeg_kld · edge_spread_bps · hvg_clustering · kendall_taub_ret_spread · local_variation_lv · lziv_complexity_signs · mean_cosine_turning_angle · pietra_hoover_durations · sevcik_fd · sign_two_state_entropy_rate · spectral_log_slope · spread_sign_reversal_rate · mann_kendall_z (representative)

Method invariants (unchanged from batches 1-2)

Iteration 1 of the loop-batch34 pane · generated 2026-06-06T04:30Z · next: iteration 2 (aggregate + cross-batch + adjudicate) once the 174-cell screen completes.