Separating momentum measurement, market context, and probabilistic inference
Martin Russmann — Independent Researcher · ORCID 0009-0006-4079-1216 · martinrussmann.com
The conventional Relative Strength Index (RSI) is a bounded momentum oscillator derived exclusively from recent price changes. This concept extends its usefulness without destroying its mathematical meaning by strictly separating three operations: measurement (an invariant, multi-horizon RSI), contextualization (independent descriptions of the liquidity, sentiment, and volatility regime), and inference (a probabilistic model of forward returns conditional on momentum and context).
The revision presented here corrects several weaknesses of the original draft: the hand-parameterized dynamic-threshold layer is replaced by thresholds derived from the fitted probability model, eliminating a redundant parallel mechanism and its free parameters; the directional target is benchmarked against its drift-dominated unconditional base rate rather than an implicit coin flip; the limited statistical power of single-asset tests of slow macro conditioning variables is addressed explicitly, with a cross-sectional panel extension; a look-ahead channel through the training corpora of language models is named and handled; the confidence layer acquires a falsifiable validation gate; and all free parameters of the system are collected in a mandatory parameter inventory.
In addition, four elements are absorbed from the companion design proposal (Russmann 2026): orthogonalization of sentiment against trailing returns, an explicit two-convention treatment of global M2 aggregation, an unconditional-standardization rung in the baseline ladder, and a regime-conditional empirical-percentile check on the parametric model. The result is a system that is interpretable, falsifiable, and structurally resistant to the common failure mode of technical indicators: adding parameters to historical data until randomness develops an investment thesis.
Keywords — Relative Strength Index; probabilistic inference; global M2 liquidity; financial sentiment; volatility regimes; calibration; falsifiability
Purpose
The conventional RSI answers a narrow question: how strong have recent upward price movements been relative to recent downward price movements? It does not answer whether the observed momentum occurs under favorable liquidity conditions, whether market sentiment supports the move, whether volatility makes the signal unusually noisy, or whether the observed RSI level has historically been associated with positive future returns.
A naive extension would modify RSI directly by adding or multiplying external variables. This concept rejects that approach (see Why multiplicative RSI adjustment is rejected). Instead, the architecture separates three fundamentally different operations:
- Measurement. Price momentum is measured using an invariant RSI implementation.
- Contextualization. The economic and market regime is described independently using liquidity, sentiment, and volatility.
- Inference. A single probabilistic model estimates what the observed combination implies for future returns. All interpretation artifacts — including reference thresholds — are derived from this model rather than specified separately.
The system is therefore not a new RSI formula. It is a
$$\boxed{\text{context-conditioned interpretation of RSI},}$$
whose central inference is
$$p_t \;=\; \mathbb{P}\!\left(R_{t,H}>0 \,\middle|\, M_t,\mathcal{C}_t\right), \tag{1}$$
where $M_t$ is the multi-horizon momentum vector, $\mathcal{C}_t=(L_t,S_t,V_t)$ is the observable market context at time $t$, and $R_{t,H}$ is the forward log return over horizon $H$.
Design Principles
Principle 1 (Semantic stability). An RSI value of 70 always represents approximately the same underlying price-momentum relationship. External information must not redefine what an RSI value means. Hence $RSI_t=f(P_t,P_{t-1},\dots)$ remains independent of $L_t$, $S_t$, and $V_t$.
Principle 2 (Separation of measurement and inference). RSI is a measurement; liquidity, sentiment, and volatility are contextual observations; expected future return is an inference. These are never conflated into a single unexplained scalar.
Principle 3 (No look-ahead, including through models). Every value used at historical time $t$ must have been observable at $t$. The information set is
$$\mathcal{I}_t=\{x \mid x \text{ was observable at or before } t\}, \qquad X_t \subseteq \mathcal{I}_t .$$
This applies to macroeconomic releases, revisions, news timestamps, sentiment calculations, volatility measures, and model parameters. Critically, it also applies to the training corpora of any auxiliary model used to compute features: a language model trained on text published after $t$ embeds future information into scores it assigns to older articles (see The NLP look-ahead channel). Strictly, $\mathcal{I}_t$ must include the training data of every model used at $t$.
Principle 4 (Minimal and inventoried parameter freedom). Every adjustable parameter is an opportunity for the backtest to fit noise. The system uses fixed indicator definitions, economically motivated parameters, constrained ranges, nested validation, and explicit multiple-testing controls. In addition, every free parameter of the full system — not only those of the final predictive model — must appear in a single parameter inventory stating its allowed range and whether it is fixed a priori or fitted. The objective is not to maximize historical performance but out-of-sample explanatory and predictive validity.
Principle 5 (One inference mechanism). The system contains exactly one mechanism that maps $(M_t,\mathcal{C}_t)$ to statements about future returns: the probabilistic model of Layer 3. Interpretation thresholds, signal strengths, and explanations are all derived from it. No second, hand-parameterized interpretation layer exists in parallel.
Principle 5 is the main structural revision relative to the original draft, which contained a separately parameterized dynamic-threshold layer ($c_t = 50+\alpha_L L_t^{*}+\alpha_S S_t$, $h_t = h_0+\alpha_V V_t$). That layer answered the same question as the probabilistic model with a second mechanism and roughly seven additional free parameters whose calibration objective was never defined — exactly the hidden degree of freedom Principle 4 forbids. It is replaced by model-derived thresholds.
System Architecture
+------------------+
| Price Data |
+---------+--------+
|
+----------------+----------------+
v v
+---------------------+ +---------------------+
| Multi-Horizon RSI | | Volatility Regime |
| RSI(7/14/28) | | (log-RV z-score) |
+----------+----------+ +----------+----------+
| |
| +-----------------+ |
| | Liquidity |<-- Monetary data
| | Impulse | (vintage-aware)
| +--------+--------+ |
| | |
| +--------+--------+ |
| | Financial |<-- News / text
| | Sentiment | (vintage-aware NLP)
| +--------+--------+ |
| | |
v v v
+-----------------------------------------+
| Probabilistic Model p_t = P(R>0|M,C) |
+---------------------+-------------------+
|
+---------------------+-------------------+
| | |
v v v
Derived thresholds p_t, E[R] Confidence C_t
(model inversion) (validated gate)
The system produces several interpretable outputs rather than pretending that one number can represent everything interesting about a market. Interpretation thresholds are downstream of the fitted model, not a separate layer.
Layer 1: Canonical RSI
Price change
Let $P_t$ denote the closing price at time $t$. The price change is
$$\Delta P_t = P_t - P_{t-1}.$$
Positive and negative changes are separated:
$$G_t=\max(\Delta P_t,0), \qquad L^{\mathrm{RSI}}_t=\max(-\Delta P_t,0),$$
where the superscript distinguishes RSI losses from the liquidity variable $L_t$.
Wilder smoothing
For lookback period $n$, Wilder's recursively smoothed averages (Wilder 1978) are
$$AG_t=\frac{(n-1)\,AG_{t-1}+G_t}{n}, \qquad AL_t=\frac{(n-1)\,AL_{t-1}+L^{\mathrm{RSI}}_t}{n}.$$
The relative strength and RSI are
$$RS_t=\frac{AG_t}{AL_t}, \qquad RSI_t = 100-\frac{100}{1+RS_t} = 100\,\frac{RS_t}{1+RS_t}.$$
Precision on smoothing. Wilder smoothing is an exponential moving average with smoothing factor $\alpha = 1/n$. What implementations must not do is silently substitute the conventional EMA parameterization $\alpha = 2/(n+1)$, which changes the effective memory of the indicator. Any deviation from $\alpha=1/n$ must be an explicit configuration choice.
Initialization
For the initial period,
$$AG_n=\frac{1}{n}\sum_{i=1}^{n}G_i, \qquad AL_n=\frac{1}{n}\sum_{i=1}^{n}L^{\mathrm{RSI}}_i,$$
with Wilder smoothing thereafter.
Numerical edge cases
$$AG_t=AL_t=0 \;\Rightarrow\; RSI_t=50; \qquad AL_t=0,\,AG_t>0 \;\Rightarrow\; RSI_t=100; \qquad AG_t=0,\,AL_t>0 \;\Rightarrow\; RSI_t=0.$$
These rules avoid undefined numerical behavior and preserve the intended interpretation of the oscillator.
Multi-Horizon Momentum
Rather than adapting the RSI period dynamically — which changes the meaning of the signal itself — several fixed horizons are computed simultaneously:
$$M_t= \begin{bmatrix} RSI^{(7)}_t\\ RSI^{(14)}_t\\ RSI^{(28)}_t \end{bmatrix},$$
representing short-term, medium-term, and slower structural momentum. Derived spread features
$$D_{7,14,t}=RSI^{(7)}_t-RSI^{(14)}_t, \qquad D_{14,28,t}=RSI^{(14)}_t-RSI^{(28)}_t$$
capture the momentum term structure: $RSI^{(7)}>RSI^{(14)}>RSI^{(28)}$ indicates accelerating momentum across horizons; the reverse ordering indicates short-term deterioration relative to the longer trend. This information would be lost under dynamic period selection.
Standardization for modeling
RSI lives on $[0,100]$ while the context variables are z-scores. Feeding raw RSI into a regularized model penalizes coefficients unevenly and contaminates interaction terms with scale artifacts. For modeling purposes, RSI enters as
$$\widetilde{RSI}^{(n)}_t=\frac{RSI^{(n)}_t-50}{25},$$
so that all model inputs are approximately unit-scale and centered. The raw $[0,100]$ representation is retained for display and for the derived thresholds.
Optional composite score
If a single momentum value is operationally required,
$$M^{*}_t=w_7\,RSI^{(7)}_t+w_{14}\,RSI^{(14)}_t+w_{28}\,RSI^{(28)}_t, \qquad w_7+w_{14}+w_{28}=1,\; w_i\ge 0,$$
but the vector representation remains available internally because aggregation necessarily destroys information.
Layer 2: Market Context
The market context is
$$\mathcal{C}_t=(L_t,S_t,V_t),$$
denoting the liquidity, sentiment, and volatility regime respectively. These variables never modify the RSI calculation; they describe the environment in which the RSI observation occurs.
Liquidity model
Why raw M2 is not used
The monetary channel into asset prices is well documented (Thorbecke 1997; Bernanke & Kuttner 2005; Rigobon & Sack 2004), but raw monetary aggregates are problematic: monetary systems differ across jurisdictions; absolute stocks are not comparable; definitions change; data are revised; release dates differ; FX conversion creates artificial changes; and markets plausibly react more to changes in liquidity than to its level. The model therefore uses a monetary liquidity impulse.
Country-level monetary growth
For monetary region $i$, with $m_{i,t}=\log(M2_{i,t})$,
$$g_{i,t}=\Delta m_{i,t}=\log(M2_{i,t})-\log(M2_{i,t-1}), \qquad g^{(k)}_{i,t}=\log(M2_{i,t})-\log(M2_{i,t-k}).$$
Historical standardization
Each series is standardized against its own strictly historical distribution:
$$z_{i,t}=\frac{g_{i,t}-\mu^{\mathrm{past}}_{i,t}}{\sigma^{\mathrm{past}}_{i,t}}, \qquad \mu^{\mathrm{past}}_{i,t}=\frac{1}{N}\sum_{j=t-N}^{t-1}g_{i,j},$$
with $\sigma^{\mathrm{past}}_{i,t}$ defined analogously. No future observation enters the standardization.
Global aggregation
$$L_t=\sum_{i=1}^{N_c} w_i\, z_{i,t}, \qquad \sum_{i=1}^{N_c} w_i=1,$$
with weights (GDP, market capitalization, equal, or exposure) fixed before testing or calibrated exclusively inside the training set.
Two aggregation conventions; separation of monetary and FX effects
Aggregating national money stocks into a global measure admits two conventions that must not be conflated (Russmann 2026).
(a) Level aggregate (descriptive only). The natural level measure is the unweighted sum of national aggregates converted to a common currency,
$$M2^{\mathrm{glob,USD}}_t=\sum_{i}\frac{M2_{i,t}}{FX_{i/\mathrm{USD},t}},$$
in which each economy's contribution is its actual money stock, so economic size is reflected intrinsically; GDP-weighting levels would double-count size. Its defect for signal construction is mechanical FX contamination: a broad USD rally shrinks the USD value of foreign stocks, so the level aggregate can contract even while every constituent central bank is easing. It is retained for description and charting only.
(b) Growth aggregate (used by this system). The impulse construction of the preceding subsections — country-level local-currency log growth $g_{i,t}$, standardized, then aggregated with weights $w_i$ — is precisely the growth convention: because growth is computed in local currency before aggregation, exchange-rate fluctuations are eliminated from the measure by construction, not merely "treated separately." If FX information is useful, it enters explicitly as an additional feature rather than contaminating the monetary measurement.
Definitional heterogeneity. National "M2" measures are not harmonized: the United Kingdom publishes no M2 series and M4 (broader) serves as proxy; the ECB's headline aggregate is M3, with M2 available as a component; China's M2 includes corporate deposits at a scale uncommon elsewhere. These differences affect levels far more than growth rates — a further argument for the growth convention — but they do not vanish: the constituent set, any proxy substitutions, and definition versions are recorded in the data schema (definition_version) and held fixed within any backtest.
Vintage data and release-time alignment
Let $M2^{(v)}_{i,t}$ denote the observation for economic period $t$ as available in vintage $v$. For a historical decision date $d$, the model selects the most recent vintage with $v\le d$. Furthermore, with publication timestamp $r_{i,t}$,
$$M2_{i,t}\in\mathcal{I}_d \iff r_{i,t}\le d:$$
features follow publication time, not the nominal economic period. Using revised data introduces look-ahead bias. This requirement applies to all macroeconomic variables.
Distributed lag
A single fixed lag imposes an unrealistic discontinuity. Instead,
$$L^{*}_t=\sum_{k=0}^{K} w_k\, L_{t-k}, \qquad w_k=\frac{e^{-\lambda k}}{\sum_{j=0}^{K}e^{-\lambda j}}, \qquad \lambda>0,$$
so weights sum to one and $\lambda$ controls how rapidly historical liquidity observations lose relevance.
Sentiment model
Let article $j$ carry sentiment $s_j\in[-1,1]$. Simple averaging fails because articles differ in age, relevance, source quality, novelty, and duplication. Define
$$S_t=\frac{\sum_j r_j\, q_j\, e^{-\lambda_s \Delta t_j}\, s_j} {\sum_j r_j\, q_j\, e^{-\lambda_s \Delta t_j}},$$
with source-relevance weight $r_j\in[0,1]$, novelty weight $q_j\in[0,1]$ (a duplicated article has $q_j\approx 0$, genuinely new information $q_j\approx 1$), and age $\Delta t_j=t-t_j$ decayed by $e^{-\lambda_s\Delta t_j}$.
Duplicate detection
News items are clustered by semantic similarity: if $\mathrm{sim}(i,j)>\theta_{\mathrm{dup}}$, articles $i,j$ belong to one informational cluster, which contributes approximately one informational event.
Financial language model
A general-purpose sentiment analyzer may serve as a baseline, but expressions such as "lower-than-expected losses" or "slowing inflation" cannot be interpreted with generic word lists (Loughran & McDonald 2011). A financial-domain language model (e.g., FinBERT, Araci 2019) produces $(p_{\mathrm{pos}},p_{\mathrm{neu}},p_{\mathrm{neg}})$, from which
$$s_j=p_{\mathrm{pos}}-p_{\mathrm{neg}}\in[-1,1].$$
The NLP look-ahead channel
Release-timestamp discipline does not close every leak. A language model trained on a corpus containing text published after historical date $t$ embeds future language associations — e.g., how "quantitative easing" or "pandemic" came to be discussed — into the sentiment scores it assigns to older articles. Two admissible treatments exist:
- Vintage-frozen models: use, for each historical period, a model version whose training corpus predates that period; or
- Disclosed contamination: use a single modern model but explicitly disclose this channel, treat sentiment-based results as an upper bound on achievable historical performance, and confirm findings on data published after the model's training cutoff.
In addition, historical news archives carry survivorship and coverage biases: what was digitized is not what was visible at the time. This is recorded as a data limitation of any sentiment result.
Endogeneity and orthogonalization
News sentiment is not exogenous to prices: coverage and tone respond to recent returns (Tetlock 2007; Engelberg & Parsons 2011), which are precisely the inputs to RSI. Conditioning the model on raw $S_t$ therefore risks conditioning momentum on a noisy re-measurement of itself, inflating the apparent incremental value of the sentiment channel. A linear logistic control for the RSI horizons does not purge this: the return-dependence of media tone is not spanned by three momentum features.
The incremental content of sentiment is isolated by orthogonalizing against trailing returns before modeling:
$$S_t=a+\sum_{k\in\{1,5,20\}} b_k\, r_{t-k:t}+u_t, \qquad S^{\perp}_t:=\hat u_t,$$
where $r_{t-k:t}$ is the cumulative log return over the trailing $k$ days and the regression is estimated on an expanding window using only information in $\mathcal{I}_t$. The lag set $\{1,5,20\}$ is fixed a priori (see the parameter inventory).
Required reporting. Every evaluation of a sentiment-bearing model is run with both $S_t$ and $S^{\perp}_t$. If the channel's incremental skill disappears under orthogonalization, sentiment is redundant with price momentum and the channel is dropped — this is a falsification criterion, not a robustness footnote.
Effective information volume
Sentiment confidence must reflect the number of independent information clusters:
$$N_{\mathrm{eff},t}=\frac{\left(\sum_j w_j\right)^2}{\sum_j w_j^2},$$
with $w_j=r_j q_j e^{-\lambda_s\Delta t_j}$. A score based on two articles is not as reliable as one based on hundreds of independent observations; $N_{\mathrm{eff},t}$ feeds the confidence layer.
Volatility model
Volatility is treated as a measure of uncertainty and noise rather than directional information. For log return
$$r_t=\log\!\left(\frac{P_t}{P_{t-1}}\right),$$
realized volatility over window $n_v$ is
$$\sigma_t=\sqrt{\frac{1}{n_v-1}\sum_{i=0}^{n_v-1}\left(r_{t-i}-\bar r_t\right)^2}, \qquad \sigma^{\mathrm{ann}}_t=\sigma_t\sqrt{A},$$
with $A$ trading periods per year.
Log-scale standardization. Realized volatility is approximately log-normally distributed; z-scoring the raw level produces a skewed, outlier-dominated regime variable. The regime indicator is therefore computed on the log scale:
$$V_t=\frac{\log\sigma_t-\mu^{\mathrm{past}}_{\log\sigma,t}}{\sigma^{\mathrm{past}}_{\log\sigma,t}},$$
with strictly historical moments. $V_t>0$ denotes above-normal, $V_t<0$ below-normal volatility.
Layer 3: Probabilistic Inference
The most important design decision is to stop treating the problem as constructing a superior oscillator, and instead to define a forward-return target.
Target and base rate
For horizon $H$,
$$R_{t,H}=\log\!\left(\frac{P_{t+H}}{P_t}\right), \qquad Y_t=\mathbf{1}\{R_{t,H}>0\}.$$
The model estimates $p_t=\mathbb{P}(Y_t=1\mid X_t)$.
Drift dominates the unconditional base rate. For equity indices, $\mathbb{P}(R_{t,H}>0)$ is not $0.5$: positive drift pushes the unconditional base rate for, e.g., $H=10$ trading days to roughly $0.55$–$0.60$ depending on asset and sample. Consequently:
- every probabilistic metric (log loss, Brier score) is reported relative to the climatological forecast $\hat p = \bar Y_{\mathrm{train}}$, never relative to an implicit coin flip;
- a reported $p_t=0.67$ must be read against the base rate, not against $0.5$;
- the unconditional base-rate model is Baseline 0 in all comparisons (see Baselines and Ablation).
Realistic effect-size ceiling. Return direction is close to the hardest quantity to predict in financial data; variance is far more predictable than sign. The honest prior is that achievable improvements in directional accuracy are on the order of one to two percentage points over the base rate. This ceiling is computed in Phase 0 (see Development Phases) and serves as the denominator for every later claim of "improvement," with direct consequences for the sample sizes needed to distinguish signal from noise.
Feature vector
Using the standardized momentum representation above,
$$X_t=\bigl[\widetilde{RSI}_{7},\,\widetilde{RSI}_{14},\,\widetilde{RSI}_{28},\, \widetilde D_{7,14},\,\widetilde D_{14,28},\, L^{*}_t,\,S_t,\,V_t\bigr],$$
where the spread features are likewise scaled by $25$. All features are approximately unit-scale, so L2 regularization penalizes coefficients evenly and interaction terms are free of scale artifacts. Sentiment-bearing specifications are estimated twice — with $S_t$ and with $S^{\perp}_t$ — and the orthogonalized variant is decisive for hypothesis tests.
Baseline logistic model
$$p_t=\sigma\!\left(\beta_0+\beta^{\top}X_t\right), \qquad \sigma(x)=\frac{1}{1+e^{-x}}.$$
Interactions may be added selectively and only if pre-specified:
$$\cdots+\beta_7\, L^{*}_t S_t+\beta_8\, \widetilde{RSI}_{14} L^{*}_t+\beta_9\, \widetilde{RSI}_{14} S_t.$$
Nonlinear RSI effects
The RSI–return relation is unlikely to be linear. A shape function may replace the linear term:
$$p_t=\sigma\!\left(\alpha+f(\widetilde{RSI}_t)+\beta_L L^{*}_t+\beta_S S_t+\beta_V V_t\right),$$
implemented as splines, monotone splines, a GAM, or constrained trees. The initial implementation remains simple enough to interpret.
Regression target alternative
The model may additionally estimate expected magnitude,
$$\hat R_{t,H}=\mathbb{E}\left[R_{t,H}\mid X_t\right],$$
answering a different question than the directional probability. Both may be reported side by side.
Interaction effects
Contextual variables may interact — rising liquidity is plausibly interpreted differently under improving versus collapsing sentiment. A restricted, economically motivated set ($L^{*}S$, $\widetilde{RSI}\cdot L^{*}$, $\widetilde{RSI}\cdot S$) may be included, specified before evaluation. Large unrestricted feature-cross searches are prohibited.
Regularization
$$\min_\beta\left[-\log L(\beta)+\lambda\lVert\beta\rVert_2^2\right] \quad\text{(ridge)} \qquad\text{or}\qquad \min_\beta\left[-\log L(\beta)+\lambda\lVert\beta\rVert_1\right] \quad\text{(LASSO)},$$
limiting unstable coefficients and reducing overfitting. Regularization strength is selected only in inner validation folds.
Why multiplicative RSI adjustment is rejected
A formula such as
$$RSI^{*}_t=RSI_t\left(1+\alpha L_t+\beta S_t+\gamma V_t\right)$$
can leave $[0,100]$, changes the meaning of a one-point RSI move depending on context, and makes $RSI=70$ represent different momentum states depending on the multiplier. The adjusted quantity is no longer comparable to RSI, so direct multiplicative adjustment is rejected.
Optional integrated ContextRSI (visualization only)
For compatibility with oscillator-based displays, context can be incorporated in log-relative-strength space. With $z_t=\log RS_t$ and $RSI_t=100\,\sigma(z_t)$,
$$z^{*}_t=z_t+\beta_L L_t+\beta_S S_t+\beta_V V_t, \qquad ContextRSI_t=100\,\sigma(z^{*}_t)\in(0,100),$$
which preserves the logistic geometry of RSI. This form is strictly secondary: the preferred architecture keeps raw RSI visible and routes all inference through Equation (1).
Model-Derived Interpretation Thresholds
The original draft specified a dynamic threshold center $c_t=50+\alpha_L L^{*}_t+\alpha_S S_t$ and half-width $h_t=h_0+\alpha_V V_t$ with clipping bounds. That construction is removed: it duplicated the probabilistic model with a second, hand-parameterized mechanism, introduced roughly seven free parameters, and never defined the objective against which the $\alpha$'s were calibrated (violating Principles 4 and 5).
Thresholds by model inversion
Interpretation thresholds are instead derived from the fitted probability model. Fix reference probabilities $\pi_{\mathrm{low}}<\pi_{\mathrm{high}}$ anchored to the base rate, e.g.
$$\pi_{\mathrm{low}}=\bar Y-\delta, \qquad \pi_{\mathrm{high}}=\bar Y+\delta, \qquad \delta\in(0,\tfrac12),$$
with $\bar Y$ the training-sample base rate. Holding the current context $\mathcal{C}_t$ fixed and varying RSI along its own dimension, define
$$T_{\mathrm{low},t} =\inf\left\{u\in[0,100]\;:\;\hat p\!\left(u;\mathcal{C}_t\right)\ge \pi_{\mathrm{low}}\right\}, \qquad T_{\mathrm{high},t} =\sup\left\{u\in[0,100]\;:\;\hat p\!\left(u;\mathcal{C}_t\right)\le \pi_{\mathrm{high}}\right\},$$
where $\hat p(u;\mathcal{C}_t)$ is the fitted model evaluated at RSI value $u$ (mapped through the standardization above, with multi-horizon inputs moved coherently along their joint historical conditional mean) and the current context. For the baseline logistic model with a monotone RSI effect this inversion is available in closed form; for shape-constrained $f(RSI)$ it is a one-dimensional root-finding problem.
Properties
This construction has exactly the properties the original layer wanted, without its costs:
- supportive context (high $L^{*}_t$, $S_t$) automatically shifts the RSI level at which the model deems downside likely — no $\alpha_L,\alpha_S$ required;
- elevated volatility, if the fitted model finds that it flattens the RSI–probability relation, automatically widens the band — no $\alpha_V$ required;
- the thresholds are an honest visualization of the single inference mechanism, and they inherit its validation: if the model is poorly calibrated, the thresholds are known to be untrustworthy for the same reason, rather than failing silently in a separate layer;
- the only new parameter is $\delta$ (one, interpretable, fixed a priori).
Interpretation example
Suppose $L^{*}_t=1.2$, $S_t=0.5$, moderate volatility, and the fitted inversion yields $T_{\mathrm{low},t}=33$, $T_{\mathrm{high},t}=77$. An observation $RSI_t=72$ is then not classified as unusually high within this environment. Under a negative regime the same $RSI=72$ may lie above $T_{\mathrm{high},t}$. The measurement remains $RSI=72$; only the model-implied interpretation changes.
Confidence Layer
Prediction probability and confidence are not identical: a model can output $p_t=0.68$ while the observation lies outside its historical training distribution. Define confidence $C_t\in[0,1]$ as
$$C_t=\left(C_{\mathrm{data},t}\; C_{\mathrm{sent},t}\; C_{\mathrm{agree},t}\; C_{\mathrm{dist},t}\right)^{1/4},$$
a geometric mean, so that one severely degraded component materially lowers the total.
Components
| Component | Definition | Meaning |
|---|---|---|
| $C_{\mathrm{data},t}$ | $1-\dfrac{\#\text{missing required features}}{\#\text{total required features}}$ | data completeness |
| $C_{\mathrm{sent},t}$ | $1-e^{-k\,N_{\mathrm{eff},t}}$ | effective information volume |
| $C_{\mathrm{agree},t}$ | $e^{-\lambda_D D_t}$, $D_t=\operatorname{Var}(d_M,d_L,d_S)$ | agreement of standardized directional components |
| $C_{\mathrm{dist},t}$ | $e^{-\lambda_M D_M(X_t)}$ | distributional familiarity |
Out-of-distribution detection, robustly
The Mahalanobis distance
$$D_M(X_t)=\sqrt{(X_t-\mu_X)^{\top}\Sigma_X^{-1}(X_t-\mu_X)}$$
assumes elliptical geometry, which fat-tailed, unstably covarying financial features violate. The covariance is therefore estimated robustly (Ledoit–Wolf shrinkage, Ledoit & Wolf 2004, or Minimum Covariance Determinant); alternatively, a simpler per-feature quantile-based out-of-range check may replace $D_M$ entirely. The choice is recorded in the parameter inventory.
Staleness
Context values carry age, e.g. $A_{L,t}=t-t_{\mathrm{lastRelease}}$ and $A_{S,t}=t-t_{\mathrm{lastRelevantArticle}}$, entering confidence as $C_{\mathrm{fresh},t}=e^{-\lambda_A A_t}$ within $C_{\mathrm{data},t}$.
Validation gate: confidence must predict error
Unvalidated, $C_t$ is decoration with four hand-set decay parameters. The confidence layer therefore carries its own falsification criterion:
Sort out-of-sample predictions into confidence deciles. The conditional Brier score (and calibration error) must be monotonically decreasing in confidence: low-confidence predictions must demonstrably be worse. If monotonicity fails (beyond sampling noise, assessed by bootstrap), the confidence layer has failed and must be simplified or removed.
This gate is a pass/fail requirement of Phase 6. A confidence score that does not predict error does not ship.
Signal Construction
The probabilistic model supports operational signals. Discrete form, with thresholds calibrated exclusively in training data and referenced to the base rate:
$$Buy_t=\mathbf{1}\{p_t>\theta_p\;\wedge\;C_t>\theta_c\}, \qquad Sell_t=\mathbf{1}\{p_t<2\bar Y-\theta_p\;\wedge\;C_t>\theta_c\},$$
where the sell threshold mirrors $\theta_p$ around the base rate $\bar Y$ rather than around $0.5$. Continuous form:
$$Q_t=\frac{p_t-\bar Y}{\max(\bar Y,\,1-\bar Y)}\in[-1,1]\ \text{(approximately)}, \qquad Q^{*}_t=C_t\,Q_t,$$
a base-rate-centered directional strength, confidence-suppressed when evidence is poor. (The original $Q_t=2p_t-1$ is recovered when $\bar Y=0.5$; centering on $\bar Y$ prevents drift from being mistaken for signal.)
Validation Architecture
Walk-forward evaluation
Random train–test splitting is inadmissible for time-dependent observations. For fold $k$,
$$\mathrm{Train}_k=[t_0,t_k], \qquad \mathrm{Test}_k=(t_k,t_{k+1}],$$
and the test period never influences feature scaling, parameter selection, threshold selection, model selection, lag selection, or hyperparameter optimization.
Nested walk-forward optimization
Hyperparameters are selected in an inner loop (inner train / inner validation) within each outer training window; the outer loop estimates generalization. Combinatorial purged cross-validation may be used as an alternative to simple walk-forward where more efficient use of limited data is required, with identical purging discipline.
Purging and embargo
Forward-return targets overlap: with $H=10$ days, observations near the boundary share future returns. Training observations whose target intervals $[t,t+H]$ overlap any test observation's target interval are purged; an additional embargo interval follows the test window (López de Prado 2018).
Inference under overlapping targets
Even after purging across folds, within-sample daily observations with $H$-day targets overlap, so performance statistics and coefficient tests computed on them are serially dependent. All standard errors on performance differences and coefficients use heteroskedasticity-and-autocorrelation-consistent estimators (Newey–West 1987 with lag $\ge H$), or evaluation is restricted to non-overlapping points. Naive i.i.d. standard errors are prohibited.
Baselines and Ablation
Baselines
| Specification | |
|---|---|
| Baseline 0 | Unconditional base rate $\hat p=\bar Y_{\mathrm{train}}$ (climatology) |
| Baseline A | $RSI(14)$ with conventional $30/70$ thresholds |
| Baseline A′ | $RSI(14)$ with unconditional point-in-time quantile thresholds (5th/95th) |
| Baseline B | Multi-horizon RSI without context |
| Baseline C | Price-only statistical model |
| Model D | RSI + liquidity |
| Model E | RSI + sentiment |
| Model F | RSI + volatility |
| Full model | RSI + $L$ + $S$ + $V$ |
Baseline 0 is the reference against which all probabilistic metrics are normalized; the ladder attributes incremental value. Baseline A′ is the rung that separates the value of adapting to the indicator's own unconditional distribution from the value of context conditioning (Russmann 2026): without it, an advantage of context-bearing models over Baseline A is ambiguous between mere standardization and genuine conditioning.
Ablation
For the full model $M_{\mathrm{full}}=f(RSI,L,S,V)$, construct $M_{-L}$, $M_{-S}$, $M_{-V}$ by feature removal. A feature whose removal leaves out-of-sample performance unchanged (under HAC inference) is not retained. Complexity must justify itself empirically.
Statistical Power and the Cross-Sectional Extension
The single-asset power problem
The liquidity impulse is slow, monthly, and highly autocorrelated. Even with fifty-plus years of M2 data there are perhaps 10–15 genuinely independent liquidity cycles, and the extreme readings that would drive conditional inference concentrate in a handful of episodes (e.g., 2008, 2020, 2022). Regime-specific evaluation under "contracting liquidity" therefore has an effectively tiny sample on a single asset. Hypothesis 2 may be true and still be untestable in a single-asset design. Combined with the effect-size ceiling above, this is the binding constraint on the entire research program, and it must be stated rather than discovered after the fact.
Panel design
The power to test contextual hypotheses lives in the cross-section. Let $a$ index assets in a panel and let liquidity and sentiment act as common conditioning variables:
$$p_{a,t}=\mathbb{P}\!\left(R_{a,t,H}>0 \,\middle|\, M_{a,t},\,\mathcal{C}_t,\,\mathcal{C}_{a,t}\right),$$
with global context $\mathcal{C}_t=(L^{*}_t,S^{\mathrm{glob}}_t,V^{\mathrm{glob}}_t)$ shared across assets and asset-level context $\mathcal{C}_{a,t}$ (own volatility, own sentiment) where available. A pooled model with asset fixed effects, or partially pooled (hierarchical) coefficients on the context terms, multiplies the effective sample for the context coefficients while leaving each asset's momentum measurement untouched. Cross-sectional dependence is handled with clustered (by time) or Driscoll–Kraay standard errors (Driscoll & Kraay 1998).
Design decision
Whether the system remains single-asset or goes panel is decided early (Phase 0), because it determines the data architecture; retrofitting the cross-section later is expensive. The single-asset system remains valid as a measurement and monitoring architecture; claims of predictive value for slow macro conditioning variables require the panel.
Multiple-Testing Control
Testing $N$ model variants and selecting $M^{*}=\arg\max_i \mathrm{Performance}(M_i)$ introduces selection bias: the winner is partly selected for benefiting from noise. The research process therefore records every tested model, parameter combination, horizon, and feature variant, and evaluates the winner relative to the total search space. Controls include the Deflated Sharpe Ratio (Bailey & López de Prado 2014), the Probability of Backtest Overfitting (Bailey et al. 2017), White's Reality Check (White 2000), bootstrap comparison, and a final untouched holdout period. The parameter inventory defines the searchable space in advance.
Performance Metrics
Predictive metrics
Log loss, Brier score, ROC–AUC, precision, recall, and calibration error — each reported as skill relative to Baseline 0, e.g. the Brier skill score
$$BS=\frac{1}{N}\sum_{t=1}^{N}(p_t-Y_t)^2, \qquad BSS=1-\frac{BS_{\mathrm{model}}}{BS_{\mathrm{climatology}}}.$$
Calibration
A probability model should satisfy $\mathbb{P}(Y=1\mid p=0.7)\approx 0.7$. Calibration is evaluated separately from discrimination; a model that ranks opportunities correctly but reports exaggerated probabilities is rejected on calibration grounds. Calibration is additionally evaluated by confidence decile.
Nonparametric check: regime-conditional empirical percentiles
The parametric model is additionally checked against a distribution-free counterpart adopted from the companion proposal (Russmann 2026). Partition the context space into coarse regime bins (e.g., terciles of $L^{*}$, $S$, $V$, merged until every bin holds at least 63 observations); within each bin, compare the empirical frequency of $Y=1$ per RSI decile against the model's average predicted probability in the same cell,
$$\widehat F_{Y\mid \mathrm{bin},\,\mathrm{decile}} \quad\text{vs.}\quad \overline{\hat p}_{\,\mathrm{bin},\,\mathrm{decile}},$$
both computed point-in-time. Material, systematic divergence flags functional-form misspecification of the parametric model (e.g., an RSI effect that is nonlinear where the logistic assumes linearity) in a way overall calibration curves can mask. Under exchangeability within a regime bin, empirical-percentile thresholds additionally carry finite-sample marginal coverage guarantees in the conformal sense — a better-founded relative of the Mahalanobis familiarity component, and its natural cross-check: cells that are sparse here are exactly where $C_{\mathrm{dist}}$ should be low. The check is diagnostic, not a second signal channel; Principle 5 stands.
Trading metrics
If translated into a strategy: CAGR, Sharpe ratio
$$SR=\frac{\mathbb{E}[R_p-R_f]}{\sigma(R_p-R_f)},$$
Sortino ratio, maximum drawdown, turnover, hit rate, profit factor, average trade return, tail losses — with HAC-adjusted uncertainty.
Transaction costs
All strategy evaluation includes costs:
$$R^{\mathrm{net}}_t=R^{\mathrm{gross}}_t-TC_t, \qquad TC_t=c_{\mathrm{tc}}\,u_t$$
for turnover $u_t$ as a simple approximation, covering commission, bid–ask spread, slippage, and financing where relevant. (The cost coefficient is written $c_{\mathrm{tc}}$ to avoid collision with other symbols; see the notation table.)
Regime-specific evaluation
Performance is reported separately for bull ($R_{\mathrm{mkt}}>0$) and bear ($R_{\mathrm{mkt}}<0$) markets, high ($V_t>1$) and low ($V_t<-1$) volatility, and expanding ($L_t>0$) versus contracting ($L_t<0$) liquidity — with the caveat that single-asset regime cells for liquidity are severely underpowered and are reported with their effective sample sizes. A model that performs well only in one regime is not presented as universally valid.
Parameter Inventory
Principle 4 preaches parsimony; the honest inventory below shows how much freedom the full system actually contains. Each parameter states its allowed range and status (F = fixed a priori, T = fitted in training/inner folds only). Anything not in this table does not exist as a degree of freedom; adding a row is a recorded research decision that enlarges the multiple-testing space.
| Component | Parameter | Range / value | Status |
|---|---|---|---|
| RSI | horizons | $\{7,14,28\}$ | F |
| RSI | smoothing | Wilder ($\alpha=1/n$) | F |
| RSI scaling | center, scale | $50$, $25$ | F |
| Liquidity | standardization window $N$ | $[120,600]$ months of history | F (choose once) |
| Liquidity | country weights $w_i$ | GDP weights | F |
| Liquidity | distributed-lag decay $\lambda$ | $[0.01,0.5]$ | T |
| Liquidity | lag truncation $K$ | $\le 24$ months | F |
| Sentiment | time decay $\lambda_s$ | $[0.05,1]$ per day | T |
| Sentiment | duplicate threshold $\theta_{\mathrm{dup}}$ | $[0.7,0.95]$ | F (choose once) |
| Sentiment | source weights $r_j$ | fixed editorial list | F |
| Sentiment | volume scale $k$ | $[0.01,1]$ | T |
| Sentiment | orthogonalization lags | $\{1,5,20\}$ days | F |
| Volatility | window $n_v$ | $\{21\}$ | F |
| Volatility | standardization window | as liquidity | F |
| Model | regularization $\lambda$ | log-grid | T (inner folds) |
| Model | interactions | $\{L^{*}S,\;\widetilde{RSI}_{14}L^{*},\;\widetilde{RSI}_{14}S\}$ only | F (pre-specified) |
| Model | horizon $H$ | $\{10\}$ primary; $\{5,21\}$ robustness | F |
| Validation | regime-bin minimum | $63$ obs; merge below | F |
| Thresholds | band offset $\delta$ | $0.10$ | F |
| Confidence | $\lambda_D,\lambda_M,\lambda_A,k$ | bounded grids | T, gated |
| Confidence | OOD estimator | Ledoit–Wolf / MCD / quantile | F (choose once) |
| Signals | $\theta_p,\theta_c$ | training-set calibration | T |
| Costs | $c_{\mathrm{tc}}$ | instrument-specific estimate | F |
The table is deliberately uncomfortable: it is the multiple-testing surface made visible, and it is the discipline device that keeps the search space fixed before evaluation begins.
Scientific Hypotheses
Hypotheses are operationalized as nested out-of-sample model comparisons with HAC-adjusted inference; the original draft's conditional-mutual-information notation promised estimators the methodology never supplied and is retained only as intuition.
Hypothesis 1. Multi-horizon RSI contains more predictive information than $RSI(14)$ alone: the model with $\{RSI_7,RSI_{14},RSI_{28}\}$ outperforms the $RSI_{14}$-only model out of sample.
Hypothesis 2. The liquidity impulse provides incremental predictive information conditional on momentum: adding $L^{*}_t$ improves out-of-sample skill over the momentum-only model. (Intuition: $I(R_{t,H};L_t\mid RSI_t)>0$.) Per the power discussion above, this hypothesis is testable with adequate power only in the panel design.
Hypothesis 3. Financial sentiment provides incremental predictive information conditional on momentum, and the contribution survives orthogonalization against trailing returns, subject to the NLP-vintage caveat.
Hypothesis 4. Volatility improves the system primarily by modifying uncertainty (calibration, confidence) rather than directional expectation.
Hypothesis 5. The separated RSI/context architecture generalizes better out of sample than direct RSI modification (integrated ContextRSI used as the comparator).
Falsification Criteria
The concept must permit failure. The context model is rejected or simplified if:
- out-of-sample skill does not exceed Baseline 0 and the RSI-only baselines;
- predictive improvements disappear after transaction costs;
- performance is confined to one narrow historical regime;
- coefficients change sign repeatedly across folds;
- probability calibration is poor;
- performance disappears after correcting for multiple testing over the inventoried search space;
- liquidity contributes no incremental information (in the adequately powered panel design);
- sentiment contributes no incremental information, or its contribution does not survive orthogonalization against trailing returns or the vintage-frozen NLP check;
- the confidence layer fails its gate: conditional Brier score is not monotone in confidence decile.
A component that fails is removed, not defended because it makes the architecture look sophisticated.
Development Phases
Phase 0: Base rate, power, and design decision. Compute the unconditional base rate $\bar Y$ and its stability across subsamples; compute the realistic effect-size ceiling; estimate required sample sizes for the target effect sizes under HAC-adjusted inference; and decide single-asset versus panel. Every later "improvement" claim uses these numbers as its denominator.
Phase 1: RSI kernel. Wilder RSI at horizons $7/14/28$ with deterministic unit tests, including the edge cases and the $\alpha=1/n$ smoothing check.
Phase 2: Volatility. Add $V_t$ (log-scale z-score). Validate whether volatility improves calibration relative to fixed interpretation.
Phase 3: Liquidity. Vintage-aware M2, release-time handling, growth normalization, aggregation, distributed lag. Incremental evaluation against momentum-only models — in the panel if Phase 0 selected it.
Phase 4: Sentiment. Financial NLP with declared vintage treatment, source weighting, decay, duplicate clustering, effective volume, and the return-orthogonalized series $S^{\perp}_t$. Incremental evaluation is run with raw and orthogonalized sentiment; the orthogonalized result is decisive.
Phase 5: Probabilistic model. Estimate $\mathbb{P}(R_{t,H}>0\mid X_t)$; evaluate skill versus Baseline 0, calibration, and discrimination. Derive interpretation thresholds by model inversion.
Phase 6: Confidence layer — with gate. Data completeness, sentiment volume, agreement, robust OOD detection. Pass/fail gate: conditional Brier score monotone in confidence decile out of sample. Failure means simplification or removal of the layer before proceeding.
Phase 7: Controlled interactions. Only after the simple model is stable, evaluate the three pre-specified interactions; retain only those surviving repeated out-of-sample evaluation.
Data Requirements
Price data
Fields: timestamp, open, high, low, close, volume; minimum frequency daily. Intraday implementations are considered separately.
Monetary data
Fields: country, economic_period, publication_timestamp, vintage_timestamp, m2_value, currency, definition_version.
News data
Fields: article_id, publication_timestamp, source, headline, body, entities, language, url_hash; derived: sentiment, novelty, source_weight, cluster_id, relevance; plus the nlp_model_vintage used for scoring and a documented statement of archive coverage limitations.
Feature store schema
A daily record contains:
date, price_close,
rsi_7, rsi_14, rsi_28, rsi_diff_7_14, rsi_diff_14_28,
liquidity_impulse, liquidity_distributed,
sentiment, sentiment_orth, sentiment_effective_volume, nlp_model_vintage,
realized_volatility, log_volatility_zscore,
threshold_lower, threshold_upper,
probability_up, expected_return, confidence,
base_rate_train
(The former threshold_center/width fields are removed with the old layer; the training base rate is stored so that every probability is interpretable against its reference.)
Calculation Order and Invariants
Calculation order
For each time $t$: (1) load market observations available at $t$; (2) compute fixed-period RSI; (3) compute volatility from historical returns only; (4) load monetary releases published by $t$ at their $t$-available vintage; (5) compute country impulses; (6) standardize with historical-only statistics; (7) aggregate global liquidity; (8) apply distributed lag; (9) load news published before $t$; (10) cluster duplicates; (11) compute financial sentiment with declared NLP vintage; (12) compute sentiment confidence; (13) construct context vector; (14) construct model feature vector; (15) produce probability and, if enabled, expected return; (16) derive interpretation thresholds by inversion; (17) estimate confidence; (18) store output.
Information-timing invariant
$$\mathrm{Feature}(t)=f(\mathcal{I}_t), \qquad\text{never}\qquad \mathrm{Feature}(t)=f(\mathcal{I}_{t+k}),\; k>0,$$
for every preprocessing operation: normalization, missing-value replacement, dimensionality reduction, sentiment calibration, hyperparameter selection, model fitting — and, per Principle 3, the training corpora of auxiliary models.
Missing data
Missing context data is handled by (1) last known value, (2) explicit missing-value indicator, (3) neutral prior, or (4) a model variant not requiring the feature. Forward-looking interpolation is forbidden.
Explainability and Output Semantics
Explainability
Every prediction is decomposable. For the logistic model with $z_t=\beta_0+\sum_i\beta_i X_{i,t}$, the contribution of feature $i$ is $\beta_i X_{i,t}$, enabling reports of the form: probability up 68% (base rate 56%); contributions: RSI structure $+0.42$, liquidity $+0.31$, sentiment $+0.18$, volatility $-0.12$, interactions $+0.04$. This is preferable to an unexplained black-box score.
Output semantics
| Output | Meaning |
|---|---|
| $RSI_t$ | Relative balance between smoothed recent gains and losses. |
| $L^{*}_t$ | Standardized, distributed-lag monetary expansion or contraction relative to historical conditions. |
| $S_t$ | Time-decayed, novelty-adjusted financial information sentiment (NLP vintage declared). |
| $V_t$ | Current log realized volatility relative to its historical distribution. |
| $p_t$ | Estimated conditional probability that the forward return over horizon $H$ is positive; interpreted against the training base rate $\bar Y$. |
| $T_{\mathrm{low/high},t}$ | RSI levels at which the fitted model crosses the reference probabilities $\bar Y\mp\delta$ given the current context. |
| $C_t$ | Estimated reliability of the prediction given data quality, evidence volume, feature agreement, and distributional familiarity — valid only while the confidence gate holds. |
Canonical output
{
"rsi": {"7": 24.8, "14": 29.4, "28": 38.2},
"context": {"liquidity": 0.82, "sentiment": 0.41, "volatility": 1.18},
"thresholds": {"lower": 31.7, "upper": 76.3},
"forecast": {"probability_up": 0.67, "base_rate": 0.56, "expected_return": 0.018},
"confidence": 0.71
}
This is preferable to Enhanced RSI = 23.784, which hides several conceptually distinct observations inside a single number. Note the base rate is part of the output: a probability without its reference is not interpretable.
Example interpretation
Suppose $RSI_7=24$, $RSI_{14}=29$, $RSI_{28}=38$ (strong short-term weakness relative to longer momentum), $L^{*}_t=0.9$, $S_t=0.45$, $V_t=1.3$, and the model returns $p_t=0.67$ against $\bar Y=0.56$ with $C_t=0.72$. The correct statement is:
Price momentum is strongly negative in the short term, but liquidity and sentiment are supportive. Historical observations with similar conditions produced a positive $H$-period return approximately 67% of the time, against an unconditional base rate of 56%. Elevated volatility reduces signal confidence.
The statement preserves the distinction between observation and inference, and it quotes the base rate.
Canonical Form and Final Output
$$\boxed{M_t=\bigl[RSI_7,RSI_{14},RSI_{28}\bigr]} \qquad \boxed{\mathcal{C}_t=\bigl[L^{*}_t,S_t,V_t\bigr]}$$
$$\boxed{p_t=\mathbb{P}\!\left(R_{t,H}>0\mid M_t,\mathcal{C}_t\right)} \qquad \boxed{C_t=\mathrm{Confidence}(p_t)}$$
$$\boxed{T_{\mathrm{low},t},\,T_{\mathrm{high},t}\ \text{by inversion of the fitted model at}\ \bar Y\mp\delta}$$
The final observable state at time $t$ is
$$\boxed{\Omega_t=\bigl\{M_t,\ \mathcal{C}_t,\ T_{\mathrm{low},t},\ T_{\mathrm{high},t},\ p_t,\ \bar Y,\ C_t\bigr\}.}$$
Architectural Conclusion
The core architectural decision is:
$$\boxed{\text{Do not make RSI responsible for information it does not measure.}}$$
RSI measures momentum. Liquidity measures monetary conditions. Sentiment measures the informational environment. Volatility measures market uncertainty. A single predictive layer determines what their combination historically implies, and every interpretation artifact — thresholds, signal strength, explanation — is derived from that layer rather than specified in parallel. Therefore
$$\text{Measurement}\;\neq\;\text{Context}\;\neq\;\text{Inference},$$
and, equally important after this revision:
$$\text{one inference mechanism, one inventoried parameter space, one base rate.}$$
The architecture preserves those boundaries, states its power limits before testing rather than after, and ships no component — including its own confidence score — that has not survived a falsification criterion of its own.
References
- Araci, D. (2019). FinBERT: Financial Sentiment Analysis with Pre-trained Language Models. arXiv:1908.10063.
- Bailey, D. H., & López de Prado, M. (2014). The Deflated Sharpe Ratio: Correcting for Selection Bias, Backtest Overfitting, and Non-Normality. Journal of Portfolio Management, 40(5), 94–107.
- Bailey, D. H., Borwein, J., López de Prado, M., & Zhu, Q. J. (2017). The Probability of Backtest Overfitting. Journal of Computational Finance, 20(4), 39–69.
- Bernanke, B. S., & Kuttner, K. N. (2005). What Explains the Stock Market's Reaction to Federal Reserve Policy? Journal of Finance, 60(3), 1221–1257.
- Driscoll, J. C., & Kraay, A. C. (1998). Consistent Covariance Matrix Estimation with Spatially Dependent Panel Data. Review of Economics and Statistics, 80(4), 549–560.
- Engelberg, J., & Parsons, C. (2011). The Causal Impact of Media in Financial Markets. Journal of Finance, 66(1), 67–97.
- Ledoit, O., & Wolf, M. (2004). A Well-Conditioned Estimator for Large-Dimensional Covariance Matrices. Journal of Multivariate Analysis, 88(2), 365–411.
- López de Prado, M. (2018). Advances in Financial Machine Learning. Hoboken, NJ: Wiley.
- Loughran, T., & McDonald, B. (2011). When Is a Liability Not a Liability? Textual Analysis, Dictionaries, and 10-Ks. Journal of Finance, 66(1), 35–65.
- Newey, W. K., & West, K. D. (1987). A Simple, Positive Semi-definite, Heteroskedasticity and Autocorrelation Consistent Covariance Matrix. Econometrica, 55(3), 703–708.
- Rigobon, R., & Sack, B. (2004). The Impact of Monetary Policy on Asset Prices. Journal of Monetary Economics, 51(8), 1553–1575.
- Russmann, M. (2026). Context-Aware RSI: Integrating Global M2 Money Supply and News Sentiment. Design proposal, version 2.0, June 2026.
- Tetlock, P. C. (2007). Giving Content to Investor Sentiment: The Role of Media in the Stock Market. Journal of Finance, 62(3), 1139–1168.
- Thorbecke, W. (1997). On Stock Market Returns and Monetary Policy. Journal of Finance, 52(2), 635–654.
- White, H. (2000). A Reality Check for Data Snooping. Econometrica, 68(5), 1097–1126.
- Wilder, J. W. (1978). New Concepts in Technical Trading Systems. Greensboro, NC: Trend Research.
Appendix: Notation
| Symbol | Meaning | Symbol | Meaning |
|---|---|---|---|
| $P_t$ | closing price | $RSI^{(n)}_t$ | RSI with lookback $n$ |
| $G_t,\ L^{\mathrm{RSI}}_t$ | gain / RSI loss | $\widetilde{RSI}$ | standardized RSI, $(RSI-50)/25$ |
| $AG_t,\ AL_t$ | Wilder averages | $D_{a,b,t}$ | RSI horizon spread |
| $RS_t$ | relative strength | $M_t$ | momentum vector |
| $L_t,\ L^{*}_t$ | liquidity impulse / distributed | $S_t,\ S^{\perp}_t$ | sentiment / orthogonalized |
| $V_t$ | volatility regime (log-RV z-score) | $\mathcal{C}_t$ | context $(L^{*}_t,S_t,V_t)$ |
| $R_{t,H}$ | forward log return, horizon $H$ | $Y_t$ | direction indicator |
| $p_t$ | $\mathbb{P}(Y_t=1\mid X_t)$ | $\bar Y$ | training base rate |
| $T_{\mathrm{low/high},t}$ | derived thresholds | $\delta$ | threshold band offset |
| $C_t$ | confidence | $N_{\mathrm{eff},t}$ | effective info volume |
| $D_M$ | (robust) Mahalanobis distance | $Q_t,\ Q^{*}_t$ | signal strength / conf.-adj. |
| $\theta_p,\ \theta_c$ | signal thresholds | $c_{\mathrm{tc}},\ u_t$ | unit cost, turnover |
| $\mathcal{I}_t$ | information set at $t$ | $\lambda,\lambda_s,\lambda_D,\lambda_M,\lambda_A$ | decay parameters |
| $w_i,\ w_k,\ w_j$ | country / lag / article weights | $\theta_{\mathrm{dup}}$ | duplicate threshold |
| $\sigma_t,\ n_v$ | realized vol, window | $H$ | forecast horizon |
Citation. Russmann, M. (2026) 'Context-conditioned RSI: separating momentum measurement, market context, and probabilistic inference'. Revised technical concept, August 2026.
Status. Revised technical concept circulated for discussion. Comments and corrections are welcome. · © 2026 Martin Russmann. All rights reserved.