The bar clock is worth copying now. HARN's neural stack has yet to be tested against a last-value forecast.
The leak in mixed-timeframe features
Anyone combining 15-minute and hourly features knows the trap. The 15-minute bar has closed while the hourly bar continues to form. Resampling or forward-filling can expose the unfinished hourly high, low and close, or refresh a coarse feature even though no new information exists.
Saidd's solution makes the finest timeframe the anchor clock. At every anchor event, each coarser level retrieves its latest bar whose timestamp is no later than the anchor. A binary flag activates only when the timestamps match exactly. With the flag at zero, the level carries its state forward through an exact identity, without a gate or approximation.
The reported update rates provide a useful check. USDCHF's hourly level fires at 0.250 against the M15 anchor, while EURUSD's H4 level fires at 0.063. AAPL's hourly rate is 0.232 rather than 0.25. The paper says the rates are roughly consistent with the ratio of bar durations. Session boundaries could explain the shortfall from 0.25, although the paper does not offer that explanation.
The clock is the contribution.
The network built around it gives each level a causal dilated-convolution encoder operating on 32-bar OHLCV windows, along with a 72-dimensional state. Each level also holds a 72x18 matrix memory. A bounded outer product of a retrieval residual writes to that memory. The paper names the residual "surprise", while conceding that no experiment establishes whether it tracks prediction error, novelty or market events.
Information moves between levels through attention along the level axis, called "resonance", and through a bottom-up readout from the level below. That readout combines the latest read and the buffer mean using hand-set coefficients of 0.35 and 0.15. Each head forecasts the next bar's close change in basis points, then reconstructs the price.
The datasets are AAPL (M15/H1), EURUSD (M15/H1/H4), USDCHF (M15/M30/H1) and spot gold (M5/M15), using chronological 70/15/15 splits. Test windows for FX and gold are brief: 221.8 days for EURUSD, 218.2 for USDCHF and 76.7 for gold. AAPL's test split covers 2025-03-06 to 2026-08-10, or 522.2 days and 9,286 observations. At the anchor timeframe, HARN reports lower MAE than both PatchTST and TimeXer across all four assets. AAPL M15 records 0.507696, compared with 2.074401 for PatchTST and 2.881886 for TimeXer.
What does the 2.4x to 4.1x MAE gap prove?
The author answers first: the comparison is descriptive. HARN receives every timeframe, forecasts basis-point changes and trains on contiguous stateful streams with a cosine schedule and patience 15. The baselines receive only the anchor, regress a normalized absolute close, and train on shuffled stateless batches at a constant rate with patience 5.
The target difference is my leading explanation. The paper calls it "not cosmetic" yet offers no experiment that isolates its effect. A basis-point head can reproduce the last close exactly by outputting zero, giving the BPS head a trivial route to persistence. A level regressor must learn that behavior. The baseline results themselves suggest trouble in their pipeline: despite sharing principal dimensions with PatchTST, TimeXer posts MASE of 43.04 on USDCHF M15 against PatchTST's 1.94.
The paper frames the protocol as its contribution and makes no claim of "universal predictive superiority." I accept that protocol claim. Associative memory is unnecessary for the protocol, while the available evidence cannot establish what the memory contributes.
Seed behavior sharpens the concern. Across seeds 42, 151 and 359, HARN's AAPL MAE moves by about 0.1% of its mean. PatchTST and TimeXer move by about 28%, while several HARN entries round to ±0.000000. The ablations are treated as single runs and cover only AAPL and EURUSD.
Removing the memory, resonance or evidence path shifts AAPL M15 MAE from 0.506070 into a narrow range between 0.507230 and 0.508024. On AAPL H1, two variants, A1 at 1.798886 and A3 at 1.796596, outperform the full model's RMSE of 1.801484. The author also acknowledges that the full model in the ablation run differs from the headline means, 0.506070 against 0.507696. The discrepancy matches the scale of the component effects.
The author calls the variance "unresolved." My simpler hypothesis is that a model showing almost no movement across seeds or component removals is staying close to zero basis points. This remains a guess. A persistence run would resolve it, and the author lists that run as required.
MASE cannot answer the question either, as the author states. At the anchor, MASE is 0.865688 for EURUSD and 0.800131 for USDCHF, versus 1.327584 for AAPL and 1.136012 for gold. Its denominator is the mean absolute first difference of the training-period target sequence. It therefore gives no direct test-period persistence comparison.
We have previously covered forecasters that lag a no-information benchmark (/articles/target-alignment-dilution-and-forecast-selection-when-cross-sectional-forecasts). The paper has not yet run the comparison needed here, although its conclusion identifies it as open work.
Price error without a trade
We found no hit rate, sign accuracy, P&L or cost model anywhere in the paper. Reported metrics are limited to MAE, RMSE, sMAPE and MASE on reconstructed price. HARN's AAPL M15 sMAPE is 0.204947%, roughly 20 bps of average error per bar. Whether any residual signal within that error survives the spread remains outside the question the paper answers.
Our market, then the model
We cannot trade spot FX or XAUUSD. Our implementation uses US equities and liquid ETFs, including GLD, with minute bars resampled into intraday levels. None of the paper's error figures carry over to that universe, and our results are not yet available.
The audit comes first. The paper's 14-row causality check amounts to static code review, and the author explicitly says it is not a perturbation test. Static review also misses bar construction, timestamp conventions and price adjustment. Exact timestamp equality works only when every level labels bars consistently. Choosing bar-open or bar-close timestamps determines whether the flag activates at the close or a full bar early. Our first test therefore perturbs every bar after the anchor and requires the forecasts to remain unchanged.
The model then faces zero-basis-point persistence. After that comes a matched baseline receiving the same forward-filled higher-timeframe features and the same update flag. Net returns under realistic execution come later. If HARN beats both baselines out of sample after costs, the neural stack earns its place. Until then, copy the clock and wait on the network.