This reader needs JavaScript for search, threads and tags. Recent tweets from @hackertrader:
- 2026-10-07 — by overfitting and loosing their account ↗
- 2026-10-07 — Stanley Druckenmiller is famous for saying that earnings move individual stocks, but liquidity moves the market.
I listened to many of his public speeches and came out with a macro score that represents his views.
His macro score took my b/o strategy backtest from 22% to 33% CAGR.
But only on top of individual stock fundementals.
What macro parameters have an edge?
1. Financial conditions - 3-month change in the dollar, the 10-year yield, oil, credit spreads (HYG vs IEF) and the S&P. Each one moving the wrong way costs points.
2. Excess liquidity - M2 money supply growth minus industrial production growth. Money growing faster than the economy spills into assets.
3. The Fed - A rate cut in the last 6 months scores 3. A recent hike scores 0. QE adds, QT subtracts.
4. Companies and sector cycle - Fixed at neutral. Reading earnings calls point-in-time wasn't possible, so they never move the score.
Full research with backtest results:
https://www.unusualbreakouts.com/learn/focus-on-a-green-macro-regime ↗
- 2026-10-07 — Never short before the teleport candle, only after $BIYA ↗
- 2026-10-06 — 7. P/E - 25–40 is growth at a reasonable price. Under 15 is Lynch's cyclical trap: a low P/E on peak earnings. ↗
- 2026-10-06 — 6. EV/EBITDA - > 40 is priced to perfection. Any disappointment ends the move. ↗
- 2026-10-06 — I scored 1,837 breakouts with Peter Lynch's valuation checks, using only SEC filings that existed before each trade.
Max drawdown went from −38% to −19%.
Return kept: 20% CAGR vs 23%.
The cheapest stocks were the worst breakouts.
Here's the full research:
https://www.unusualbreakouts.com/learn/focus-on-what-the-filings-say ↗
- 2026-09-20 — Jev allowed me to add the significant news that move momentum stocks so you can understand if theres anything behind the move. And at effectively no cost compared to claude api. ↗
- 2026-09-19 — With crypto running, added a crypto section to https://unusualbreakouts.com so you can easily find data backed momentum candidates ↗
- 2026-09-18 — I ran a test for the Wheel strategy similar to what ravenloft is doing here: https://kinfo.com/portfolio/91159/profit
The realized pnl curve looks really good due to all the premium collected (grey curve) but the assigned spot is what's killing the account (green curve).
What am I missing? ↗
- 2026-09-17 — $ZEC is the next $BTC btw ↗
- 2026-09-17 — 3rd time in MRNA for the EP continuation after that high tight flag. I am a large caps trader now. ↗
- 2026-09-16 — So... anyone knows any other good strategy I can use to collect pennies in front of a steamroller now that I dont short SC ? ↗
- 2026-09-16 — FML ↗
- 2026-09-16 — $30k -> $110k -> $55k
What a failure ↗
- 2026-09-16 — stopped shorting for real this time (or just ban SG?) $DLXY ↗
- 2026-09-01 — $MRNA second trade on that EP continuation ↗
- 2026-08-27 — Will @kinfo now show lawyer expenses in the PNL? ↗
- 2026-08-26 — ok I think I tought claude how to predict dilution $VCIG ↗
- 2026-08-19 — $MRNA claude told me this was very good news ↗
- 2026-08-18 — US riggers are so back $AIXC ↗
- 2026-08-13 — The perfect storm $FGI ↗
- 2026-08-13 — lol $FGI USA in finviz this is the edge now ↗
- 2026-08-11 — So now we need to train llm models to find hidden China tickers ↗
- 2026-07-21 — Algo bought $LASR today as a momentum breakout trade. One of my biggest fomos since Dec 2025 where I had a signal but didnt enter ↗
- 2026-07-20 — Anyone from Trillium Trading that follows me here can tell me why you guys did 4.4k requests on my website https://www.unusualbreakouts.com for the past 24 hours?
Let me know I will give your use access to my API ↗
- 2026-06-24 — Biggest mystery in momentum trading influencers cycles.
Can’t prove that in any way ↗
- 2026-06-11 — Algo bought some $SPHR today with appearant relative strength against the market ↗
- 2026-06-05 — ALWAYS TAKE PROFIT INSTEAD OF TAKING SCREENSHOTS ↗
- 2026-06-05 — Spaniards just built different ↗
- 2026-06-04 — Wow $STRL flying ↗
- 2026-06-02 — Claude API was down today so charts didnt update - it's live now and yesterday's charts are updated (thanks to those who let me know!!) ↗
- 2026-06-01 — http://unusualbreakouts.com now have charts and theme detection became much stronger ↗
- 2026-05-31 — Alternative Market Regime Filters: NAAIM & AAII
Did they improve my momentum breakouts backtests?
I just wrote about How I improved my momentum breakouts backtests by focusing on tight consolidations, top momentum ranked stocks and bull markets.
But since then I heard a lot of talk about 2 specific market regime filters - NAAIM and AAII.
So I had to check if they can improve my strategy even more.
Turned out one of them did, significantly. and the other one did nothing.
Here's the analysis.
What's AAII?
The American Association of Individual Investors has been running a weekly survey since 1987.
Just one question - do you feel the market direction over the next six months will be up, neutral, or down?
Sounded to me like it should have some kind of correlation with my pnl. Even as a contrarian indicator.
But I ran the statistical tests.
Nothing.
So approaching the NAAIM tests I wasn't so optimistic but it suprised me.
NAAIM - How the pros are actually positioned
The NAAIM Exposure Index is different in character. It's not a survey of opinions but the actual positioning.
Every week, active investment managers report their real exposure to U.S. equities. The result gets averaged and published. The scale runs from -200 to +200. Zero means fully out or hedged to flat. 100 means fully invested. Above 100 means leveraged long. Negative means net short.
The key distinction from AAII: these people have real money on the line. Their positioning reflects conviction and not just opinion.
How I tested it
I downloaded the NAAIM data from naaim.org and matched every breakout trade in my database (2007-2026) with the NAAIM number that was actually known at the time of the trade.
One thing I had to be careful about: the NAAIM survey closes on Wednesday, but the number isn't published until Thursday at 10am. Because I'm trading the open, I can only use it starting Friday. I aligned the data accordingly to avoid lookahead bias.
What I found
Sorting PNL by NAAIM bucket makes the picture obvious.
The 70–90 range stands out.
Why 70–90 specifically?
My best guess: below 70, managers are still cautious, there's no real fuel behind moves. Above 90, the market is crowded.
The 70–90 range is the sweet spot where institutions are positioned but not overextended.
How fragile is it?
I ran a few extra tests you can read about here. But overall it looks like something I can incorperate into my breakout trading.
I don't use it as a filter, but just as a sizing decision mechanism. It improves the backtest results dramatically.
That's why I also added the number to UnusualBreakouts website, with green indicating a favourable regime.
Will see how it goes. ↗
- 2026-05-30 — Holding winners is easy in a backtest but gets tough real life. Trying to stay strong and embrace the possible pullback for a chance of holding an outlier $STRL $TTMI $ONDS $ARWR $CENX $KLAC ↗
- 2026-05-29 — This doesn't mean trimming positions btw outliers should still have room to develop. It simply means new exposure is added at a smaller size. ↗
- 2026-05-29 — Latest NAAIM number is now overbought which means my breakouts algo will now do 1/2 size (backed by my backtests).
So holding full size only $ONDS and $CENX from the favourable regime (70-90 NAAIM) ↗
- 2026-05-28 — Or everyone have access to the same ai tools so pnl stays the same for all ↗
- 2026-05-27 — only strat left live on small caps now is parabolics which kind of not affected by locates prices / execution diff from backtest. let's see ↗
- 2026-05-27 — $ASTC last one im done with day 1 ↗
- 2026-05-25 — A few stocks finally setting up for continuation
$ABVX $CRCL $LASR $RLAY $SATS $TER ↗
- 2026-05-24 — Just trail the 20 sma. If it’s fake youll be out ↗
- 2026-05-24 — it's funny because it only worked for one year ↗
- 2026-05-23 — All good signals got no available locates ↗
- 2026-05-22 — PDT gone ↗
- 2026-05-22 — Added NAAIM number to http://unusualbreakouts.com this thing actually have some edge. Will write about it soon. ↗
- 2026-05-21 — This is super interesting. Tested it real quick and NAAIM readign at 70-90 seems to be the sweet spot.
Next I need to test > 90 trimming and loosing up flag breakouts conditions for 70-90 readings. ↗
- 2026-05-21 — Why I Buy Breakouts Only on Bull Markets
How to systematically define a bull market.
Open any momentum / growth trading book and you'll find the same advice - focus on buying stocks on a bull market. Sit on your hands on bear market.
In his book, O'Neil built it into CANSLIM where M = Market. And he gave many methods to measure the market's health.
Mark Minervini won't push size unless the market is in a confirmed uptrend.
Qullamaggie said it in many streams: when the market is bad, he sits in cash or trades small.
But systemizing their bull makret analysis is impossible - I need clear rules.
So to test if market status actually changes anything - I added the simple rule to my regular momentum breakout strategy I've been refining: tight bases, top-ranked names, entry on breakouts and a trailing stop.
The added rule: buy only if SPY > 140 EMA.
(Sidenote: 140 is just a number representing long term trend. many numbers will do the job from 130 to 200. SMA / EMA).
So I ran the same breakout strategy two ways, one without the filter and one with it.
Here are the results.
No regime filter
Every qualifying breakout gets taken no matter what SPY is doing.
Equity curve:
22.45% CAGR. 31.16% max drawdown. Total return 4154%. The strategy works, but a lot of the drawdown comes from breakouts on bad market.
SPY above the 140 EMA
Same strategy but no new entries when SPY is below its 140 EMA.
Equity curve:
27.21% CAGR. 30.81% max drawdown and total return 8515%. Almost five extra points of CAGR with slightly less drawdown. And less time in the market.
What this means
Breakouts in a weak market look the same on the chart. Tight base, clean trigger on a top performer. But the follow-through just isn't there. Nobody is rotating into new leaders when the index is bleeding. The breakout pops, fades, stops you out a few days later. Do that enough times and it eats into CAGR.
In a bull market the same setup gets bought. Every other momentum trader is also hunting for leadership. That's where the strategy compounds.
The 140 EMA is a blunt tool. It'll keep you out at the start of some recoveries and keep you in too long near tops. But the result isn't overfit to that exact length. A 150 SMA works. A 200 SMA works. The specific number matters a lot less than just having a regime filter at all.
But the direction lines up with what every serious momentum trader has said for decades. Nice to have a number on it instead of taking it on faith. ↗
- 2026-05-21 — How exactly are you guys calculating open pnl on all this put option sellers? They might have huge assigned losses that just doesn’t show in the partially realized ↗
- 2026-05-19 — The problem is assuming you catch that big winner in the first place. You need rules to be in a winner and only then test trimming vs other methods ↗
- 2026-05-15 — Short pokemon ↗
- 2026-05-09 — I dont know if he's joking but this is interesting ↗
- 2026-05-07 — $UUUU nice breakout on my double size position ↗
- 2026-05-06 — Algo added $UUUU avg is now 21.74 ↗
- 2026-05-06 — My system tells me to trim absolutly nothing here but it's getting hard. What would you do? $STRL ↗
- 2026-05-06 — Not many tight consolidations today as most momentum stocks already in a run. My focus list for today: $LASR $UUUU $VIST ↗
- 2026-05-05 — shit Im there with my stocks and crypto swings ↗
- 2026-05-05 — $FSLY tight over multi year base, looks ready.. ↗
- 2026-05-04 — Crypto names getting some traction PM
$RIOT $HUT $WULF $IREN $CIFR $MSTR $GLXY $HOOD $CRCL ↗
- 2026-05-04 — Why I Focus on Top Performing Stocks
Does stock rank actually matter? I tested it.
Richard Dennis. William O'Neil. Qullamaggie. All three say the same thing: only trade the strongest stocks.
It gets repeated so often it becomes received wisdom. So I ran the data.
How I built the universe
I started with every name in my database. Then filtered to real, tradable momentum names: minimum dollar volume, minimum daily range, minimum price, some minimum past return.
Then I ranked every stock by return over four time frames: 1 month, 3 months, 6 months, and 1 year.
Rank 1 is the stock that went up the most. The further down the list, the weaker the name.
The test
I ran the exact same breakout strategy on two different universes. Top 100 ranked stocks in one. Ranks 100 to 1000 in the other.
Same entry logic and exits. Same position sizing. The only difference was which stocks were eligible.
What I found
Ranks 100–1000:
Not something I'd trade. Returns are weak, drawdowns are too deep, consistency isn't there. Whatever edge the strategy has on paper evaporates on middling names.
Top 100:
Focusing on top ranked stocks gives strong results.
Why it works
Momentum is persistent. Top performing stocks tends to continue their strong performence. On a rank-700 stock you get the initial pop and watch it fade while everyone else is somewhere else entirely.
Top-ranked names are also usually there for a reason. An earnings beat, a product launch. Something real. Random bounces don't have that. They just bounce and fade.
Dennis, O'Neil, Qullamaggie didn't need a backtest to know this. Trading real money for long enough teaches it. The data just confirms it.
How to find top performing stocks?
I built unusualbreakouts.com exactly for that. You can get daily top performing stocks list - exactly like the one I used in this article. That way you'll focus on a proven list and not random names. ↗
- 2026-05-01 — This is why I hate PIPEs $CUE ↗
- 2026-05-01 — Within the critical materials group $ALB and $UUUU looks tight and ready for the next move. My algo will probably add to both today.
$SQM $SGML $UAMY $CRML $HBM $HYMC $ALM $AMPX $BE $AMSC $BW $GRC $CC $USAR ↗
- 2026-05-01 — Algo bought some $UUUU over yest highs ↗
- 2026-04-30 — $TTMI I held this one through earnings. Have a 107.6 avg. so felt like I had some cushion. My backtest doesn't cut before earnings and results look good, but it can get really nasty sometimes. For people who trade breakouts - do you actually hold through earnings or cut before?
@Peoplewish @RealSimpleAriel ↗
- 2026-04-29 — Growth stocks (CANSLIM) that holding there with tight base (earnings ahead tho)
$HBM
$WT ↗
- 2026-04-28 — Created http://unusualbreakouts.com
Automatically generating momentum, growth (CANSLIM) and thematic lists for breakout trading.
Momentum lists generation process is backtested since 2007.
Filter for most liquid, highest ADR and tight bases for best candidates.
Let me know what you think ↗
- 2026-04-24 — Consolidations on top performing stocks my bot will look to buy breakouts on today:
$ALB
$CELC
$MOD
$MRNA
$ONDS
$PRAX ↗
- 2026-04-21 — Had to try some ↗
- 2026-04-21 — $CAR 666 would be symbolic ↗
- 2026-04-17 — Exactly the situation Im in right now. 3-4R on $RKLB and $ALB, which means almost def local top. But have to stay in to catch the outlier ↗
- 2026-04-09 — $CAR let this be the top tick ↗
- 2026-04-09 — Early profit taking (or trimming) in momentum breakouts is one of the things I could never understand as performance always much worse then just riding the trend in EVERY backtest. Yet most high profile traders in the niche recommending it for some reason ↗
- 2026-04-06 — For me lack of locates is the main difference between backtest and live. (Mainly past few months). SSR and exit slippage barely move the needle on the liquid stuff. ↗
- 2026-03-31 — If you want to succeed in trading learning Spanish is not optional anymore ↗
- 2026-03-28 — How I Solved AI Hallucinations in my Backtesting
The AI slop backtest took over my feed.
Sharp 10 and only up equity curve presented in 4 pillars with gradient left borders.
I can tell it's a slop because I used to be the slop.
Sometimes I still am.
I was the hallucination before ChatGPT existed
Years before I had an LLM to talk to, I was making all these mistakes myself. Running strategies on dirty data. Accidentally peeking at tomorrow's prices. Ignoring delisted stocks.
People joke about my billion dollar backtests all the time as live results never followed.
The only reason I eventually figured out the mistakes is because I spent years staring at bad results and slowly learning what "correct" actually means in backtesting. That takes time. Most people don't have that time, and now they definitely don't need it because they have a chatbot generating the same mistakes 100x faster.
So when I see a 10 Sharpe backtest from someone who started backtesting last month, I don't think they're maliciously lying for likes. I think they're me in 2017. Just faster.
AI makes all your mistakes, plus some new ones
LLMs make the same beginner errors a human makes. Running on bad data without realizing it's bad data (huge pnl spikes from buying before a delist are the tell). Looking into the future (equity curve with 0 drawdowns). Mixing adjusted and unadjusted prices in the same calculation.
But they also make mistakes a human would never make. Inventing data points to satisfy a prompt or quietly assuming only winners when filtering a universe. Generating confident code that looks correct but silently peeks at tomorrow's close.
This is what happens when your prompt is "Create me a Sharpe 10 strategy" and you go grab a beer.
The LLM will try its hardest to make you happy. It will succeed and it will show you the results on a dashboard that looks like the creation of a top consulting firm.
LLMs can still save you a ton of time in backtesting though. You just have to remove every opportunity for them to hallucinate, fabricate, or assume. I spent the last months building a system that does that.
Three layers, Each one blocks a different type of AI mistake. Here's my framework on how to fix it.
Layer 1: Fix the data
The only database your LLM should touch is one you trust.
Your universe must include stocks that delisted, went bankrupt, or got acquired. If your backtest only trades survivors, your results are fiction. I wrote about this. A single ticker like META can represent a metaverse ETF one year and Facebook stock the next. If your database treats them as one continuous price series, you get a beautiful equity curve from a bug. I had to build identity resolution using FIGI codes, CIK numbers, and fuzzy name matching just to stop the database from merging two different companies under one symbol.
Splits and dividends need to be handled too. A 4-for-1 split shouldn't create a fake 75% gap in your chart. But with Polygon flat files, you only get unadjusted prices, so you need to adjust them yourself. That means validating every split (some in Polygon's database are fake), applying adjustment ratios backward only, and making sure entity boundaries are respected so AAPL Entity 1's 2003 split doesn't contaminate AAPL Entity 2's data.
Every metric also has to be point-in-time. Price, volume, fundamentals, everything must reflect what was actually known on the day of the trade. Not what you can see now looking backward. I maintain daily snapshots of the entire ticker universe and build a master table of listing intervals from them, each with a start date, end date, and active flag. That way the universe for any historical date contains exactly the tickers that were listed and tradable on that day.
And then there are late prints. Dark pool reports and delayed block trades create phantom spikes in intraday data. I built a normalization pipeline that retroactively backtest again anything suspicious with trades data redownloaded and cached.
It's a lot of work. But if you skip this layer, nothing else matters. Your LLM will generate beautiful strategies on garbage data and you'll never know.
Layer 2: A deterministic backtesting language
Even with clean data, your LLM still has a problem. It writes Python.
Python is flexible. That flexibility is exactly what makes it dangerous for backtesting. An LLM writing raw Python can accidentally look at tomorrow's high, mix up adjustment types in a multi-day calculation, or reference intraday data from a future time window. The code runs without errors and the results look great, but everything is wrong.
So I removed Python from the equation.
I built a DSL, a Domain-Specific Language. The LLM doesn't write code. It writes structured JSON strategy files with DSL condition strings that get parsed, compiled, and executed by a deterministic engine underneath.
The DSL is parsed once into an AST, compiled into direct column accesses, and executed as tight vectorized NumPy loops. There are no interpretation at runtime. The LLM can only express what the grammar allows.
Here's what a real strategy looks like. This is from my actual strategies/ folder. A long breakout strategy: SMA 20 just crossed above SMA 200, the current bar's range is 3x the average range of the last 5 bars, and price breaks above the 5-bar high. Buy stop entry, stop at the 5-bar low, take profit at 2R:
The daily conditions filter for liquid stocks (30-day average dollar volume above $30M, price above $5). The intraday condition checks that premarket dollar volume is above $2M. Then the entry conditions compare two indicators (SMA 20 vs SMA 200) and check if the current bar's high breaks the 5-bar high, all using the same DSL grammar. The engine parses each string through a DSLParser that produces an AST of DailyRef, IntradayRef, Constant, and BinaryOp nodes, then compiles them into vectorized execution plans.
The execution runs in two phases. Daily scan first, filtering the entire universe by daily conditions. Fast and wide. Then the intraday scan runs on survivors only. Slower, but on a much smaller set. That's how you scan thousands of stocks across years of data without burning hours.
The DSL enforces rules that a human would know but an LLM regularly forgets.
Daily references can only use zero or negative offsets. [daily][-1][close][adjusted] is yesterday's close. [daily][1] (tomorrow) doesn't exist in the grammar. The parser rejects it. Intraday OHLC must use unadjusted prices. If you try [adjusted] on intraday open/high/low/close, the validator flags it. When comparing prices across days in the same expression, both sides must use the same adjustment type. And entry conditions reference [intraday][0][04:00][current_time][MAX][high][unadjusted], the high so far, not the session high that hasn't happened yet.
The entry and exit logic is also structured JSON. Conditions are typed objects, comparison, green_candle, red_candle, or, and, with explicit lhs, op, rhs fields. Expressions can be numbers, bar fields, DSL references, arithmetic, or indicators. The schema is rigid. If the LLM tries something the schema doesn't allow, it breaks at parse time, not at trade time.
So the LLM can still express whatever strategy it wants. It just can't sneak in bugs the grammar doesn't allow.
Layer 3: SKILL.MD and the validation loop
Even with clean data and a strict DSL, the LLM will still mess up. It'll use wrong syntax. Mix adjusted and unadjusted prices on opposite sides of a comparison. Misunderstand a DSL rule in some subtle way.
This is where SKILL.MD comes in.
If you use Cursor or Claude Code, you've probably seen project rules or instruction files. Text files that tell the AI how to behave inside your specific project. SKILL.MD is that.
A markdown file that lives inside the project and teaches the LLM the rules of the game before it writes a single line.
When you ask the AI to create a strategy, it doesn't start from zero. It reads the SKILL.MD first. That file has a strict 6-step workflow the AI must follow, and it doesn't get to skip steps.
First, it reads reference files. The strategy JSON schema, the full DSL reference guide, and 1-2 existing strategies from the strategies/ folder as examples. It doesn't guess the format. It learns from what already works.
Then it drafts the strategy JSON. Daily conditions, intraday conditions, entry logic, exit logic, costs, portfolio settings. All using the DSL grammar it just learned.
Then comes the section I marked CRITICAL in the SKILL.MD.
Lookahead bias for example. I spelled out, in explicit terms, every way I saw / could think of the AI could accidentally peek at the future. "NEVER use positive daily offsets." "NEVER use future intraday data in entry conditions." "When comparing two days, use the SAME adjustment on both sides." Wrong examples and right examples sit side by side so there's no ambiguity.
The SKILL.MD also has something I call the condition placement hierarchy. Before placing any filter, the AI has to ask itself: "Can the aggregated value at this layer be true while the condition was actually false at the moment the trade would be entered?" If yes, the condition has to stay at a more granular layer. For example, filtering by daily high > $1 sounds safe. But the daily high could come from a spike after your entry window. That condition needs an intraday reference bounded by the relevant time, not the full-day aggregate.
After drafting, the AI runs python a strategy_validator on the newly created strat. This script loads the file, parses every DSL condition string through the same DSLParser the real engine uses, validates the full strategy structure, and runs heuristic checks for mixed adjustment pairing. It has to exit with code 0. If it fails, the AI reads the error, fixes the JSON, and validates again.
Then it runs an actual backtest on a small date range. Does the daily scan complete? Does the intraday scan run? Does the backtester produce trades without Python exceptions? If something breaks, it reads the traceback, fixes the issue, and reruns.
Only when both validation and a test run pass does the AI present the strategy as done.
I don't babysit the process. The SKILL.MD creates a loop where the AI catches and corrects its own mistakes, but within boundaries I set. When it inevitably screws something up, the validator catches it before it reaches me.
Some specific stuff from the actual SKILL.MD, to give you a feel for the level of detail:
Always read the JSON schema, DSL guide, and existing strategies before writing anything
Put filtering in daily_conditions first (cheapest), intraday_conditions second, entry conditions last (most expensive). Order matters for speed.
Reuse universe_cache_name when scan conditions match another strategy. Saves hours.
Never use [daily][1] or any forward-looking reference
Never mix [adjusted] and [unadjusted] on opposite sides of a cross-day comparison
Never use full-day values in entry logic. The session high at 2 PM includes the 3 PM spike that hasn't happened at entry time.
Never present a strategy as finished before both validation and test run pass
You can use this pattern for anything, not just backtesting. Instead of hoping the LLM knows what it's doing, you write the rules down and let the validation loop enforce them.
How the three layers work together
The data layer means the LLM only touches clean, point-in-time, survivorship-free Parquet files. It doesn't generate prices. It reads them. The DSL layer means it writes structured JSON with condition strings, not Python. Lookahead bias is blocked at the grammar level because the parser physically rejects forward-looking references.
The SKILL.MD layer means it follows a 6-step workflow with built-in validation and testing. Fix and repeat until both pass.
None of these layers is enough on its own. Clean data doesn't stop the LLM from writing buggy conditions. A strict DSL doesn't stop it from getting syntax wrong or mixing adjustments. A SKILL.MD on garbage data just means the AI follows instructions carefully on data that's lying to it.
Together though, the surface area for hallucination gets very small.
I still review every strategy. I still sanity-check results. But I spend way less time wondering whether the AI made something up.
###
If you want to skip building this yourself, I packaged the full stack into Kwants. The database, the DSL, the validator, the SKILL.MD. You describe a strategy in plain English to any LLM (Claude, GPT, Gemini, Cursor), and Kwants handles the data integrity layer.
If you want to understand the data layer in detail, I wrote a three-part series on building the database from scratch: ticker identity, splits and dividends, and late prints. ↗
- 2026-03-27 — I keep seeing people backtest with Claude/ChatGPT and it's painful to watch.
LLMs will:
→ Invent price data to satisfy your prompt
→ Look into the future
→ Ignore survivorship bias
→ Make wrong assumptions about splits & adjustments
They will make your backtest looks great but pnl will probably not follow.
I built Kwants to fix this.
It gives your LLM a real backtesting engine:
• Downloads & cleans your Polygon data automatically
• Enforces strict point-in-time data access
• Ignores late prints
• Runs fast with vectorization + caching
• No hallucinations allowed at the infrastructure level
No code required. Works with any LLM.
Try it now:
http://kwants.dev ↗
- 2026-03-26 — One of the most interesting slops we are going to witness is backtesting. I wonder if it will affect the market as so many “holy grail” backtests will enter the market creating opportunities for non slop traders ↗
- 2026-03-19 — Yes $SER algo took a short and I manually covered and switched to long on this private placement + trapping short and holding above vwap ↗
- 2026-03-18 — nvm it had lookahead bias.
320 stars on github and it was taking todays s&p 500 constitutes to calculate ratios from 2006.
A ton of research time wasted but at least no money lost. ↗
- 2026-03-17 — hmm I'm not sure you should build it... the raw number have 0 predictive power on breakouts success rate, the 200MA have SOME predictive power but far from the numbers you laid out ↗
- 2026-03-17 — Let the overfitting competition begin ↗
- 2026-03-16 — Lol competing with lies you invented the genre ↗
- 2026-03-12 — Isn’t it the biggest overfit the world have ever seen? ↗
- 2026-03-11 — Always heard about it but was finally able to prove it. Market breadth seem to have an edge trading momentum breakout type strategy (it could be overfit, mistake etc etc). From 48% CAGR and 40% DD to 46% CAGR and 25% DD.
Shoutout to the guy behind this: https://tradermonty.github.io/market-breadth-analysis/ ↗
- 2026-03-11 — The way Claude shows it is just beautiful. The only obstacle now is clean data you can trust + reliable research process. From there LLM will do everything. ↗
- 2026-03-10 — Giving LLMs access to my small caps data base they optimize for backside with tight stops and not for frontside with wide stops.. LLMs are basically BLEE that's interesting ↗
- 2026-03-08 — AI just introduced 97,975 new ways to overfit, future leak and mess up your backtests ↗
- 2026-03-07 — I vibe coded a chrome plugin to unfu** my "for you" tab.
It automatically blocks and clicks "not interested" any war / conspiracies / politics / gossips etc content using llm.
My feed is now clean. ↗
- 2026-03-03 — $BATL disc long theme + stuck shorts ↗
- 2026-03-03 — OPB finally represented in the USIC (aaaaand it's gone) ↗
- 2026-02-27 — All ex employees will just vibe code @blocks competitors and reduce prices to 0 ↗
- 2026-02-25 — Sometimes I just can’t let the algo do it’s thing. Covered the short manually then flipped long $XWEL over news + price action ↗
- 2026-02-24 — Kyle Williams have verified 7.8M of trading profit.
And he's been uploading YT monthly recaps since 2019.
So I downloaded all transcripts and let LLM study exactly how he is trading.
Here are the results: ↗
- 2026-02-23 — Did the same with @stamatoudism epic interview in TraderLion. Sonnet 4.6 did great job on this one ↗
- 2026-02-22 — Just wrote a script that downloads transcript of YT videos and extract backtestable edges (sonnet 4.6/ local ollama).
Tested on latest @BrianLeeTrades interview with nice results.
My vision is to have an agent extracting edges from YT videos and backtesting against my db ↗
- 2026-02-20 — Yet chatGPT will keep falling into future leak with my proprietary ideas ↗
- 2026-02-18 — Been really quiet days but today algo finally caught a few nice trade with +$3k.
Here’s the only chart sc kwants allow me to share $LITE MR long ↗
- 2026-02-14 — How are they going to take liquidity under consideration? ↗
- 2026-02-11 — When ai will stop backtesting with future leak on his first 997 tries I will start worrying about humanity ↗
- 2026-02-10 — Daily reminder to not enter on a late print in your backtest ↗
- 2026-02-05 — Another day of algo buying every dip out there $CVNA $WDC $SNDK $RKLB $MP
$XPO the only short ↗
- 2026-02-05 — Rekt pn the dip buys but when I was sleeping algo shorted this $ALGM so lost just $400 ↗
- 2026-02-04 — Mean reversion algo in buying dips today $MDB $MU $EXPE $AMD ↗
- 2026-02-01 — Late prints are a frustrating quirk of Polygon’s flat file API.
The REST API mostly avoids them, but it’s much slower.
Here’s how I handle the problem using normalization:
https://stonkscapital.substack.com/p/massive-problems-part-3 ↗
- 2026-01-31 — The reason it’s such a hard decision is that for so long small caps short was so forgiving. With all the mistakes I made (and I honestly lost count on how many I did) I still managed to go from 30k to 110k.
Hard to give up that dream ↗
- 2026-01-30 — Reduced size in small caps / 4. Can’t take the infinite dd anymore ↗
- 2026-01-27 — $3900 today realized from shorts
Swing longs corrected a bit ↗
- 2026-01-24 — $5100 on this one ↗
- 2026-01-23 — Please go to 0 I could use the monyz ↗
- 2026-01-23 — Looks like a good day to join the $NAMM squeeze ↗
- 2026-01-22 — Algo keeps shorting this $MRNA thing what do you think? ↗
- 2026-01-22 — Preparing your Polygon database for reliable backtests is hard.
There are fake gaps everywhere.
First you handle ticker reuse.
Then, you adjust for splits and dividends.
But even when you get that right, Polygon has fake splits in their data!
In this article, I'll show you how to adjust for splits and dividends while avoiding fake splits.
***
link:
https://stonkscapital.substack.com/p/massive-problems-part-2?r=5igdr ↗
- 2026-01-17 — -$5800
Algo had most stupid bug that cost me $5000 while I was sleeping comfy in my Thai timezone
Thank god for longs ↗
- 2026-01-17 — Close to giving up on shorting small caps ↗
- 2026-01-16 — +$840 realized from shorting small caps
+$4100 unrealized on the swings
Longed $FLNC ↗
- 2026-01-14 — locked out of DAS cause I was too lazy to to reset my password. Everyone are sleeping. What do I do now? ↗
- 2026-01-13 — -$5000 on $EVTV
+$4600 open on swing longs
$KTOS $KRMN ↗
- 2026-01-09 — Backtesting is BS But it's the Only Thing we Have
Here's how I make it less BS
I don't know if anyone made more backtesting mistakes than I did.
It took me 3 years of constant backtesting to have my first profitable year. And it was a tiny year.
So many things can go wrong:
Bad data
Unrealistic assumptions
Overfitting
And so much more lol
But it doesn't have to be this way.
Here is a list of things I learned over the years to increase the chance of the backtest to be real.
Hopefully it will shortcut your way to a working strategy.
The list is comprehensive so you can bookmark this to get back to it whenever you backtest.
1. Survivorship Bias
This one killed my first trend following strategy.
I backtested a strategy on stocks in the Russell 2000. Results looked good with something like 20% annual return and 20% max dd since 1990.
Then I realized I was using the CURRENT Russell 2000 constituents.
I was only testing on winners that survived until today. All the stocks that got delisted or kicked out? Missing from my data.
When I fixed it and used point-in-time constituents, my 20% max dd turned into 70% 😅
Now I Always use point-in-time data. The universe should reflect what actually existed on each historical date, not what exists today.
2. Clean Zombie Tickers
Many of my backtests early on had trades like this:
In data sources like Polygon (massive.come) a ticker is not a company.
When a ticker gets reused, the data continues as if it were the same company.
I now make sure my database is clean of such cases. I wrote here how to solve this problem.
3. Lookahead Bias
This one is sneaky as hell.
I built a long strategy that used end-of-day volume to filter trades. Backtest looked great.
Then I went live and live signals didn't match backtested signals.
Why? I assumed end-of-day volume data didn't include after-hours volume. But the data provider included it.
So in the backtest I was "knowing" after-hours volume before making my end-of-day trade. Information from the future.
Common pitfalls:
Using today’s close to trade today's open
Using end-of-day data for intraday entries
Using future fundementals
etc
Now I always ask - could I have known this information at the exact moment I'm making the trade decision?
A trick I use is to ask Cursor to challenge my code for lookahead bias. It usually finds the weak spots.
4. Entry / Exit Slippage
I started shorting volatility with 0DTE options around April 9th, 2025.
I had completed my backtesting, and everything looked solid. I even didn’t forget to include entry + exit slippage, using the standard $0.15 to $0.25 per spread.
But the day I started Trump announced a pause on most global tariffs.
My cute theoretical $0.15 slippage turned into $10 per spread.
I planned to loss around $300 max and lost $1,200.
Real slippage depends on:
Market volatility
Order size vs average volume
Time of day
News events
Also slippage isn’t symmetric: exits usually cost more than entries.
Now I track slippage continuously and feed it back into the backtest.
5. Execution Constraints
Not every signal gets filled.
Sometimes:
No shares available to short
Price moves away before I get filled
My broker rejects the order
I'm not fast enough
Now I track % of filled orders continuously and feed it back into the backtest.
6. Trading Fees
Commissions, exchange fees, SEC fees, clearing fees.
They add up fast and really mess up with how the pnl curve looks if underestimating them.
Here are two charts of the same strategy with different fee assumptions.
One is tradable, the other isn’t.
7. Multiple Regimes
Almost every strategy I test worked 2020-2021. Gurus selling courses based on results from that period.
But it means nothing.
I test across:
Bear market (2008)
No market (2022)
Money Printer (2020-2021)
Money Printer v2 (2024-2025)
Quiet bull (2010-2018)
Crisis recovery (2009)
I want to see the strategy makes sense in all regimes (even if it's loosing).
8. Simple Ideas, No Perfect Curves
The sexiest backtest curves are usually overfit garbage.
I learned this the hard way - spent weeks optimizing strategies to perfection. Every parameter tuned, every edge case handled.
Beautiful linear equity curve.
Went live and it immediately started losing.
It was always explaining the past, not the future.
Now I prefer simple, robust strategies. Even if the backtest looks "worse."
Perfect curves come from combining multiple uncorrelated strategies, not from optimizing one strategy to death.
9. Not Enough Trades
If I only have 50 trades in my backtest, any results are basically meaningless.
Random chance dominates small samples.
But how many trades you need to know your strategy is valid? I follow a simple formula.
Very smart people already set down and wrote the math.
The amount of trades you need are based on your Expected Value (EV).
I created a tool you can use to figure out how many trades you need.
And if I'm testing multiple variations and picking the best one? That "best" result needs to be validated on completely separate out-of-sample data.
10. Use Forward Testing
Even with all the fixes above, backtests lie.
Forward testing (out-of-sample testing on completely new data) catches things backtesting can't.
My process:
Backtest on some of the data
Forward test on past few months
If it still works, generate live signals for couple of weeks
Then maybe go live with small size
What I want to see is forward signals align perfectly with backtest on new data.
Most of my strategies die in step 3.
11. Am I Emotionally Ready to Follow It?
This is the one nobody talks about.
I backtested a 0DTE options strategy with incredible returns. The only problem? Max daily loss was $5,000.
First time I hit that loss, I panicked and stopped trading it.
The strategy would have worked. But I couldn't handle the heat.
Now before I trade anything I ask: Can I emotionally handle the worst-case scenario this backtest showed me?
If not, the strategy is wrong for me, even if the backtest is perfect.
Conclusion
Backtesting is BS most of the time.
But with these filters, it might be at least usable. ↗
- 2026-01-09 — 92% on 99 trades, should I tell him? ↗
- 2026-01-09 — +$6200 realized
+$2400 unrealized
Awesome day
Most realized came from shorting small caps today ↗
- 2026-01-08 — -$1663 realized
$2179 unrealized.
I keep taking losses on the parabolic shorts while swing momentum longs are paying (still 1/2 size tho)
$KTOS $KRMN $HUT $QBTS $STX ↗
- 2026-01-07 — More on how I backtested Kullamägi momentum breakouts:
https://stonkscapital.substack.com/p/modeling-kullamagi-part-2-momentum ↗
- 2026-01-07 — Why I Think Most Breakouts are Trash
I backtested many breakout variations but only a rare one survived
Nearly every systematic trading book pushes the same idea - buy breakouts after expansion.
They usually show backtests for buying after a:
Close above 52 weeks high
Close above upper bollinger band
Close above Donchian
etc
With the right parameters they tend to work but annual returns vs max drawdown are usually weak (<0.5).
On top of that, the edge has decayed over time.
That’s why I stepped away from those momentum strategies for a few years.
But then I came across Qullamaggie style trading which looked nothing like my weak <0.5 breakout strategies.
Seeing how much money he was making I decided to give it a try.
But I can’t trade something unless I make it my own.
And I do that through backtesting.
Initialy when I tried to backtest Qullamaggie style breakouts, I didn’t change my approach.
The only thing I changed was the universe. I focused on high ADR stocks that were top performers over the last:
Month
3 months
6 months
12 months
But even after limiting them to the best stocks, none of the book setups worked.
It underperformed even the unfiltered textbook approach.
That’s when I saw a common theme among traders like @RealSimpleAriel , @stamatoudism , and @jfsrev : the stock has to be VERY tight before it breaks out.
And only then I had a breakthrough in my research.
Breakouts are everywhere, most doesn't work
So to test their approach I defined 2 type of breakouts:
Break out after a very tight consolidation
Breakout after a loose range
I defined tightness by distance between MAs and distance from MAs (10/20/50).
So for the loose breakouts, the results were shit:
But here’s what happened when I only allowed breakouts after tight consolidations:
Tightness really changes everything.
And the same concept is highlighted here perfectly by a discretionary trader, pointing out that the contraction before the breakout is the edge, not the breakout itself:
This filter cuts the number of valid breakouts dramatically, which raises overfitting concerns, but it aligns with what the most consistent momentum traders emphasize.
My algo is running this strat so I’ll know better by the end of 2026. ↗
- 2026-01-07 — -$1400
Main loss was from shorting $DVLT
Holding around $2000 unrealized swing longs - algo added $STX to the momentum breakout positions ↗
- 2026-01-06 — Wild how some discretionary traders just know things I need to backtest 1000 times to believe.
Every single point here checks out in my data.
Great read. ↗
- 2026-01-06 — My swing long positions - all but $TMDE are momentum breakouts on top performers
$CDE $HUT $KRMN $KTOS $MU $QBTS ↗
- 2026-01-06 — -$1200 realized
Holding $1370 profit swing long
Small caps trade ratio today was very low so my diversification starting to work.
Here’s best chart on $INTC ↗
- 2026-01-05 — I write about systematic trading and strategy development on Substack. Check it out here:
https://stonkscapital.substack.com/ ↗
- 2026-01-05 — There Are Only 2 Trading Strategies in the World
How I think about finding edge after studying a few trading legends
For a long time I felt overwhelmed by the number of “different” trading strategies out there.
There are endless indicators, setups, and universes to trade - and even more ways to combine them.
Rather than testing endlessly, I decided to focus on learning what proven trading legends already had in common.
I assumed I could find a common denominator among all of them and go from there.
But studying them confused me even more.
The more traders I studied, the more contradictory their advice seemed.
Some traders were shorting after a squeeze, some were buying into it.
Some used only price and volume, some used alternative data like the Commitment of Traders (COT) report or social sentiment.
If they were doing completely different things, even the exact opposite of each other, how did they all turn a profit?
The Wizard Who Hates Following the Crowd
Jason Shapiro, featured in Market Wizards, has quietly compounded at 34% a year for years.
He uses COT data to spot extremes.
Too many traders on the same side? He’s looking to fade that.
And when a big headline doesn’t move the market as it "should", he steps in on the other side and waits for the crowd to unwind.
He doesn’t fade price extremes. he fades positioning + failed news.
So when everyone buys and sentiment gets stretched, he sells.
But to another wizard, “stretched” isn’t a warning.
It’s an entry.
The $175 Million Experiment
Richard Dennis believed that anyone could be taught a profitable trading system.
William Eckhardt disagreed, so they conducted an experiment.
They gathered 21 men and women, taught them Dennis's strategy, and gave them money to trade.
The strategy was simple: Buy when the price closes above the high of the past 20 days.
Sell when the price closes below the low of the past 20 days.
This trend following strategy allows you to ride trends as long as they persist.
Over five years, the "Turtles," as they were called, made $175 million.
Some of them still trade today, managing successful hedge funds with slight variations of the strategy.
So how do traders doing the exact opposite both end up profitable?
The differences disappeared once I realized everything reduces to two buckets:
Mean Reversion (Buy Low, Sell High)
Mean reversion assumes extremes don’t last.
Big drop? I can bet on the bounce.
When the price runs too far up I can fade it (if I can find a borrow).
Mean Reversion strategies typically have very high success rates but low risk reward ratio.
Positions are held for a relatively short time, and stop-losses are often just a guideline.
After all, if I buy an asset because it's fallen, a further drop makes the opportunity even better.
So how do I manage risk for this trade?
Size is the last line of defense.
Before that, exits are rule based - like selling the first green candle or a 5% bounce.
I can also cap tail risk with a stop beyond the worst historical move.
And if there’s no chance to exit, I still lose only my position % size on the long (on the short I can get rekt).
Returns Profile of Mean Reversion
This creates many small wins and a few large losses.
If that describes your P&L you’re likely running a mean reversion strategy.
Here’s a three-month sample from my short small-cap trades that shows this pattern:
But sometimes I exit a mean reversion trade just to see the asset goes a long way without me.
To get exposure to outlier uptrends, I use trend following strategies.
Trend Following: Buy High, Sell Higher
Dennis ran a classic trend-following strategy: buy what’s already rising and expect it to keep going.
Trend following wins less often, but the winners are much larger than the losers.
Positions are held for a long time, and stop-losses protect against reversals.
Since only a small number of trades account for the bulk of the profits, it's crucial to take every trade and avoid taking profits too early.
The real returns come from riding trends as long as possible, exiting only when the trend clearly reverses.
Returns Profile of Trend Following
This leads to many small losses and a few big wins.
If that’s your P&L shape, you’re likely trend following.
That realization changed how I backtest.
I stopped searching for new setups and started asking a simpler question first:
Which bucket does this strategy belong to?
I kept jumping from strategy to strategy without understanding why they behave differently. Blinded by all the different combinations out there.
But I was missing a framework.
Once I saw the two buckets, research stopped feeling infinite.
It became more navigable.
Some regimes reward trend following. Others reward mean reversion.
Running both across different universes smooths returns, reduces drawdowns, and protects the account.
That’s what I’m building toward in 2026. ↗
- 2026-01-04 — I WILL STOP WASTING TIME ON RANDO REDDIT POSTS
I WILL STOP WASTING TIME ON RANDO REDDIT POSTS
I WILL STOP WASTING TIME ON RANDO REDDIT POSTS
I WILL STOP WASTING TIME ON RANDO REDDIT POSTS ↗
- 2026-01-03 — https://www.reddit.com/r/Daytrading/s/hrqtWtoYI5 ↗
- 2026-01-03 — This guy claims he solved small caps long and gives away his strategy. ↗
- 2026-01-03 — +$1202
Nice start for the year. Was racing to deploy all changes I needed in the bot. Still too slow but was able to take all signals.
SC short/long, LC MR, momentum long
$ASTS brag chart ↗
- 2026-01-01 — Metrics I plan to track much more accurately in 2026:
• Entry slippage
• Exit slippage
• As size gets bigger - slippage vs. position size
• Locate fees
• Fees
• % of signals not filled → reason
This should give me a more realistic picture of my trading. ↗
- 2025-12-31 — Key lessons in 2025 you might find helpfull:
Fake uncorrelated strategies: https://tinyurl.com/363zc5h5
Sizing problems (still embarassed about this one):
https://tinyurl.com/yya6k4nf
Adding discretion on crypto treasury plays:
https://tinyurl.com/mtsw83mb ↗
- 2025-12-31 — 2025 summary:
+$22k, ~39% ROC.
~+$30k on $BTC (will know after taxes).
Honestly? Disappointing.
Compared to my billion dollar backtests this is noise. Clearly means my backtesting and measurement framework still sucks and needs a rethink.
Learned a lot though:
> Moved to full automation
> Added more strategies in different universes
> More scientific process
Also messed up plenty.
> $16k loss on $SPRB.
> Way too concentrated shorting small caps.
Feels like the phase of “learning” needs to start showing up as PnL.
2026 is probably make or break. Things really need to take a leap for me to continue. Also moved to a new country with 2 kids, money starting to be tight.
Hoping to see you all next year as well! ↗
- 2025-12-30 — Momentum algo just bought $QBTS
Also trying to buy the breakouts in solar $RUN $NXT (adding to open position) and $CSIQ
have orders in $ASTS $KTOS as well ↗
- 2025-12-26 — $ZEC is the next $BTC (still crying I dont own gold) ↗
- 2025-12-26 — Finding alpha in Polygon is easy:
1. Buy every breakout
2. HODL
3. Sell on a huge gap up
But then when you lose everything live, blame it on edge leak on twitter.
It wasn't because of a ticker reuse.
How to avoid the Ticker Reincarnation problem:
https://tinyurl.com/4mba8vue ↗
- 2025-12-25 — I thought way more people using Spikeet.
But turns out most have polygon subscription.
So I need to start by integrating polygon (spikeet is what I currently use).
Polygon have many little quirks, so will document the proccess as many probably encounter the same problems. ↗
- 2025-12-25 — RT @hackertrader: How many trades do you need before you can trust a strategy?
This question bothered me for years, but AI finally helped me crack it for every system I test.
I built a free tool so you can answer it too: ↗
- 2025-12-25 — This is how I code lately ↗
- 2025-12-24 — (media) ↗
- 2025-12-23 — Algo got some $RIVN here mean reversion long
Small caps are destroying the account both long and short so hopefully it can compensate ↗
- 2025-12-23 — Still thinking about the best way to ship it.
The survey results surprised me and need to think about the data pipeline again.
Also checking some partnerships options. ↗
- 2025-12-22 — Scaled a little the momentum breakout strategy today. Still a bit buggy but getting there $NXT ↗
- 2025-12-21 — Launching an AI backtesting engine soon.
Test strategies in 5 minutes.
No coding required.
Actually matches live trading.
Looking for 20 beta testers: $19/mo lifetime.
Reserve your spot:
https://tinyurl.com/2hwcpd9s ↗
- 2025-12-19 — $EXK so proud of my QM algo (silver theme) ↗
- 2025-12-19 — What do you mean comeback what’s 2020-2025 to you? ↗
- 2025-12-19 — That's probably right I need to start printing hard ↗
- 2025-12-18 — Are you destroying your future by posting execution charts?
We all like to brag every once in a while, but does it worth the risk?
@systematicls wrote a really nice article on the leaking of alpha via paid subscriptions. It inspired me to lay out my thoughts as well.
So am I going to keep leaking edge?
Read to find out.
***
Leaking Edge Is Risky (I Still Do It Anyway)
https://tinyurl.com/43hv7k5z ↗
- 2025-12-17 — Don’t claim just drink coconuts at the beach ↗
- 2025-12-17 — So OPB dead or not I'm confuse $SRXH ↗
- 2025-12-17 — Every day I wake up from a nightmare that the 2020 regime shift is over and that I still haven’t capitulated on it ↗
- 2025-12-17 — And that exit.. ↗
- 2025-12-16 — I love it when my algo makes me feel like a genius. Picking bottoms on large caps $ASTS ↗
- 2025-12-16 — This is how I (think) I figured out QM momentum breakouts
Signal showed itself only when played with the ultra liquid names ↗
- 2025-12-16 — Btw this is assuming 2020-2025 market regime continues.
If its going to be more like 2007-2019 I’m going to stay poor (but still beat S&P hopefully) ↗
- 2025-12-16 — Here’s an interesting edge case I just fell into in my backtest:
Basing your decision on volume from the daily candle to trade in after hours is looking into the future.
The daily volume already INCLUDES after hours volume. ↗
- 2025-12-14 — By the New Year I plan to have 7 uncorrelated strategies fully deployed:
- 3 small caps short on totally different scenarios that can't over lap.
- Small caps long
- Momentum breakouts liquid top performers
- Mean reversion liquid LC
That would get me to $1M in 2026 ↗
- 2025-12-13 — Daily reminder to remove data glitches from my backtest ↗
- 2025-12-13 — Wow $JZXN ↗
- 2025-12-12 — 😅 ↗
- 2025-12-12 — https://howmanytrades.com/portfolio-builder.html ↗
- 2025-12-12 — Built a tool where you can build portfolio from all your strats, see CAGR, max dd and more
I used to spend so much time on building portfolios in excel so seemed like a no brainer to vibe code it for a few hours ↗
- 2025-12-12 — and on the tails: ↗
- 2025-12-12 — How good correlation between 2 strategies looks like ↗
- 2025-12-12 — Algo took $NGD and $KGC for the QM style momentum
It recognized strength in gold stocks and entered the breakout of a tight consolidation.
Just test size but so much fun to see ↗
- 2025-12-11 — Before $SPRB, I was convinced my small-cap short systems were diversified.
3 “uncorrelated” signals, 3 separate edges… until one ticker skipped my stops and turned into a -$16K lesson in hidden correlation.
In this post, I break down what actually went wrong and how I rebuilt the portfolio to be truly uncorrelated instead of “backtest uncorrelated”.
___
The Day All My “Uncorrelated” Signals Failed Together
https://tinyurl.com/v4h9p324 ↗
- 2025-12-11 — I have a friend in $ATMC and it seems like 818% locate rate now.
A. This shuold be illegal
B. Any long want to trade shares?
Please like and retweet so it can get to as many eyeballs 🙏 ↗
- 2025-12-11 — bot doesnt care ↗
- 2025-12-11 — $BTTC ↗
- 2025-12-11 — I think I can finally say that black swans have enough common denominator in my DB to exclude them ↗
- 2025-12-10 — And was buggy on $HBM so bought that bo manually ↗
- 2025-12-10 — My QM algo is trying to buy $CLS at yest high breakout level ↗
- 2025-12-09 — Locates fee weren’t so stress free no? ↗
- 2025-12-09 — Fixed a few things and simplified
You can:
Calculate how many trades you need to trust your backtest --> take the strat to a monte carlo sim to determine your sizing.
Would love to hear more feedback
https://howmanytrades.com/ ↗
- 2025-12-08 — $CETX maxi god is back
I'm safe tho locates edge ↗
- 2025-12-08 — How many trades per day should you take in a momentum breakout strategy?
How many positions should you run in parallel?
I tested it on my momentum BO strategy: 3 trades max per day + 5 open positions delivered the best results (0.84 MAR).
wdyt @jfsrev ? ↗
- 2025-12-07 — Is this how the life of a QM style trader looks like? ↗
- 2025-12-06 — Didn’t trigger, maybe Monday ↗
- 2025-12-06 — +$3800
Been a while since I made any money. 3 new algos deployed and 2 more to come.
Future might be bright again ↗
- 2025-12-05 — Ok I delete u win again @TheoryTrading and all other believers that my 700 views tweets can destroy edge (if there is any here no idea could be future leak) ↗
- 2025-12-05 — $LRCX supa tight consolidation on a hot group, will probably try long this one today ↗
- 2025-12-04 — Vibe coded two more strategies from the car today while waiting for my kid to wake up. worked perfectly.
Losing money can be done so much faster pace now. ↗
- 2025-12-04 — I don't want to imagine my algo failing to auto exit this and me sleeping comfy in my Thai timezone...
$PLRZ ↗
- 2025-12-03 — Every time I backtest this concept on a momentum swing trading strategy I get destroyed.
What am I doing wrong? ↗
- 2025-12-03 — Finished Nov with +$3450
Still on a recovery mode from the -$20k loss on $SPRB so way smaller position sizes + volatility in small caps totaly drained.
My main focus is adding 2 more TRULY uncorrelated strats to the short small caps universe which should bump my projected annual returns back up again without the same risk I took on $SPRB.
Also working really hard on adding mean reversion large caps strat, momentum break out on theme stocks (systemized QM style) and TQQQ / UPRO momentum strategy.
A lot of work on many different directions, hopefully will be able to make some money again. ↗
- 2025-12-01 — Fixed a few things:
1. You can now check how many trades you need to know your EV is legit.
2. Check with how many trades you can cut your -EV trades.
3. Run monte carlo simulations (with diff kelly)
https://howmanytrades.com/monte-carlo.html ↗
- 2025-12-01 — Your intuition was absolutly right, it was checking EV > 0 now you can also test EV that is close to yours with desired margin of error ↗
- 2025-11-30 — How many trades do you need before you can trust a strategy?
This question bothered me for years, but AI finally helped me crack it for every system I test.
I built a free tool so you can answer it too:
https://howmanytrades.com/ ↗
- 2025-11-29 — Old lesson I re discovered this week - it's so important to optimize AFTER you filter out all unliquid things and not BEFORE.
You get totally different strategies ↗
- 2025-11-29 — Great way to handle the “everyone think I did it” ↗
- 2025-11-28 — btw you can use "Hacker" for Spikeet discount ↗
- 2025-11-25 — We found a limit to what the market will buy ↗
- 2025-11-24 — $ENLV are they curing cancer or rando gambling crypto prediction markets with the former prime minister of Italy?
You can't make this up lol ↗
- 2025-11-22 — The research I did to back my current swing trading experiment:
* Why you want to focus on top 1/3/6/12 moths top performance instead of just buying any breakout: https://tinyurl.com/ca26erf7
* Why you want to focus on improving EPS, sales and earnings surprises, as well as neglected stocks: https://tinyurl.com/4fzdh9ka ↗
- 2025-11-21 — Took a long $DVLT here @ 1.96
popped up in 2 of my scanners - CANSLIM and beaten down stocks inspired by @jfsrev
Also used his ATR% from 50MA + relative strength + high RVOL + LoD dist < 60%
Top performing group as well software - infra ↗
- 2025-11-18 — Had the pleasure of being interviewed on the first episode of the Spikeet podcast (also my first ever podcast).
Talked about:
- How to use AI/Vibe coding to bypass the high barrier to entry and backtest in minutes
- Avoiding the overfitting and the Excel trap
- When do I shut down a strategy ($20k loss on $SPRB was def a reason)
Hope you like it!
https://www.youtube.com/watch?v=qkttS6DCIf0 ↗
- 2025-11-18 — @RealSimpleAriel @jfsrev @stamatoudism if you can look at the list and tell me if this is somewhat close to your current list 🙏🙏 ↗
- 2025-11-18 — I’ve wanted to get into swing trading forever and move away from smallcap shorts. Tested a ton of stuff along the way, but lately I’m trying to learn as much as I can from @RealSimpleAriel and @jfsrev .
But their post/premarket routine takes way more time than I currently have traveling with kids for the foreseeable future.
So I built something: an auto-generated focus list that's inspired by their approach, strongest stocks in the top industries with earnings and sales and it exports straight into TradingView.
For example today’s list spit out a lot of oil names like $DINO $APA $MUR $VIST $VAL $SEI
Metals like $MTA $ITRG $SBSW
Gold like $NEM $CGAU $NGD
Yesterdays' list got me a lot of what @RealSimpleAriel was watching.
Next step is to figure out how to actually get in intraday. ↗
See @hackertrader on X →