All posts

· 6 min read

NextScalp: the gate is the product

NextScalp throws away most of what it finds. Why the hard part of a signal bot is restraint, why the AI never decides a trade, and why I refuse to publish a win-rate.

NextScalp watches every Binance perpetual in real time, finds thousands of things worth a glance, and then refuses to send you almost all of them. Roughly 3% of what it detects ever reaches a chat. The other 97% is the product.

That sounds backwards, so let me explain it the way I had to learn it.

A signal bot is easy to start and hard to make good

Detecting that something is happening in a market is the easy part. A volume spike is a number crossing a threshold. A breakout is a price above a level. Anyone can wire up a dozen of these in a weekend and ship a bot that fires all day long.

The problem is that a bot which fires all day long is useless. Scalpers do not lose to the market - they lose to the same handful of mistakes on repeat: chasing a breakout that already topped, taking the false break that closes back inside, sizing into FOMO with no stop. These are not skill problems, they are attention problems. The market moves across every perpetual, every minute, all at once, and no human can watch it all.

A bot that surfaces everything that moves does not fix the attention problem. It moves it into your pocket and adds a notification sound. The value is not in what you can detect. It is in what you are willing to throw away.

Three engines, one standard

NextScalp runs three independent detection engines in parallel. One reads the live trade stream for momentum: volume spikes, breakouts, liquidation cascades, liquidity sweeps. One reads market structure on candle closes: trendlines, support and resistance, breaks of structure, compression triangles, fakeouts. One maps resting order-book liquidity and tracks the large walls where institutional size is parked. Together they produce 17 distinct signal types.

If I had stopped there, I would have built the noisy bot I just described. Three engines means three times the firehose. So every candidate, no matter which engine found it, has to clear the exact same gate before it can reach a user.

type Decision = "send" | "caution" | "suppress";

const decide = (signal: Candidate): Decision => {
  if (failsAnyHardVeto(signal)) return "suppress"; // binary kill-switches
  const score = confidence(signal); // 0-100, boosters minus penalties
  if (score < SEND_FLOOR) return "suppress";
  return score < CAUTION_FLOOR ? "caution" : "send";
};

The hard vetoes are the interesting part. Stale fakeouts, mean-reversion traps, unscalpable low volatility, order-book spoofing risk, a funding settlement about to hit, a spread too wide to scalp, an over-extended breakout, insufficient risk-to-reward. Any one of them kills the signal outright, no matter how good it looked on the other axes. A high score cannot buy its way past a veto.

What survives gets a confidence score from 0 to 100 - a base, plus boosters for higher-timeframe alignment, flow confluence and healthy risk-to-reward, minus penalties for trend opposition, crowded positioning and thin liquidity. Then it lands in one of three tiers: send, send with a caution badge, or suppress. When several signals fire on the same pair at once, only the single best one goes out.

The gate is not a feature next to the engines. The gate is the whole product. The engines just give it things to reject.

The AI never decides a trade

The obvious 2026 move is to put a large language model on the live path and let it call the trades. I deliberately did not do that.

Every signal NextScalp sends comes from deterministic math: fast, repeatable, and the same answer every time for the same input. An LLM is none of those things on a latency-critical path, and "the model felt bullish" is not a reason I am willing to put a trader's money behind.

The AI co-pilot exists, and traders use it constantly, but only when they ask for it. Tap a button on an alert and Claude gives you a structured second opinion on that pair and timeframe. It is never invoked silently and never in the automated delivery path. And every price, level and stop the model proposes is checked server-side against the live order book before it reaches you - if the AI contradicts a kill-scenario the deterministic engine already flagged, the trade plan is stripped out. The model gets a voice, not the keys.

That is the rule across all my products: AI shows up only where it changes the answer, and even then it is metered and validated. Here the deterministic engine tells you what is happening. The AI helps you decide whether to act. Those are different jobs and I keep them apart on purpose.

Why I will not publish a win-rate

The first thing people ask a signal bot is "what is your win-rate." It is the wrong question, and answering it dishonestly is the easiest way to sell one.

NextScalp does measure itself, rigorously. Every signal it sends opens a simulated trade that resolves to win, neutral, loss or expired, with fees and slippage included. The signals it suppresses are shadow-graded the same way - so I can check that the gate is filtering edge in, not just filtering volume out. Internal scorecards track real expectancy per signal type and per filter, and that is what drives how the bot is tuned.

What I do not do is paste a win-rate on the landing page. A public win-rate is curve-fit to last month and lies about next month. It is a marketing number, not a measured one. The honest version is harder to sell and the only one I am willing to stand behind: show every alert's reasoning and risks up front, hold the results to an internal scorecard, and tell the trader plainly when not to take a setup.

What this has to do with managing teams

I spend my day job managing engineering teams, and the gate is the same discipline I spend most of that job defending. The hard part of shipping is not generating options. It is having the bar to reject most of them, and the spine to delete work that does not clear it.

A signal bot just makes that lesson unusually literal. The features I am proudest of in NextScalp are the ones the user never sees fire. The 97% it stays quiet about is the part that took the longest to build, and it is the only reason the other 3% is worth a notification.

NextScalp lives here (opens in a new tab). If you want to argue about any of this, LinkedIn (opens in a new tab) is the fastest route.