Skip to content

Back to the catalog

rohonchain
x.comthread

rohonchain

A detailed X thread walking through applying neural networks (specifically LSTMs) to quantitative trading signal generation, with full PyTorch implementation code. It covers why raw price prediction fails due to non-stationarity, how to engineer stationary features (log returns, volatility ratios, momentum, volume z-scores) validated via Augmented Dickey-Fuller tests, LSTM gating mechanics for sequential market data, rigorous train/validation/test splitting with early stopping, walk-forward validation, and Kelly-criterion position sizing.

TL;DR Code-heavy X thread teaching how to build and rigorously validate an LSTM trading signal, from stationary feature engineering through walk-forward backtesting.
Document

What it claims

An X thread ("Roan"/rohonchain) that goes beyond the concepts the summary lists to give the concrete operating parameters and expected performance for an LSTM trading-signal pipeline. The framing insight it hammers: a network trained under MSE learns the conditional expectation E[Y|X], not a point prediction — the die-roll analogy is that it will output 3.5, a value the die can never land on. This is why price prediction fails: E[Y|X] is only meaningful if P(Y|X) is stationary, and price series are not.

Evidence and concrete numbers the summary omits

  • Expected performance ceiling: a well-built model gets 52–57% directional accuracy; the thread's worked example is 54% with Sharpe > 1.0. It explicitly frames the edge as coming from consistency and scale, not signal magnitude — useful for setting expectations before you build.
  • Target design: predict next-period direction (binary) or z-scored return, not raw price/return.
  • LSTM hyperparameters given: hidden_size=64, num_layers=2, dropout=0.2, output via sigmoid; lookback 10–20 trading days for daily, 24 periods (≈2 hours) for 5-min bars.
  • Training specifics: Adam, BCELoss, ReduceLROnPlateau (patience 5, factor 0.5), early-stopping patience 10, and gradient clipping max_norm=1.0 (called out specifically to stop LSTM gradient explosion on long sequences).
  • Sizing rule: Kelly f* = (p·b − q)/b, but use half Kelly for estimation error and never risk >2% of capital on one signal regardless of Kelly.
  • Drift monitoring (not in summary): track the Kolmogorov–Smirnov statistic between live and validation prediction distributions; retrain when KS > 0.1. Baseline for crypto/prediction markets: rolling 90-day training window, walk-forward re-eval every 30 days.
  • Data sources named: yfinance for learning, Polygon.io for institutional tick/OHLCV.

Limits

  • It is a marketing thread, not validated research. The hedge-fund claims (Two Sigma "10,000 signals," Renaissance "66% annually over 30 years," quant comp "$350k–650k") are unsourced motivation, not evidence about this specific code.
  • The provided code is illustrative and incomplete: walk_forward_validation has a literal # train model here gap, and prepare_data mixes lookback-offset indexing in a way you must verify before trusting the split boundaries.
  • No backtest results, transaction costs, or slippage are shown — the 54%/Sharsteps>1.0 figures are stated targets, not a reproduced run. The thread ends on an engagement prompt ("drop your answer in the comments"), reinforcing that this is content marketing.

Worth reading for the hyperparameter defaults, the KS-drift retraining rule, and the Kelly/2%-cap discipline; do not treat the numbers as validated.

Organisations named here

  • Two Sigma
  • Citadel
  • Renaissance Technologies
  • Medallion Fund

Technologies named here

  • Python
  • PyTorch
  • statsmodels
  • yfinance
  • Polygon.io
  • scikit-learn

Techniques named here

  • Stochastic gradient descent
  • Universal approximation
  • Stationarity feature engineering
  • Recurrent Neural Network
  • LSTM
  • Early stopping
  • Sequential train/validation/test split
  • Walk-forward validation
  • Gradient clipping
  • Kelly criterion position sizing
  • Kolmogorov-Smirnov drift monitoring