At 800 steps, this calibration reprices SPX puts to 0.34 and leaves you with a lattice you can use the next morning. Molent and Vellekoop fit a recombining binomial tree directly to quoted option prices, node by node. The tree replaces an implied volatility surface or local volatility function as the final pricing object.
We ran no backtest. Nothing below constitutes a replication or a test of the paper. Our market is liquid US equity ETF options, principally SPY hedged with SPY, rather than SPX. The calibration, valuation and delta-replication mechanism carries over to an ETF surface, though the paper's SPX repricing figures do not transfer quantitatively. Our option data consist of end-of-day marks without bid-ask quotes or prints. Any test available to us would therefore run at daily frequency with assumed spreads. Network width, hyperparameters, maturity-grid design and quote filters would also need reconstruction.
The tree you get
The procedure begins with a Cox-Ross-Rubinstein lattice. Its single constant volatility minimises RMSE across all the option data. A small feedforward network then deforms that benchmark. Scaled time and node log moneyness are its two inputs, followed by two ReLU hidden layers. The output is a scalar log-deformation at each node. Each calibrated node equals its benchmark value multiplied by the exponential of that deformation, which preserves positivity by construction.
Up-probabilities follow from the martingale condition. European prices use Arrow-Debreu state prices propagated forward, while American prices use ordinary backward induction with the early-exercise obstacle.
Three terms enter the loss: price MSE, a quadratic ReLU penalty for probabilities outside [0,1] with a fixed weight of 1e6, and an optional first-order Tikhonov penalty on squared tree-implied local variance in the log-price direction.
Adam, a learning-rate finder, a two-regime cosine schedule and best-so-far checkpointing handle the optimization.
After calibration, Gaussian process regression reconstructs a continuous local volatility surface with a squared-exponential ARD kernel. This serves only as a diagnostic and never changes the calibrated tree.
The paper uses two test beds. Synthetic European calls form the first. A known local volatility function generates them through PDE pricing with 1000 space steps and 500 time steps. The training sets contain either 10 maturities by 20 strikes or a sparse 3 by 6 grid. Out-of-sample evaluation uses a dense 256 by 256 grid over the same domain.
The market test uses SPX puts from 18 May 2019, with dividends stripped, S0 = 2859.53 and r = 0.023. Maturities range from 0.055 to 2.5 years and strikes from 1150 to 4000. The split contains 1720 training quotes and 1725 testing quotes. Wang et al. used this dataset for DSCL, their deep self-consistent local volatility method, which supplies the paper's comparison throughout.
With an 800-step SPX tree trained for 16000 epochs, RMSE reaches 0.30 index points in sample and 0.34 out of sample. DSCL records 0.97 and 3.26 on the same data. The out-of-sample result is roughly ten times better. On the dense synthetic grid at 720 steps, the corresponding figures are 0.04 in sample and 0.06 out of sample, versus 0.94 and 1.08 for DSCL.
That synthetic calibration takes 3.6e3 seconds, compared with the 9.5e3 reported for DSCL. The authors describe the runtime comparison as indicative only. It compares MATLAB with Python, both running on CPU, with no GPU tuning on either side.
Resolution does the work. Raising the SPX tree from 100 to 800 time steps lowers in-sample RMSE from 0.84 to 0.30 at 16000 epochs. At 100 steps, increasing training from 2000 to 16000 epochs only moves RMSE from 0.97 to 0.84. The price is a tree containing (N_T+1)(N_T+2)/2 nodes.
When does the guarantee hold?
The abstract describes the model as guaranteed to be arbitrage-free and complete. Proposition 2.1 establishes that result when the one-step ordering inequalities hold at every node. The authors acknowledge the gap in Section 2 and again in Section 3.2. Those inequalities are checked after optimization rather than enforced as hard constraints during every step: "The calibrated trees generated in our numerical experiments are checked ex post to satisfy (2.3)." They continue: "Hence, it applies for all nodes in all reported calibrated trees."
Section 3.2 reports that admissibility and node ordering were verified at every node with the penalty weight fixed at 1e6. Proposition 2.1 then makes all generated binomial markets arbitrage-free and complete.
The assurance applies separately to each run. Every calibrated tree needs its own ordering check because the parametrization can still produce a failure. Theorem 4.1 proves existence of a global minimiser on a compact admissible subset. The following remark concedes that training need not converge there.
Several implementation choices remain unspecified in the text. Hidden width is denoted N_L without a numerical value. The GPR noise level appears as a smoothness control without a reported figure, and the small constant eps_x in the spatial penalty is also omitted. The learning-rate schedule is given verbally rather than through parameters. Footnote 1 says non-uniform time grids are straightforward to add and were not implemented.
Six strikes and three maturities are too thin
On the sparse 3 by 6 synthetic grid at 720 steps, the tree reaches 0.02 in-sample RMSE and 1.22 out of sample. The deformation network has memorised the quotes. DSCL produces 1.81 on the same sparse grid.
Setting the spatial penalty to lambda_space = 3 reduces out-of-sample error to 0.76. Treat that improvement as an upper bound. According to the table caption, the shaded entries select the lambda_space that minimises out-of-sample error, so the test metric determines the choice. On the dense grid, out-of-sample RMSE changes from 0.06 to 0.07. Reconstructed local volatility error also deteriorates, moving from 0.4% at lambda_space = 0 to 0.9% at lambda_space = 3, with DSCL at 1% in the same row. The authors' interpretation is apt: the penalty helps guide training more than it improves the final surface.
We have written before about an optional layer that ceases to bind once observations become plentiful (the 0DTE abstention gate). For SPX, the penalty grid is {0, 0.01, 0.03, 0.1} across tree sizes 100, 200, 400 and 800. At N_T = 800, out-of-sample RMSE stays between 0.34 and 0.36 across that grid. The full table spans 0.34 to 0.93.
The benchmark implied trees fare worse even when supplied with the exact local volatility function. Li's construction gives a -32.7% error for the K=1500 call at 45 steps and -48.8% at 360. Moriggia et al. report -0.4% at 45 steps and -68.2% at 360, meaning refinement makes the result worse. The authors qualify this finding as a limitation relative to their specific refinement criterion. They also observe that Li's method relies on weak-approximation arguments, whereas Moriggia et al. target admissibility. Across K = 500 to 1500 and N_T = 45 to 360 on both grids, the proposed method remains within about 1%.
Early exercise in the objective
A tree calibrated on synthetic European calls reprices American puts against a free-boundary PDE with about 0.10 out-of-sample error on the dense grid at 720 steps. Direct calibration to American puts halves the error to 0.05. Runtime rises by 4.4 times, from 3.6e3 seconds to 16.0e3 seconds, because each loss evaluation requires the obstacle recursion.
The sparse-grid result reverses the case for direct calibration. Training on American puts reaches 0.002 in sample and 1.19 out of sample, while the European-calibrated tree records 0.94 there. Early-exercise information added to a thin quote set damages generalisation. The shaded best entries in the local-volatility and American-put regularization tables use the same test-metric selection, leaving those reported gains optimistically stated as well. We did not find a test using market American quotes. The American analysis is synthetic and benchmarked against PDE.
Our option data have no quotes, so we cannot determine whether a 0.34-point SPX put repricing error falls inside the touch or beyond it. The paper reports no P&L, Sharpe or hedging error either, which is reasonable for a calibration paper.
One date supplies all the market evidence. I would want 250 consecutive SPX cross-sections next, together with a record of how much the calibrated tree changes from day to day. Stability of the deformation through time would make this useful as a hedging model. At 8.7e3 seconds for a single SPX date with 800 steps, the cost of answering that question is already visible.