Selected work KV / Feature Speed Paper
Machine learning under trading costs · ICAIF submission

A prediction is only useful if you can hold it.

Fast-moving inputs can make a model rebuild the portfolio every month. The paper tests inputs, model sensitivity, and update rules in separate experiments. Open each measured result to see where implementation churn enters.

Feature speed makes an implementation problem visible before a model is trained.

  1. Measure upstreamFSI uses only pre-OOS characteristic rank persistence.
  2. Separate the channelsInputs, model sensitivity, and rebalancing create distinct turnover pressure.
  3. Test out of sampleAcross 15 emerging markets, slower Ridge inputs preserve more net performance at 3× costs.

A real monthly replay needs the trade ledger.

The local research package contains the paper and its measured aggregate results. It does not contain the asset-month export behind those results. This page therefore does not invent a sequence from Sharpe and turnover.

Available Submitted-paper experiment endpoints

Gross and net Sharpe, turnover, score stability, feature persistence, cost calibrations, model perturbations, and update-rule results.

Needed for replay Anonymized asset-month ledger

Market, month, asset ID, score, rank, previous and target weight, trade, spread, return, cost, and gross and net contribution.

Actual out-of-sample coverageMonths through 2025-02
  • BRA83
  • CHN78
  • GRC78
  • IDN80
  • IND81
  • KOR86
  • MEX93
  • MYS90
  • PHL87
  • POL69
  • SAU56
  • THA84
  • TUR79
  • TWN78
  • ZAF93
These are the exact market-level test lengths in Table 2. They show the evidence window, not monthly portfolio performance.

Where does prediction churn enter?

These controls do not build one strategy. Each module opens measured endpoints from a different experiment in the submitted paper.

Experiment ARidge feature sets · 15-market mean · headline OOS windows

Inputs × trading costs

What survives the spread?

Cost calibration
Persistent information setSlow-feature Ridge

Accounting and fundamental characteristics move more slowly. They keep similar gross signal while asking the portfolio to trade less.

pre-OOS rank AC
0.97
score stability
0.939
monthly turnover
10.2%
12-month IC retained
69%

Exact paper endpoints. The switch compares the measured no-cost gross Sharpe with the paper’s 3× capped-spread calibration. It does not interpolate a return path.

Experiment BSeparate sensitivity sample and specification

Model sensitivity

Keep the slow inputs fixed.

Prediction model
ranking instability0.001

The linear ranking barely changes under the perturbation.

Separate sensitivity exercise. The comparison covers all 15 markets, uses about 102 OOS months per market, and holds the sample and perturbation draws common across models. XGBoost and LightGBM use 100 trees at depth 3; this exercise does not use the top-20 selector. Instability is one minus Spearman rank correlation after adding 0.01-SD noise to every slow characteristic.

Experiment CAll-feature Ridge · measured at 3× costs

Portfolio update

Choose what becomes a trade.

Update rule
net Sharpe0.24
turnover23.3%
score stability0.750

Raw monthly ranks preserve the strongest gross signal (0.57), but translate every ranking change directly into the portfolio.

Measured at 3× costs. EMA is selected on the latest 24 fitted months; quarterly is reported as the range across three anchor schedules.

Do not combine these settings. Experiment B changes the model in a separate sensitivity design. Experiment C changes the update rule for standard all-feature Ridge. Neither is a continuation of Experiment A.

Persistence becomes ranking churn, then cost drag.

The lab above exposes measured states one decision at a time. This view places the 15-market Ridge comparison and pre-OOS FSI validation on one rail.

Ridge inputsrank ACscore stabilitymonthly turnovergross → net SR
Slow · 57 features0.970.939 10.2% 0.500.36−0.14 drag
Fast · 38 features0.670.539 30.1% 0.510.09−0.42 drag
Pre-OOS FSI across 20 equal-sized random Ridge setsSpearman ρ = 0.83 with turnoverSpearman ρ = 0.80 with gross-to-net SR lossleave-set-out R² = 0.51 for both
Cross-check for the lab above. Rank AC is feature persistence; stability is adjacent-month stock-score rank correlation. FSI is diagnostic of feature-induced pressure, not a causal estimate of total turnover.

A stronger gross signal can still lose after trading.

At the same 3× cost calibration, all-feature Ridge starts with the strongest gross Sharpe here, but its turnover reverses the ordering after costs.

Net SharpeGross Sharpe0.00 → 0.60
Ridge · slow
net 0.36gross 0.50
10.2% TO
MomentumSort
net 0.27gross 0.49
17.0% TO
Ridge · all
net 0.24gross 0.57
23.3% TO
Ridge · fast
net 0.09gross 0.51
30.1% TO
Slow-feature Ridge exceeds MomentumSort in 10 of 15 markets; the pooled block-bootstrap comparison is imprecise (one-sided p = 0.12). Against Ridge All, the paired result is stronger (one-sided p = 0.008).

Read the design, inference, and robustness tests.

Open the paper