At 10 bps in trading costs, plain inverse volatility beat XGBoost allocation across five Binance USDT pairs. A trailing 30-day average of absolute returns also forecast the next day's absolute return better than XGBoost, random forest, GARCH(1,1) and an LSTM. Uddin reports both findings. His cautious summary is that "complexity in forecasting does not necessarily equate to improved investment performance." The numbers support a narrower claim: across 272 test dates, XGBoost earned an extra 0.405 points gross over inverse volatility. At 10 bps, its additional turnover cost more than that.

Volatility clustering supplies the rationale. ARCH-LM tests reject at p < 0.001 for all five coins, giving recent return magnitude a basis for predicting tomorrow's magnitude. Weighting coins by inverse expected risk should then reduce portfolio volatility without a directional forecast. Uddin uses daily spot prices for BTC, ETH, BNB, ADA and SOL, covering 2,241 common dates from August 12, 2020. The target, |r(t+1)|, is the next day's absolute return. Its inputs are 11 price-only features: the current return, 7/14/30-day rolling means and SDs, and lags 1, 2, 3 and 7.

Random forest, XGBoost and a zero-mean Gaussian GARCH(1,1) are fitted separately for each coin; the LSTM pools the coins. Training ends on December 30, 2024 (7,865 observations). Validation covers 2025 (1,820), followed by a test period from January 1 to September 29, 2026 (1,360).

The portfolio comparison spans 272 dates of 2026, with daily rebalancing. Equal weight assigns 20% to each coin, while inverse volatility uses the inverse trailing 30-day SD. XGBoost weights invert its absolute-return forecast, subject to a forecast floor of 0.005 and a coin cap of 40%. All three portfolios lost money. Their gross cumulative returns were −11.626%, −9.192% and −8.787%, respectively.

Which forecast loss matters?

The trailing-average baseline records test MAE of 0.015123. The alternatives fare worse: XGBoost at 0.016190, random forest at 0.016418, LSTM at 0.017018 and GARCH at 0.017025. Using Newey-West loss-differential tests with Holm adjustment, the paper reports significantly larger absolute errors for all four alternatives (p < 0.005).

Change the loss and the ranking changes. Test RMSE is 0.022196 for XGBoost and 0.022192 for the baseline, a difference in the sixth decimal. In validation, random forest (0.030268) and XGBoost (0.030354) both have lower RMSE than the baseline (0.030674). We did not find a significance test on squared errors.

Reproducing GARCH requires an early judgment call. Under a zero-mean Gaussian model, expected absolute return is σ times √(2/π), about 0.798σ. The paper acknowledges that conditional SD and realized absolute return "are not mathematically equivalent," yet we could not determine whether it rescaled the forecast. Without rescaling, the GARCH forecasts would be about 25% above Gaussian expected absolute return. Its 0.017025 MAE could therefore partly reflect a mismatch in units.

We also did not find the objectives or hyperparameters for XGBoost and random forest. The sole tuning statement says the model "was configured based on the validation performance" and appears after the LSTM description.

Turnover explains the 5.66 bps crossover

The paper measures turnover as half the sum of absolute differences between target weights and prior weights drifted by the previous day's returns. Daily net return deducts c/10,000 times that turnover. XGBoost averages 3.855% daily turnover; inverse volatility averages 0.977%. By our arithmetic, charging 10 bps over 272 days costs roughly 105 bps for XGBoost and 27 bps for inverse volatility before compounding.

The reported returns agree with that calculation. Moving from gross to 10 bps, XGBoost loses 0.954 points, going from −8.787% to −9.741%. Inverse volatility gives up 0.241, moving from −9.192% to −9.433%. Dividing the 0.405-point gross advantage by the per-bp cost difference gives about 5.7 bps, consistent with the reported 5.6643. XGBoost still leads at 5 bps, returning −9.265% against −9.312%.

The arithmetic holds together. The paper's bootstrap, however, finds no significant XGBoost return advantage. This break-even marks the crossing of two noisy point estimates. The author explicitly excludes slippage, market impact and initial setup costs. Slippage and market impact scale with turnover, leaving the XGBoost portfolio most exposed to those omissions.

Read Table 6 carefully: the conclusion describes inverse volatility as runner-up "under the lowest transaction cost (10 bp)," mixing the gross and net columns. The table is the guide here.

A 2.25-point volatility reduction without a model

Inverse volatility has annualized volatility of 52.004%, compared with 52.092% for XGBoost and 54.258% for equal weight. Both reductions versus equal weight are significant at a Holm-adjusted p = 0.001. The risk-aware portfolios have indistinguishable volatilities (p = 0.673), and the bootstrap finds no significant XGBoost return advantage. The conclusion also reports no significant improvement in average returns. The surviving result is a reduction of about 2.25 points, available through inverse volatility alone. A fitted forecast losing to a historical average is familiar from our fear-and-greed note, where ridge lost to the historical mean.

The comparison also gives the risk-aware portfolios different constraints. XGBoost has a 0.005 floor and a 40% cap; inverse volatility, as described, has neither. We did not find figures showing how often either constraint binds. The lookback is ambiguous too: inverse volatility uses a 30-day SD described as "over the past three months," leaving an implementer to choose a reading. Although the paper lists Sharpe ratios and maximum drawdown among its portfolio metrics, we did not find portfolio-level results for either.

Five coins, with dates beyond acceptance

The evidence is thin: five coins and 272 portfolio dates. The regime comparison contains 31 high-volatility days, on which the LSTM performs worst, and 241 low-volatility days.

VaR testing uses 273 dates per coin. At 99%, that implies about 2.7 expected exceedances, leaving little evidence for the coverage tests to assess. The author does describe the ES diagnostics as exploratory. At 95%, conditional coverage is rejected for ADA (p = 0.0065), BNB (0.0330) and ETH (0.0470). The discussion refers to "four cryptocurrencies" while naming three.

The dates do not reconcile. The data section gives September 30, 2026 as its endpoint; 2,241 inclusive days from August 12, 2020 reaches exactly that date. The introduction instead gives 2026-09-01. According to the article history, the paper was received May 20, revised August 12 and accepted September 22, 2026. A manuscript accepted on September 22 cannot contain a test window through September 29 and a portfolio window through September 30. The limitations paragraph further says rebalancing "was only conducted once a year," contradicting daily rebalancing and the 1/7/14-day sensitivity runs. Until these discrepancies are resolved, an implementer cannot know which data underlie Tables 4 and 6.

We did not rerun any of this.

We hold no crypto spot price history. Substituting another universe would test a different strategy, so every check above compares the paper's own figures with one another.

The usable finding is that inverse 30-day SD weights, rebalanced daily, reduced volatility by about 2.25 points relative to equal weight in 2026. We would change our mind about the XGBoost layer if it delivered a significant gross advantage with the same 40% cap and 0.005 floor applied to inverse volatility, across a test window longer than nine months.