# An Explainable Alternative to FinRL: A White-Box Signal Engine Built for SEC, SEBI and IOSCO

> FinRL is the most influential open-source reinforcement-learning framework in quantitative finance. It is also a black box. We built Student One because a black box cannot be taken to a regulator. This is the white-box alternative — supercomputed enumeration, every decision auditable, every result reproducible.

**Author:** Student One Research  
**Published:** June 21, 2026 (2026-06-21)  
**Reading time:** 12 min read  
**Tags:** FinRL Alternative, Explainable AI, White-Box, Reproducibility, Compliance, SEC, SEBI, IOSCO, Signal Discovery  
**Canonical URL:** https://dashboard.studentone.tech/blog/explainable-alternative-to-finrl-white-box-signal-engine  
**License:** CC BY 4.0

---

There is already a very capable open-source project for reinforcement-learning in quantitative finance. It is called **FinRL**, it is maintained by the [AI4Finance Foundation](https://ai4finance.org/), it has 15,500 stars on GitHub, and it has been cited in NeurIPS, ICAIF and Springer’s Machine Learning journal. If you are a researcher or a student who wants to learn how to train an A2C, DDPG, PPO, SAC or TD3 agent on stock data, FinRL is excellent. We have learned a great deal from reading it.

We built Student One because of a different problem. FinRL, like every deep-reinforcement-learning trading framework, produces a neural-network policy. A policy is a function from market state to action. It is, structurally, a black box. You cannot show a regulator a black box. You cannot show a risk committee a black box. You cannot show a bank a black box. And in 2026, in the markets we care about, that single fact decides whether a research artefact can become a product or not.

## The Origin Story

This company began with two intrigues.

The first was [Numerai](https://numer.ai/). Numerai takes raw financial data, anonymises it, scales it, strips every recognisable feature — and still hands its tournament participants something from which signal can be extracted. Our [founder, Shubham Sood](https://www.linkedin.com/in/shubham-sood-b0a080101/), kept turning that observation over. If the labels are gone, the tickers are gone, the timestamps are scrambled — what is left that a model can still learn from? The answer he arrived at, and the answer that became the foundation of this company, was:

> **It is all waves. It is all Fourier.** The signal is not in the names of the instruments. The signal is in the spectral content of the underlying processes. Strip everything else away and the wave structure is what remains. That is the thing worth extracting.

The second intrigue was FinRL. The AI4Finance Foundation had done something most academic projects never manage: they had shipped a working, end-to-end, open-source pipeline that took an actual deep-RL agent from `train.py` to `test.py` to `trade.py`. It was the first time anyone had publicly assembled the full chain. And it was technically ambitious in a way the field needed.

The only problem with FinRL was that it could never become a product in today’s regulated markets. It had its own technical limitations — a coupled three-layer architecture, hand-rolled evaluation loops, single-split backtests, no multiple-testing correction — but those are fixable. The fundamental problem was that it could not be *explained*. Its black-box nature is exactly what inspired us to build an explainable version of it. Something you could take to a regulator.

So our enumeration engines were built to not just technically surpass what AI4Finance had done, but to make every decision a pristine white box. From the first commit, `PermuCheck&trade;` and `RunForward&trade;` were built around one rule: **every number that leaves this system must be traceable to the indicator, the parameter set, the data window, the gate, and the seed that produced it**. Nothing is implicit. Nothing is interpolated. Nothing is a neural-network weight.

## Two Different Questions

The clearest way to describe how we differ from FinRL is to notice that we are not asking the same question.

**FinRL asks:** *"Given that an edge exists in this market, what policy should an agent execute to maximise reward?"* The framework then trains a neural network to approximate that policy.

**Student One asks:** *"Is there a statistically defensible signal in this data at all — one that survives permutation null, multiple-testing correction, and a battery of out-of-sample protocols — and if so, can we describe it in terms a regulator can audit?"*

Policy training is downstream of signal discovery. We do signal discovery. Whether you then wrap a policy around the surviving signals is your business, not ours. We do not place orders. We are not a broker. We are a measurement device for whether a candidate phenomenon is real.

## Walk-Forward, Stated Properly

FinRL’s standard tutorial pipeline splits the calendar into a training set and a trading set — one cut, one test. The 2026 tutorial trains on 2014–2025 and trades on 2026-Q1. That is a single hold-out. It is not walk-forward in any rigorous sense.

The out-of-sample tests we actually ship in our engine, by name, from the code:

- holdout — strict train/test split with a documented embargo.

- walk_forward — true rolling, fixed-window walk-forward (not the anchored variant mislabelled as walk-forward in most retail platforms).

- purged_kfold — k-fold cross-validation with overlapping-event purge and embargo, as specified by López de Prado.

- Combinatorial Purged Cross-Validation (CPCV) — the multi-path generator that powers our PBO gate.

- mc_block_bootstrap — Monte Carlo block-bootstrap resampling for path-dependent confidence intervals.

For a longer treatment of each protocol, see our companion essays: [You Don’t Have to Walk-Forward](https://dashboard.studentone.tech/blog/walk-forward-alternative-expanding-window-anchored-cv/) and [Out-of-Sample Tests: The Full Counter-Overfitting Menu](https://dashboard.studentone.tech/blog/out-of-sample-tests-counter-overfitting-menu/).

## Multiple-Testing Correction

Do we apply multiple-testing correction across the search? **Yes.** Benjamini-Hochberg FDR, Romano-Wolf, and Hansen’s SPA. Every p-value reported is a q-value or has been adjusted for the size of the search that produced it.

Does FinRL apply multiple-testing correction? **No.** It trains five agents (A2C, DDPG, PPO, TD3, SAC) and you pick the one with the best backtest. That is the textbook example of selection-induced overfitting.

## Regime Tagging: HMM and PELT vs a Single Mahalanobis Scalar

Markets are not stationary. A signal that prints money in low-volatility, trending conditions can lose money in high-volatility, mean-reverting ones, and a backtest that does not tell you which regime its trades came from is a backtest that has not told you the most important thing about the signal.

FinRL’s entire treatment of market regime is the **turbulence index** of Kritzman and Li (2010) — a single Mahalanobis distance scalar computed on returns, with a hardcoded `turbulence_threshold` parameter inside the gym environment that triggers forced liquidation when crossed. Search the FinRL repository for `hmm`, `pelt`, `changepoint`, or `regime` and you will find one feature request and zero implementations. There is no hidden-Markov-model regime classifier, no PELT changepoint detector, and no per-regime conditioning of either training or evaluation. One scalar, one threshold, one binary kill switch.

Our event rows carry a `regime_label` field with one of four states — `low_vol`, `high_vol`, `trend`, `mean_reverting` — detected via a **2-state Gaussian Hidden Markov Model** on log returns (Baum-Welch fit, smoothed-posterior decoded) and **PELT** (Pruned Exact Linear Time, Killick-Fearnhead-Eckley 2012) changepoint detection followed by per-segment lag-1 autocorrelation. The label is attached at the entry bar of every event and travels in the audit bundle alongside the configuration that produced the trade. We also ship a **per-regime MFE gate** that requires the candidate signal to clear its excursion threshold *independently inside each detected regime*, with early termination on the first failing regime so a signal cannot smuggle its overall winrate past the cascade by piling all its wins into one regime.

This matters for compliance for the same reason multiple-testing correction matters. A regulator asking *"in what conditions does this signal work, and how do you know?"* does not want to hear that you used a Mahalanobis distance and a threshold. They want to see the conditions enumerated, the per-condition statistics tabulated, and the failure modes named. That is what the regime label, attached to every event row, provides. The labels also appear in the [Agentic AI feature contract](https://dashboard.studentone.tech/for/agentic-ai/) and in the [Lablrr labelling essay](https://dashboard.studentone.tech/blog/lablrr-feature-engineering-done-right-dsp-enumeration-labelling/).

## Supercomputed Enumeration is the Holy Grail of Explainability

Most ML-for-trading frameworks search a parameter space by gradient descent or by hyperparameter sampling. The output is a tuned model and a story about how the tuning went. Neither is easy to re-execute, and neither tells a regulator what the search actually looked at.

We do not sample. We **enumerate**. Every parameter on every indicator on every timeframe on every supported instrument, exhaustively. One million statistical tests in under sixty seconds, supercomputed. Every configuration is graded by the same gate cascade; every gate decision is recorded; every surviving configuration ships in the audit bundle with the full search census attached.

That is the property that makes the output explainable. A regulator does not have to trust our claim that we searched the space — they can read the census. They do not have to trust that the surviving signal beat the others — the comparison is in the bundle. The search is not a *process we ran*; it is an *artefact you receive*.

For the underlying infrastructure, see [The CERN of Quant Finance](https://dashboard.studentone.tech/blog/cern-of-quant-finance/).

## Black Box vs White Box — Concretely

| Axis | FinRL Output | Student One Output |
| --- | --- | --- |
| Artefact | `model.zip` (neural-network weights) | Indicator + parameter tuple + gate trace + p-value + q-value |
| Inspectable | No — weights are not interpretable | Yes — every field is human-readable text |
| Re-executable | Difficult — training non-determinism | Yes — bit-for-bit, given the seed |
| Permutation null applied | No | Yes |
| Multiple-testing correction | No | Yes (FDR, SPA, Romano-Wolf) |
| OOS protocols | Single hold-out | Holdout, walk-forward, purged k-fold, CPCV, MC block-bootstrap |
| Probability of overfitting reported | No | Yes (PBO gate, ships in bundle) |
| Regime tagging | Single Mahalanobis turbulence scalar + hardcoded threshold | HMM + PELT regime labels per event; per-regime MFE gate |
| Determinism | No | Yes |
| Regulator-ready | No | Yes |

## Reproducibility, Stated Plainly

A FinRL training run cannot be exactly reproduced. The standard deep-learning toolchain is non-deterministic by default, and even with deterministic flags set, library-version drift between runs is enough to perturb the resulting policy. The published `model.zip` is the artefact of a process no one — not even the original author — can re-execute and get the same bytes back.

Our engine is deterministic. Given the same seed, the same data, and the same configuration, you get the same bytes back. Every time. The bundle ships with the manifest required to replay the run, and the audit trail records every gate decision in the order it was made. This is not a feature we added — it is a precondition of the company existing.

## Compliance: This Is The Real Argument

The reason the white-box vs black-box distinction is not academic is that the rules of the markets we care about have already been written, and they do not accommodate black boxes.

### SEC — United States

The Federal Reserve’s **SR 11-7** ("Supervisory Guidance on Model Risk Management"), reaffirmed by the OCC under **OCC 2011-12**, applies to every model used by a US-supervised institution to make a decision. It requires conceptual soundness review, ongoing monitoring, and — critically — effective challenge by parties independent of the model’s developers. You cannot effectively challenge a neural-network policy. The SEC’s own staff bulletins on AI/ML in the investment-adviser context (most recently the 2026 update to the Marketing Rule guidance) draw the same line: a model whose decision logic cannot be explained to a compliance officer cannot be marketed.

### SEBI — India

SEBI’s **Algorithmic Trading Framework** circular (CIR/MRD/DP/09/2012, amended through the 2025 master circular) requires every algo to be auditable end-to-end, with the broker liable for the strategy’s logic. The 2026 SEBI consultation paper on AI/ML in markets makes explainability a hard requirement for institutional use. A FinRL-style trained policy fails this test on day one.

### IOSCO — International

The IOSCO Board’s **Final Report on the Use of Artificial Intelligence and Machine Learning by Market Intermediaries and Asset Managers** (September 2021) lays out six high-level guidances. Guidance 1: governance. Guidance 2: testing and validation. Guidance 3: ongoing monitoring. Guidance 4: transparency. Guidance 5: disclosure. Guidance 6: outsourcing. *Every single one* presumes the model is auditable. A reinforcement-learning policy trained against a gym environment cannot satisfy Guidance 2 (because the validation is the backtest, and the backtest is what you are validating) or Guidance 4 (because there is nothing to be transparent about that a human can read).

### The Wider Pattern — MAS, FCA, ESMA

Singapore’s MAS **FEAT principles** (Fairness, Ethics, Accountability, Transparency) and the more recent **Veritas** assessment methodology. The FCA’s **Discussion Paper DP5/22** on AI in financial services. ESMA’s **Guidelines on certain aspects of the MiFID II suitability requirements** as applied to robo-advice. Different jurisdictions, same conclusion: **if you cannot explain it, you cannot deploy it inside a regulated institution.**

This is why we exist. The white box is not a stylistic preference. It is the only thing that crosses the regulatory line.

For our own framing, see [Explainable AI](https://dashboard.studentone.tech/explainable-ai/) and [Compliance](https://dashboard.studentone.tech/compliance/).

## Risk Is Downstream of Signal

FinRL handles risk by adding a cash penalty term inside the gym environment’s reward function, and by gating actions on a turbulence index computed inside the environment loop. Risk and signal discovery are coupled.

We keep them separate. Signal discovery is what our engine does. Risk modelling — position sizing, drawdown control, exposure budgets, regime overlays — lives in a different system, on a different team, with a different audit trail. A signal that survives our gate cascade is a candidate. What you do with it is a portfolio-construction question, and portfolio construction is not signal discovery. Conflating the two is how risk-management becomes invisible.

## Speed (Because It Matters For Statistics)

Training the standard FinRL five-agent ensemble on a DOW-30 stock-trading task takes the better part of a working day. After all of that, you have models trained on one split with no multiple-testing correction and no permutation null.

Our **supercomputed** engine completes one million statistical tests in under a minute. That is not a vanity benchmark; it is a precondition of the statistics we run. Multiple-testing correction is only honest if you correct for the *actual* size of the search. If your search takes hours per fold, you cannot afford to enumerate the surface, so you sample it, and the correction becomes a guess. We can afford to enumerate, so the correction is exact.

## Indicators: Boring and Far-From-Boring

FinRL’s standard preprocessor ships seven hardcoded technical indicators: MACD, Bollinger upper, Bollinger lower, RSI(30), DX(30), SMA(30) and SMA(60). Plus the VIX and a turbulence index. That is the feature set on which the agents are trained.

We include all of those. They are the boring ones. We enumerate them across their full parameter grids and report which configurations, on which instruments, on which timeframes, survive the gate cascade — because sometimes the SMA(47) on the 4-hour bar of the EUR/USD genuinely is the signal, and you only find out by looking.

Above the boring layer we have the far-from-boring one: digital-signal-processing indicators that extract structure from the wave content of the price series itself. **Hilbert transform** for analytic-signal decomposition and instantaneous-phase extraction. **Fisher transform** for Gaussianising bounded oscillators. **Ehlers** roofing filters, cyber-cycle indicators, MAMA / FAMA adaptive moving averages. **Goertzel** for narrow-band single-frequency detection. **Welch power-spectral-density** estimators. These are not features you can hand-craft into a gym environment one at a time; the point is to *enumerate* them, across their parameter grids, and let the gate cascade decide which ones speak.

For the full enumeration surface and the indicator catalogue, see the [Dojo](https://dashboard.studentone.tech/dojo/).

## What This Costs You To Verify

You don’t have to take our word for any of it. The output of every run is a bundle. The bundle contains:

- The full search census — every configuration we evaluated, with its raw p-value, its adjusted q-value, and the gate decisions it received.

- The surviving configurations — the indicator family, the exact parameter tuple, the data window, the test fold split, and the multiple-testing-corrected significance.

- The cascade trace — every gate, in the order it ran, with the decision recorded.

- The manifest — the engine version, the seed, the configuration hash, and the exact dataset fingerprint.

A compliance officer, a model-risk team, or a regulator can re-execute the manifest and get the same bundle back. That is what white box means. That is what we built. And that, more than the speed and more than the statistics, is why a Student One report can sit in front of a risk committee and a FinRL `model.zip` cannot.

## A Final Note On FinRL

None of the above is a criticism of FinRL’s ambition or of the AI4Finance Foundation’s contribution to the field. FinRL did something the academic community needed someone to do: ship a complete, working, open-source reinforcement-learning trading framework that students and researchers could read end-to-end. The fact that we can have this conversation at all — that there is a public reference implementation against which an alternative can be defined — is because they did the work.

The next problem, the one that turns a research artefact into something a bank can deploy, is explainability. That problem is what we work on.

## Talk To Us

If you are evaluating signal-discovery infrastructure for a regulated institution, or if you have read this far and want to see a sample bundle from a real run, we would like to hear from you.

- Request a sample bundle

- Talk to us

- Read the methodology

---

*FinRL® is an open-source project of the AI4Finance Foundation, distributed under the MIT License. "FinRL" and the FinRL logo are trademarks of FinRL LLC. We reference the project here solely for comparative technical discussion under fair-use principles. We claim no affiliation with, or endorsement by, the AI4Finance Foundation or FinRL LLC.*

---

## Cite this article

Student One Research (2026). *An Explainable Alternative to FinRL: A White-Box Signal Engine Built for SEC, SEBI and IOSCO*. Student One Research Blog. https://dashboard.studentone.tech/blog/explainable-alternative-to-finrl-white-box-signal-engine
