Zhang, Zohren and Roberts (2019) map TSMOM features to positions with DQN, PG and A2C, plus volatility scaling, on 50 liquid futures 2011–2019. Plain-language intro. Not investment advice.
Takeaway. Do not forecast then invent a rule. Train the agent to output a position in [−1, 0, +1] (or continuous [−1, 1] for A2C). Volatility scaling sizes the trade by σ_tgt / σ_t so a quiet contract and a wild one sit on the same reward scale, and fees sit inside the reward.
Deep Reinforcement Learning for Trading (Zihao Zhang, Stefan Zohren, Stephen Roberts, 2019; arXiv:1911.10107). Pinnacle 50 ratio-adjusted futures (commodities, equity indices, rates, FX); train up to each 5-year block, test 2011–2019.
Fit for learners: DQN/PG/A2C on futures with volatility scaling — concrete RL trading loop to code after work.
This Hub note is a plain-language intro. Not investment advice.
Supervised nets predict a short-horizon return; large trends last weeks. Mapping that number to a held position is the missing step. Sign-of-12-month-return (TSMOM) and MACD rules work in trending books (rates) and bleed in choppy FX. Fully long or short with no size control is painful in high-vol regimes.
A research futures study—not a CTA product.
You see a full loop: features → position → vol-scaled PnL minus cost. That is closer to a notebook you can write than a weight-softmax crypto paper.
Tiny evening exercise: position +1, r = 0.01, σ = 0.02, σ_tgt = 0.15. Scaled PnL ≈ (σ_tgt/σ) × r. Compute it. Then subtract 2 bp × |Δposition| if you flipped from 0. Learning only.
Landing: arXiv abs
Not investment advice. This Hub note is educational only. Zhang–Zohren–Roberts is academic RL on historical futures—not a recommendation to run a vol-targeted futures book.
Single course CTA: SoloQuant Academy’s Introduction to Python Programming—multiplying a return by a scale factor is the first line of a vol-targeted PnL.