▲ 5 r/quant

Rank-based exit on a skewed universe and an evidence clock that keeps invalidating it

Two things here, sorry for the length.

Same book rule runs on two of my models, where a name enters at top 10 by score and is held while it stays inside top 15, then sold when it drops out. One is US mid/large cap with about 380 names scored a sweep and 11 periods of stored scores, the other is microcap, $100M to $2B, and it only has two sweeps so far because I'm still actively developing it. Fortnightly rebalance on both.

The rule only worries me on the microcap book, and every diagnostic I have comes from the other one.

It worries me because microcap returns are the Bessembinder shape, most names go nowhere and a handful carry the whole thing, so the return comes from still holding a name when its one big move shows up. My exit doesn't fire on the company though, it fires on other names arriving, so a name can be up and working with the thesis intact and still get sold because two new names outscored it that fortnight.

What I can actually measure is all on the wrong book. On mid/large, score persistence sweep to sweep is about 0.90, so most rank movement is displacement rather than anything happening to the name I'm holding, and the gap between buy rank and sell rank is 0.42 points against a 1.40 standard deviation on a single name's own sweep-to-sweep score change, which puts the buffer at about a third of the noise it's meant to absorb. On the microcap book I have one period and no persistence figure at all because my own code withholds that verdict below three periods, so the book where the skew argument actually bites is the one I have no numbers for.

Went looking for anything testing that interaction and came up empty. Used Claudes deep research as well. Closest is no-trade regions under transaction costs, and index reconstitution buffers. One thing did seem relevant though, the index providers all buffer as a ratio of a cutoff rather than a fixed gap. MSCI keeps a constituent between two-thirds and 1.5x of the size-segment cutoff, Russell bands at 2.5% of cumulative market cap. My 10/15 is a 1.5x ratio, same number MSCI landed on, in a completely unrelated space. Coincidence I assume, but it does suggest the ratio form is the normal one and the open question is just the width?

What I had wrong was I had assumed I couldn't go and test wider bands because it would reset my evidence clock, but it wouldn't. Entry and hold rank are book knobs, they don't touch what anything scores, so I can replay counterfactual bands over stored scores tomorrow for free.

The real problem is a layer up. I've declared the exit rule's banked evidence as depending on the entry rank, and entry rank depends on two scoring experiments, so a scoring change doesn't reduce the exit rule's period count, it invalidates it, because the rule was grading a book that no longer exists. My own reporting already marks the banked periods provisional for that reason.

And the scoring changes are queued up. Twelve open items on the microcap engine are each flagged as forcing a rebaseline, and at a fortnightly cadence, shipping them one per sweep means that engine never accrues a single comparable period. Nineteen sweeps across three models so far, longest unbroken run of comparable ones is four.

A couple of questions for those able to help:

Is rank the wrong trigger entirely once the payoff is this skewed? Widening until the band clears the noise is the obvious move but that's a very wide band and I'm not sure what's left of the rule at that point.

How do you handle a dependency like that one. Declaring the exit rule dependent on the entry rank felt like the conservative call and the effect is that nothing ever settles. Is that right, or am I throwing away evidence I could legitimately keep?

If you've got a queue of changes that each reset a comparability clock, do you batch them into one declared cut-over or ship them one at a time. My own notes say batch and I've never seen anyone outside describe how they actually run that.

And how would you test any of this at 11 periods anyway. I can replay counterfactual rules over the stored scores but the same 11 periods answer every question I put to them.

Any input appreciated.

reddit.com
u/zdiggityyy — 3 days ago

What does a round trip actually cost in a stock that trades $200k a day?

Everything I can find on this is measured on institutions and I don't think much of it transfers down here.

My setup briefly. My model screens on US microcaps, $100M-$2B and spits out about 12 names, equal weight, rebalanced every two weeks. Turnover runs ~40% a period. It's a paper book, never been traded live, and before that changes I'd like some idea how much of the return dies on contact with a real order.

Right now I charge a flat 50 bps one way. I picked 50 because it sounded conservative. That is literally my entire justification.

I did try to do better than that. Built a tiered thing that charges half the spread scaled off ADV. Problem is the thinnest tier in it is calibrated for names clearing $5M/day and about 38% of my universe sits underneath that (thinnest name the model has actually held does $114k). There's an impact term too but it won't price anything above 1% participation, and my smaller positions blow past that at any account size I'd realistically run. So the model has nothing to say about roughly half the book, and it's the half I'm nervous about.

Went looking for published estimates as well. It's all large institutions, liquid names, long horizons. Nobody's writing papers about one guy putting fifteen grand into something nobody has heard of, which is fair enough.

For anyone who's actually filled orders down here, I have a couple questions.

Few thousand up to maybe 20-30k, in a name doing $100k-$2M a day, what does the round trip really cost? Is 50 a side about right, or am I off in one direction or the other.

How much does patience buy? Marketable limit vs sitting on the bid vs just working it across a whole session. I have no feel at all for the size of that difference.

And is there a volume level where this stops mattering. If a name does $10M a day can I go back to ignoring it.

Rough numbers are fine, I'm not after precision. If the answer is that it varies too much to say anything useful then that's worth knowing too.

Cheers

reddit.com
u/zdiggityyy — 3 days ago

I built a US equity factor engine that publishes its own IC and tries to prove itself wrong. Please tear it apart.

This is the crowd I most want to be torn apart by, so I am quite looking forward to this.

I'm a software developer, not a finance guy. I wanted to actually understand investing instead of reading about it, so I built a US equity factor engine and I've been running it in public since February. It is easy to fake understanding it all until you have to program it.

I wanted a tool that would read the market for me and automate all the tedious stuff the finance bros do all day. So I built one and gave it the most finance bro name I could think of: Brad.

The first stages were very boring. I worked with an LLM to go through the academic factor literature, pulled the factors that have held up out of sample, and put them in one score. Most of the real work was decorrelation, because counting profitability five different ways isn't five signals, it's one signal counted five times (this was a pain to figure out). That took months and I'm still not certain I got it right. Also, every factor traces back to a published paper.

I'm also building a replay layer to test whether different weights would have done better, but nothing actually changes until 15+ non-overlapping periods (I am at 9) across more than one regime. Tuning weights on a sample this short is just fitting noise and I almost fell for it.

The part I care about is that it grades itself in public. It publishes its own IC every sweep, breaks out per factor IC so you can see which factors are dead weight, and runs a buy-and-hold version of the exact same picks next to the live strategy so I can see if the sell rule is doing anything. It keeps tracking names after it sells them which is how I find out if I messed up. It also tracks the algorithm with and without the AI research pass, and right now the research is costing me about a point (very interesting). Not enough periods to conclude anything but I'm not hiding it while it's negative.

Composite IC is currently 0.052 with a t-stat of 1.47 over 9 sweep periods (about 4.6 months). That's not significant of course and every factor component currently is "no edge (small sample)", including momentum, which is sitting at a negative mean IC. Also the confidence interval on average alpha per period runs -0.45% to +0.98%, so it contains zero.

Nothing here is proven and I'd be lying if I said otherwise.

A sweep works by scanning the US market, killing low quality names on hard filters, deep scoring what survives (374 this past sweep), then an AI research agent reads the top ranked names for the stuff you can't get from the numbers alone, with a small real world tiebreaker kept on a short leash so it can't override the math (things like upcoming catalysts, public news, geographical conflicts). Then it's buy in the top 10, hold through top 15, sell when it drops out. Equal weight, real costs subtracted, no discretion from me (which would go poorly).

Brad's Portfolio is +12.3% vs SPY +9.8% over those 4.6 months, max drawdown -5.2%. Buy and hold of the identical picks is +7.4%, and that gap is the only reason I think the sell rule does anything.

Nine periods is nothing which I am well aware of. Ask me in two years :)

The equity engine is the one I've run longest and trust most. The others I am working on are small cap breakout, directional long/short, and crypto. They're younger, different math, and I'm not making claims about them yet. Every engine has its methodology written up, including the parts that don't work.

Tell me where I'm overfitting, what validation step I'm skipping, or what stat I should be showing and I'm not.

Posting this in a few communities for perspective, so if you see it/saw it elsewhere that's why.

And of course this is not financial advice, I'm not licensed, and this is a mechanical paper portfolio, not my personal trades.

u/zdiggityyy — 25 days ago
▲ 102 r/halifax

Proposal Update and Kintsugi Inquiry

Hello r/halifax

I am sure some of you guys saw my older posts regarding my proposal that happened 2 weeks ago now, and I wanted to thank those of you who helped!

I attached some photos of how it went (and you can see more at the link below)! It could not have gone better.

I also did not expect any of this to get as much traction as it did. A reporter ended up reaching out to me about it and here is the article that came out: https://yourhalifaxnow.ca/how-a-halifax-community-came-together-to-help-one-man-propose/

My proposal involved having a plate made, and then having it smashed on purpose. I know that sounds insane so let me explain.

My now fiancée is a huge beachcomber. When we were in Japan earlier this year we kept finding little broken pieces of old ceramic around the shrines and beaches, and she thought that was the coolest thing in the world. That is where the idea came from. I got a custom plate made with a bunch of symbols that mean something to us and "will you marry me?" painted on it, then had it carefully broken into pieces. The plan was to scatter the pieces along a beach on McNabs so she could collect them the same way she did in Japan and put the message together with her. I slid in the pieces that spelled out the question at the very end.

She found the pieces, we put it together, and I got down on one knee. The sky cleared up right as we pulled in. It was ridiculous.

So thank you to Chris and the Flyteboat crew (the water taxi who brought our photographer down to McNabs before us and put on Oscar winning performances to organically get us in their boat for a "sunset cruise"), to Cassidy Smith (best photographer I could have asked for), and to everyone here who commented on the original post. A bunch of strangers put real effort into a day that meant everything to us, and I think that is pretty special.

I have one final ask. You all have been so amazing, and this community is so incredibly helpful.

The plate is still in pieces, and that was always the plan. In Japan there is an art called kintsugi where broken pottery is repaired with lacquer and gold so the cracks get highlighted instead of hidden. I attached a photo of it as well for those who don't know. I always wanted to have the plate put back together that way so we can keep it on a wall forever.

Problem is I cannot find anyone around here who does it. Does anyone know a kintsugi artist, or a ceramicist, restorer, or even a hobbyist who has done it a few times, anywhere in HRM or the province? I would love to hand it off in person but I am open to shipping if the right person is further out.

Any leads at all would be appreciated. Thanks again everyone.

u/zdiggityyy — 26 days ago
▲ 70 r/halifax

Proposing on McNabs Island tonight - is the Maugher Beach lighthouse still reachable?

Hey r/halifax - I'm proposing to my partner on McNabs Island and could really use a recent report from anyone who's been out there lately.

The situation: I've got a water taxi taking us over this evening for 8:30pm, and my photographer is heading out ahead of us to set up. The catch is I've never actually been to the island - I planned the whole thing off Google Maps satellite view - and she won't have time to hike all the way to the lighthouse to confirm it's reachable and then double back to a Plan B if it isn't. So I need some intel.

I've marked up the screenshot. Legend:

  • Yellow circles = the spots I'm considering for the proposal (if the lighthouse doesn't work)
  • Red = our drop-off point, and the dashed line is the route I'd planned out to the Maugher Beach lighthouse
  • Green = the two spots I'm worried about

My two worries:

  1. (Upper green) There's a channel of water / washed-out causeway right where the path crosses the pond to the lighthouse spit. Is that crossing passable right now, or is Lighthouse Road still washed out? If it's washed out, can you get around the south side of the pond (via Strawberry Battery / south of Hangmans Marsh), and roughly how much time does that detour add from the drop-off?
  2. (Lower green) Can you actually get out along the spit to the lighthouse itself, or does it get impassable near the end?

A few extra details:

  • I want the sunset in the background (sunset's around 9:00), so I'm after a west-facing spot with an open water horizon.
  • We can also get dropped at Ives Cove (the northern cove) instead if that makes a better or safer option possible if the lighthosue is not an option.
  • If the lighthouse is a no-go, I'd love suggestions for a solid west-facing backup spot closer to the drop-off that my photographer can actually verify before we land.

Has anyone been out in the last week or two who can tell me what the ground's actually like right now? Timing is obviously tight since it's happening tonight, so any quick intel is hugely appreciated.

u/zdiggityyy — 1 month ago

[OC] Five months of my stock-ranking model as a bump chart. The bright lines reached the top 10, the faint ones are the other 360

This is a side project of mine. Every couple of weeks my algorithm scores every US stock I can pull data for, around 370 of them, and ranks them 1 to 370.

The chart follows that leaderboard across 9 rounds from February to June. Each line is one stock, and the higher it sits the better it scored that round. The bright lines are the ones that got near the top at some point, and the faint threads behind them are everyone else. The green band up top is the top 10. When a stock the model is holding slips past rank 15 it gets dropped, and those are the red X marks.

Data's from Financial Modeling Prep. The ranking is my own Python system.

If anyone wants to see the tool or how the ranking works, just ask.

u/zdiggityyy — 2 months ago

Built a US-equity factor engine with an AI research agent on top. +12.69% vs 8.64% SPY, IC ~0.08, and it grades its own predictions instead of hiding them.

Context first. I'm a software developer. Not a finance person, and I want that clear from the start. About a year ago I decided I wanted to actually understand investing, and I learn by building, not by reading. Code won't let you stay vague like I was being. So worked with an AI to sift through hundreds of research papers on what actually predicts stock returns, some going back the better part of a century, and consolidated the findings that hold up into a single scoring system. Every piece traces back to published work. Then months went into tuning weights against historical data and hunting down every spot where two factors were quietly measuring the same thing, then prying them apart until nothing overlapped. Counting profitability in five places just fools you into thinking you have five signals when you've got one. That's Brad.

Before the numbers, the part I actually care about is that it grades itself in the open and tries to prove itself wrong. It publishes its own Information Coefficient, the real test of whether the score predicts anything. It shows which of its own factors are pulling weight and which are dead quiet. It runs a plain buy-and-hold version of the same picks next to the live strategy, so you can see how much edge is the picking versus the selling. And it keeps tracking the names it told you to sell, to check whether the sell rule earns its keep. Most retail tools are built to make the picker look like a genius. This one is built to try to falsify itself and show the receipts either way.

The stats: IC is around 0.08, which is strong for equity signals, but the t-stat is 1.73 when you want ~2 before calling anything proven. So the correct read is "promising, not proven, needs more data." I'd rather say that than pretend I didn't notice. If you think the sample's too short to mean anything yet, you're right, and I want to hear how you'd pressure-test it in the meantime.

What it does each sweep:

  1. Scans the whole US market, a few thousand names.
  2. Kills everything that flunks a couple of basic quality checks. Most of the market is gone by this point, which is the whole idea.
  3. Deep-scores the survivors on a big stack of factors, each measuring something different.
  4. An AI research agent then goes down the top of the list one name at a time to read what a spreadsheet never sees. Has management returned cash to shareholders for ten years, or do they print new stock every chance they get? Is the moat a real supply bottleneck, or just a brand people like? Did last quarter's beat come from real demand, or a one-off?
  5. A small real-world tiebreaker for timing and fresh news, kept on a short leash so it can split two close names but never bulldoze the fundamentals.

Out comes a ranked board. The rule on top is simple. Buy a name when it cracks the top 10, hold while it stays in the top 15, sell the second it drops out. Equal weight, rechecked every sweep, real trading costs pulled out of every buy and sell. Every number is that mechanical rule running on its own, no me stepping in (which I learned quickly does not work).

Numbers so far: model portfolio up 12.69% vs 8.64% for SPY over the first eight two-week periods, about four points of edge. Sharpe-like number 2.46, worst drawdown about 5%. Scores barely budge sweep to sweep, which tells me it's locked onto something stable rather than chasing noise. One thing it surfaced on its own is that some names it sold kept climbing after it dropped them. Small sample, but I'd rather the tool catch that and put it on screen than quietly forget those names.

If you do factor or quant work, where do you think I've got it wrong? An obvious overfitting trap I've walked into, a stat I'm not showing, a validation step I'm skipping? That's the feedback I'm here for.

Heads up so this doesn't look sketchy: I'm sharing it in a few communities for a range of perspectives, so if you see it elsewhere, that's why. I'll be in the comments. None of this is financial advice, I'm not a licensed anything, and the track record is a mechanical paper portfolio, not my personal trades.

reddit.com
u/zdiggityyy — 2 months ago
▲ 3 r/mltraders+2 crossposts

Built a US-equity factor engine with an AI research agent on top. +12.69% vs 8.64% SPY, IC ~0.08, and it grades its own predictions instead of hiding them.

First post here. This is the one sub where I actually want this torn apart, because it's a systems problem as much as a markets one, and you all, rightfully so, have no patience for anyone claiming a 100% win rate.

Context first. I'm a software developer. Not a finance person, and I want that clear from the start. About a year ago I decided I wanted to actually understand investing, and I learn by building, not by reading. Code won't let you stay vague like I was being. So worked with an AI to sift through hundreds of research papers on what actually predicts stock returns, some going back the better part of a century, and consolidated the findings that hold up into a single scoring system. Every piece traces back to published work. Then months went into tuning weights against historical data and hunting down every spot where two factors were quietly measuring the same thing, then prying them apart until nothing overlapped. Counting profitability in five places just fools you into thinking you have five signals when you've got one. That's Brad.

Before the numbers, the part I actually care about is that it grades itself in the open and tries to prove itself wrong. It publishes its own Information Coefficient, the real test of whether the score predicts anything. It shows which of its own factors are pulling weight and which are dead quiet. It runs a plain buy-and-hold version of the same picks next to the live strategy, so you can see how much edge is the picking versus the selling. And it keeps tracking the names it told you to sell, to check whether the sell rule earns its keep. Most retail tools are built to make the picker look like a genius. This one is built to try to falsify itself and show the receipts either way.

The honest asterisk up front: IC is around 0.08, which is strong for equity signals, but the t-stat is 1.73 when you want ~2 before calling anything proven. So the correct read is "promising, not proven, needs more data." I'd rather say that than pretend I didn't notice. If you think the sample's too short to mean anything yet, you're right, and I want to hear how you'd pressure-test it in the meantime.

What it does each sweep:

  • Scans the whole US market, a few thousand names.
  • Kills everything that flunks a couple of basic quality checks. Most of the market is gone by this point, which is the whole idea.
  • Deep-scores the survivors on a big stack of factors, each measuring something different.
  • An AI research agent then goes down the top of the list one name at a time to read what a spreadsheet never sees. Has management returned cash to shareholders for ten years, or do they print new stock every chance they get? Is the moat a real supply bottleneck, or just a brand people like? Did last quarter's beat come from real demand, or a one-off?
  • A small real-world tiebreaker for timing and fresh news, kept on a short leash so it can split two close names but never bulldoze the fundamentals.

Out comes a ranked board. The rule on top is simple. Buy a name when it cracks the top 10, hold while it stays in the top 15, sell the second it drops out. Equal weight, rechecked every sweep, real trading costs pulled out of every buy and sell. Every number is that mechanical rule running on its own, no me stepping in (which I learned quickly does not work).

Numbers so far: model portfolio up 12.69% vs 8.64% for SPY over the first eight two-week periods, about four points of edge. Sharpe-like number 2.46, worst drawdown about 5%. Scores barely budge sweep to sweep, which tells me it's locked onto something stable rather than chasing noise. One thing it surfaced on its own is that some names it sold kept climbing after it dropped them. Small sample, but I'd rather the tool catch that and put it on screen than quietly forget those names.

If you do factor or quant work, where do you think I've got it wrong? An obvious overfitting trap I've walked into, a stat I'm not showing, a validation step I'm skipping? That's the feedback I'm here for.

Heads up so this doesn't look sketchy: I'm sharing it in a few communities for a range of perspectives, so if you see it elsewhere, that's why. I'll be in the comments. None of this is financial advice, I'm not a licensed anything, and the track record is a mechanical paper portfolio, not my personal trades.

getbradscore.com
u/zdiggityyy — 2 months ago