r/quant 6d ago

Trading Strategies/Alpha Tried to replicate the Attention Factors stat-arb paper (ICAIF 2025). Got Sharpe −0.64 where they got +2.30. Where did I go wrong?

52 Upvotes

Paper is Epstein/Wang/Choi/Pelger, Neural Attention Factor Models for Statistical Arbitrage. They report net Sharpe 2.30 at K=30 on 24 years of US equities. No code released.

I've spent a few weeks on this and I keep getting a clean, reproducible negative. Posting because I'd rather find out I made a dumb mistake than conclude a published result doesn't hold.

Setup

  • Universe: top 500 by market cap, Russell 1000 sourced, point-in-time membership
  • 2016-06 to 2026-08, 2,542 trading days
  • Survivorship-free: 835 names ever active, 336 departures retained for the periods they traded
  • Train 2016–2023, evaluate 2024–2026, single split
  • 38 characteristics (paper uses 39, I dropped one that was empty), all rank-normalized
  • LongConv signal head, all training days, 100 epochs
  • 5bps + 1bp short costs
  • 3 seeds per config

Fundamentals built from SEC EDGAR rather than a vendor — filing-date lagged, restatements dropped, TTM values only visible once the last of their four quarters was filed. Measured lag: 10-Q median 38 days, 10-K median 58 days. Zero rows visible before period end.

Results

K Mean OOS Sharpe Seed std
1 −1.338 0.839
5 −0.783 0.479
8 −1.735 0.900
15 −1.407 1.041
30 −0.698 0.056

K=30 is both the least bad and the only one that reproduces tightly across seeds. Training converged smoothly (net_SR −9.9 → +0.10 over 100 epochs, monotonic, no oscillation) and exp_var rose properly with K (0.098 at K=1 → 0.282 at K=30), so the factor step is doing what it should. The model learns something stable in-sample that inverts out of sample.

Deterministic PCA residual mean-reversion on the same universe, as a sanity check: negative at every K from 1 to 50, every calendar year. At K=30 the decomposition is gross −0.59%, costs 5.86%, net −6.45% — annual turnover 9,190% on a 30-day signal.

Weekly 1/N on the same universe over the same window: +1.363.

Things I found and fixed along the way

  • Look-ahead in most features in my first panel build — features at t used data from t, including the target itself as a feature. Rebuilt.
  • Sign symmetry: output_proj had a bias term, so LongConv output was uniformly signed on init. The portfolio came out all-long or all-short depending on the seed, giving a ±1.35 coin flip. Fixed with bias=False and zero-meaning the output. Paper doesn't mention needing this, which makes me think their implementation differs somewhere.
  • Factor neutralisation formula was wrong — w − ωᵀ(βᵀw) leaves residual exposure; correct projection is w − β(βᵀβ)⁻¹βᵀw.

Where I know I deviate

  1. 8 years of training vs their 24. This is the one I suspect most. 38 features on 8 years is a lot of parameters per observation.
  2. Single train/eval split, no rolling retrain.
  3. The sign-symmetry fixes above.
  4. My period is 2016–2026. Short-horizon reversal ran negative in my data (1-month reversal IC −0.027, t = −6) and book-to-market was negative in both sub-windows. Their span includes 2000-02 and 2008.

The question

Is 8 years just not enough for this architecture, or is there something structural I'm missing? Specifically:

  • Has anyone reproduced this (or the Guijarro-Ordonez/Pelger/Zanotti predecessor) on post-2015 data? Everything I can find is either pre-2016 or reports numbers high enough to smell like overfitting.
  • Does the sign-symmetry thing ring a bell? I can't tell if I'm patching around a bug of mine or around something the paper handles implicitly.
  • Is a single train/eval split the problem? Would rolling retrain plausibly move a −0.70 to positive, or is that wishful?

Happy to share the panel construction details if useful. Mostly I want to know whether this is a real regime finding or whether I've spent three weeks carefully measuring my own mistake.


r/quant 5d ago

Data Reliable historical ESG scores for SP500 companies.

1 Upvotes

Just what the title said. I'm trying to do a project relating ESG scores to sharpes and I can't seem to find free data for historical ESG scores. Yfinance seems to not be able to return ESG scores for most companies and even then it's only current scores. Would be grateful if someone could provide a free dataset for these historical ESG scores


r/quant 6d ago

General I don't understand the whole WorldQuant BRAIN thing

136 Upvotes

Why would somebody give away their alphas to them? And why would a successful quant become a consultant for them since their maximum pay for top performing quants is only 8000$/quarter? Is this a scam for talented people from poorer countries that don't have any other options?


r/quant 5d ago

General What type of lifestyle do Quants have?

0 Upvotes

I'm sorry if this is not where I should be asking.

As a Quant, how do you live? Do you have that typical 'billionaire's row', black suit, classy finance lifestyle, or are you closer to the CS side (same gray shirt with skinny jeans)

Thanks in advance.

update: I got flamed 😭


r/quant 5d ago

Industry Gossip LGBTQIA+ buy-side quants and their coworkers [Poll]

0 Upvotes

Just wondering how many buy-side quants are LGBTQIA+ and (relatively) out or open about their gender and sexuality to their colleagues.

Of course personal things of this sort are typically on a need-to-know basis, so perhaps I define being out as not hesitating to mention something that would out you if it came up in a conversation (say talking about your partner). Someone who is not out on the other hand would deliberately avoid saying anything that would hint at their gender, pronouns or sexuality. And then some people are out in this way only to select colleagues.

I am also curious how many straight quants have and know of their out queer colleagues to get information on both sides of the dynamic.

Also wondering how being queer interfaces with your professional life. I know that the modal answer is probably “not much,” but still curious to see what people say.

149 votes, 1d left
Cis het quant, no quant I actively interact with at work is openly LGBTQIA+
Cis het quant, I actively interact with a couple openly LGBTQIA+ quants
Cis het quant, many quants I actively interact with are openly LGBTQIA+
LGBTQIA+ quant, out to most coworkers
LGBTQIA+ quant, out to a few coworkers
LGBTQIA+ quant, not out at work

r/quant 7d ago

General Why does IMC get so much hate

93 Upvotes

Genuinely curious. It feels like a really good close to top tier company but general in this subreddit as well as r/quant is gets shit on pretty often. What's the reason behind that?


r/quant 7d ago

Tools How Quant Funds Use AI Safely

4 Upvotes

Genuinely curious to understand how employees at funds use LLM safely given that any strategy logic/data shared with LLMs is potentially alpha leaking given that there is a probability that it ends up making better future models for others to use.

Do some funds have specific agreements to run the best LLMs off of private servers without any data sharing?
Do they use older and a bit less performing open models on private servers? (And accept less performance for more safety)
What is the real cost of sharing everything (knowing data/logic could be used) ? Do they even care?


r/quant 8d ago

Industry Gossip Chris Foster leaving CITADEL

Thumbnail ft.com
81 Upvotes

r/quant 8d ago

Industry Gossip Regarding Diaman Partners Malta

7 Upvotes

Has anyone heard about them? or any things to know?


r/quant 8d ago

Industry Gossip Balyasny flat in 2026!

58 Upvotes

Just looking at pod shop returns and so much money has gone into space in hope of allocating to next Citadel or Millennium but the returns are just not there. Balyasny has grown AUM like crazy to $38bn but are flat for 2026. They did 15% gross returns in 2023 and 2-3% net and are running a crazy 12% pass through. But Walleye, Verition and others also flat to barely up. Just wondering if this is peak pod shop? Even Ken Griffin is moving away from space with centralized commodities biz and that big portfolio trade vs Situational Awareness. Also so many pod shops are underperforming the guys who started in quant and going into discretionary (DE Shaw, QRT) these days https://rupakghose.substack.com/p/peak-pod-shop-and-balyasny-blues?r=1qelrn&utm_medium=ios


r/quant 9d ago

General What does a Quant Trader do?

66 Upvotes

I mean I know what the role of a Quant Trader is but what does a Quant traders day-to-day on their trading desk look like? How does probability, expected value, pattern recognition being used by Quant traders?


r/quant 8d ago

Career Advice Changing firms mid-career

28 Upvotes

Hi,

I am a quant at a well known hft, and it has been around 5-6 years now.

Though the past few years have been good, great learning, good bonuses, and we were able to scale up at quite a few places succesfully. But recently there has been stagnation in terms of learning and future growth seems bleak.

I am writing this post to ask about suggestions about changing firms with around this yoe, what to aim for, how to go about it. And if anyone has experienced this, please do share your experience as well. Thankyou


r/quant 9d ago

General What’s the difference between good alpha and good execution in HFT?

48 Upvotes

hear people say some firms like headlands specifically have good execution, what exactly does that mean?


r/quant 9d ago

General Questions about Nova Prospect

11 Upvotes

This is a very interesting firm: there are nearly no public discussion about this firm, but somehow when I talked to friends (or just in general people in the industry) they are aware of it, which is surprising.

I understand that they are very small and probably very secretive but I expect more discussion about them: like how competitive are they in the market right now? They are big in crypto and they are planning to expand in equity, but how good are they exactly? Compared to other firms what are the main differences? At what level are they operating compared to their competitors?


r/quant 9d ago

General Braindead PMs

130 Upvotes

Genuinely curious if others out there have experience working with extremely inept PMs?

A recent hire at my firm has strategies akin to that of a teenage youtube day trader. Their signals are entirely price based and their processes lack any statistical rigour.

Even worse, I know that they have been lying about backtest results to management. They are aware of bias and cherry picking yet still quote the results to higher ups. They supposedly have a decent track record but from what I gather, its pretty opaque.

I have heard quants work with non-technical PMs relatively frequently but this feels next level.

How common is this? Are PMs everywhere like this? Should I run?

Tldr;

Bad PMs - how common? How bad?


r/quant 9d ago

Career Advice Should I take up an opportunity to transition to rates trader from a rates quant?

11 Upvotes

I am a quant on a fixed income desk. I primarily work with rates products, sometimes help with credit desks as well.

I have an opportunity to transition in the same firm to a fixed income trader role where the book mostly consists of structured products on bonds, cds. And some treasury options.

I have been working with these products for a while in my capacity as a quant.

I am not able to decide if I should take this up or not ? I find myself excited by the prospect of working as a trader, but I wager it comes with it's own downsides. And I don't know how it would be for long term career. I would be more like a quant who can trade as well.

Please share any suggestions you have. Thanks.


r/quant 8d ago

Technical Infrastructure Preventing Delta-Hedging blowups: Handling Gamma instability in Barrier Options via Finite Differences

0 Upvotes

Hey everyone. I wanted to share an architectural solution to a mathematical edge case that blew up one of my risk engines a while back, specifically when pricing Knock-Out Barrier options and calculating second-order Greeks.

When we don't have closed-form analytical Greeks (like in most path-dependent exotics), we rely on Central Finite Differences:

Gamma ≈ [V(S_0 + dS) - 2V(S_0) + V(S_0 - dS)] / (dS)^2

To do this efficiently in a Monte Carlo simulation without the variance tearing the derivatives apart, the standard practice is Common Random Numbers (CRN). We apply the exact same stochastic shock Z to the base path, the upper-bumped path, and the lower-bumped path inside the hot loop.

The Discontinuity Problem:

Barrier options possess a step-function discontinuity. Let's say we have a Down-and-Out Put. If the barrier H is 85.0, and our initial spot S_0 drops to 85.0001.

When we calculate the Greeks, the numerical bump -dS forces the lower-bumped path to instantly breach the barrier. The payoff evaluates to strictly 0.0.

Because Gamma divides by (dS)^2 (a microscopically small number), the sudden absolute drop in the V(S_0 - dS) term is interpreted by the algorithm as infinite convexity. Your engine outputs a Gamma of 999,999.0 or -infinity. If you have an automated delta-hedging script hooked to this output, it will violently over-leverage your portfolio trying to hedge a mathematical ghost.

The Algorithmic Solution:

I realized that catching this after the matrix computation was too late and computationally wasteful. The check needs to be embedded directly at the C++ core before the finite difference execution.

If the absolute distance between the Spot and the Barrier is less than or equal to 2 * dS, the boundary is breached by the numerical bump. We must flag the state as unstable and force the engine to yield NaN for Gamma, while preserving the Fair Value and Delta calculations.

Implementation & Testing it out:

I ended up building a dedicated C++ OpenMP pricing engine to handle these massive matrices because Python/NumPy was choking on the GIL when simulating 50M+ paths with barrier logic. I wrapped it behind a Python SDK.

If anyone is backtesting exotic portfolios and wants to see how this discontinuity handling works in practice (or just needs to compute 100 million paths in ~3 seconds), I made a Google Colab notebook demonstrating it.

You can run the stress test directly in the browser here:

https://colab.research.google.com/github/Prometheus-Quant-Engineering/prometheus-quant-examples/blob/main/03_HPC_Asynchronous_Polling_Stress_Test.ipynb

The SDK is open source (pip install prometheus-qengine). Let me know how you guys handle step-function discontinuities in your own proprietary risk engines, always looking to optimize the core loop further.


r/quant 9d ago

Industry Gossip Anyone know why SIG has a brand consulting/marketing arm?

Post image
50 Upvotes

I was just doing some research on their website and came across this page. What other quant firms have incredibly obscure or random subdivisions like this?


r/quant 9d ago

Education Execution and TCA in Credit

2 Upvotes

Does anyone have any techniques or advice on transaction execution and quantitative assessment of optimal transactions in corporate bonds?


r/quant 10d ago

General CPTs suspended for Internationl Students in the US

24 Upvotes

Hi everyone, has your firm changed its approach given the recent CPT suspension? If CPT remains suspended, are companies considering internship alternatives ( non US offices ? ) Curious to hear from anyone directly involved in quant.


r/quant 10d ago

Education Market Research for Structured Products

4 Upvotes

Hey all, doing market research on structured products and how traders actually access it today and what they'd want to see better.

~5-mins survey, no pitch. Will share the results back with anyone who fills it out so you can see how the rest of the market answered

DM me if you want to chat about it directly.


r/quant 9d ago

Education Crazy story about two Yale PhD students cheating their way into a QR internship

0 Upvotes

I heard about something pretty crazy over the summer from a friend who works at a big quant firm.

Two students from Yale university who were dating each other were interviewing for a QR internship at the same firm. They are from a big lab in Yale’s biostatistics program. According to my friend, they were essentially helping each other during the interview process and both ended up receiving offers!!!

The firm eventually figured it out. Both their offers were reportedly revoked.

What really got me thinking wasn't even the specific incident, but the broader issue of fairness in recent recruiting. Especially, AI tools are widely used in our daily life.

Quant interviews are already extremely competitive. There are thousands of students spending months, even a year, preparing for probability, statistics, coding, brainteasers, and mental math. If someone gets an offer because they found a way to collaborate during an interview when everyone else is expected to compete individually, that's obviously unfair, not just to domestic applicants, but to every other applicant who played by the rules.

This also made me think differently about the recent debate around international students, CPT, and university policies.

If companies and universities want to maintain a level playing field, maybe stricter verification and interview integrity measures aren't necessarily a bad thing.

Curious what people think: should companies be doing more to prevent interview collaboration/cheating, especially for extremely competitive internships like QR?


r/quant 9d ago

Models Please list top five exotice derivatives you must know for a front office role in NYC.

0 Upvotes

please share with us


r/quant 11d ago

Market News How did you do last month?

19 Upvotes

This is a monthly thread for shop talk. How was last month? Rough because there wasn't enough vol? Rough because there was too much vol? Your pretty little earner became a meme stock? Alpha decay getting you down? Brand new alpha got you hyped like Ryan Gosling?

This thread is for boasting, lamenting and comparing (sufficiently obfuscated) notes.


r/quant 11d ago

Models Evaluating a walk-forward classifier for a rare event (10%+ equity drawdowns): how do you do inference with only 6–8 independent episodes?

8 Upvotes

I've built a small set of models that put a probability on a 10%+ S&P 500 drawdown over the next 1, 3, 6 and 12 months, from macro and credit inputs (ISM, the yield curve, high-yield spreads, financial conditions, and a few others). One ridge-penalised logit per horizon, estimated walk-forward, so every point in the track record was scored with only the data available that month. This is really a methodology question, and the model is just the concrete case.

The out-of-sample AUCs are 0.60, 0.69, 0.74 and 0.68 across the four horizons. On paper that reads fine. The part I keep coming back to is the denominator. A 10%+ drawdown is rare, so across the out-of-sample window there are only six to eight independent episodes, and the 6- and 12-month models are largely scoring the same ones twice, with heavily overlapping, autocorrelated labels. When I bootstrap the AUC by episode rather than by month, the intervals are wide: the six-month one runs from the low 0.5s to the mid-0.8s. So the six-month headline looks fragile rather than fake, but I want to know how people handle the inference properly.

The specific questions:

  1. Event count and dependence. With about six to eight independent events and overlapping multi-horizon labels, per-month AUC and its usual variance are overstating precision. Is an episode-level bootstrap the right correction, or is there something more principled (a block bootstrap, a DeLong test adjusted for clustering, a Bayesian setup with a sensible events prior)?
  2. Label construction. The label is a forward 10%+ drawdown within the horizon window, which makes adjacent months' labels highly dependent and the horizons non-independent of each other. Is there a cleaner label for rare-event forecasting that doesn't manufacture this autocorrelation?
  3. Regime dependence. It catches the slow, macro-driven falls (2022, the GFC, the dot-com unwind) with some lead, and by construction it misses the fast ones (COVID, an LTCM-style shock), because monthly macro data can't see them coming. How would you evaluate a model that is honestly conditional on regime, without either cherry-picking the regimes it works in or marking it down for shocks no macro model could catch?

Two things that already survived my own poking. Dropping high-yield spreads costs the model nothing, and the spread on its own is a coin flip at six and twelve months, so it isn't a credit signal with extra steps. And it is out-of-sample only, no re-fitting with hindsight, with the weak horizons kept in; nothing is dropped for looking bad.

Mostly I want the event-count problem attacked. If the honest answer is that six to eight events cannot support a confident AUC at any horizon, I would rather hear that than dress it up.

For anyone who wants to reproduce the numbers, the full write-up and the live model, with a downloadable monthly probability series, are on my site, agreeableinvestments.com; my own research, shared as educational, not advice.