Skip to content
Karana Gulati
StoppedConcept, then verification · February to May 2026

A Trading Bot I No Longer Run

A crypto trading bot built around my own idea about how institutions move price into the places where retail traders keep their stops. The research, the backtesting and the code were done with AI. Working out whether any of it was true is where I actually learned something.

If the idea is mine and the implementation is not, what have I actually done?

The idea

The thesis is that large participants push price through a level everyone is watching, set off the stop-loss orders resting just beyond it, absorb the flow that creates, and let price snap back. Retail stops sit in guessable places. Size can reach them. The trade is to be there at the moment price rejects and turns.

What the strategies actually do

S7 is a mean-reversion scalp on five-minute BTC perpetual futures on Delta Exchange India. It watches eight rolling windows at once, from one hour out to two days. When price sweeps the high of a window and rejects, it sells. When price sweeps a low and rejects, it buys. If several windows fire on the same candle they collapse into one trade at the longest confirming window’s level, and the number of windows agreeing is recorded as the depth of the signal. It exits within two candles, so ten minutes at the outside. There is no discretion anywhere in it.

The longer windows fire rarely and are worth more per trade. The one-hour window fires constantly and is worth the least.

S8 is the same idea on fifteen-minute candles. Short only, exits set by ATR instead of fixed percentages, a three-hour maximum hold, and the London session skipped because those hours were too noisy to trade. It also filters out signals overlapping with S7 so the two do not take the same trade twice.

S3 has nothing to do with the sweep thesis. It sells a strangle on zero-day BTC options every day, one out-of-the-money call and one out-of-the-money put, gated on whether the variance risk premium looked favourable. It was the first one to go live.

What I did, and what I did not

The research, the backtesting and the code were done with AI. I am being exact about that because of what follows.

You cannot take that output on trust. To find out whether a backtest meant anything I had to understand what it was measuring, which sent me into statistics, into how liquidity actually works, and into the ways crypto markets behave differently from equity markets. That reading is what I kept from the project. I already wanted to work in quantitative finance before any of this started. Seeing the mechanics up close, and finding out how much I did not know, made me want it more.

How it ran

It traded live, on a VPS, in a family member’s account with their knowledge and under their supervision. I am seventeen and cannot hold a derivatives account in my own name, so that was the arrangement that made live execution possible. The capital was not mine and the decision to let it run was theirs.

The account held about $283 and each strategy traded a single contract per leg. Every strategy also ran in paper form beside the live one so the two could be compared. Orders were limit only, never market, so a thin book could not fill me at a bad price. Three consecutive losses paused trading for a day, and a fifteen percent drawdown stopped everything until I restarted it by hand.

Why it is switched off

Two reasons. The first was the market. When the conflict between Israel and Iran escalated, the volatility conditions the strategy had been built around stopped holding, and I shut the bot down instead of letting it trade through a regime it had never been tested in. The second reason is duller. School got busy and I never turned it back on.

The review

I asked an uncle of mine who is working through a quantitative finance course to look at it. He did not point to a specific fault in the code or the signal. His objection was broader, and it came from his own trading: strategies of this shape usually do not work out, and for the timeframe I was trading and for crypto in particular, a volatility-based approach would suit me better.

I never ran it long enough to find out whether he was right about mine. It was live for a short stretch, the market conditions it assumed stopped holding, and I stopped it. So I have no result of my own to weigh against his opinion, which is itself the honest summary of this project.

Limitations

Everything behind this is a backtest plus a short live period, and the live period was too short to prove anything. Backtests mislead in well documented ways, so I would rather list them than leave them to be assumed.

  • A backtest is a hypothesis about what a rule would have done on data that has already happened. It is not a track record.
  • In-sample results say very little. Anything tuned on a period will look good on that period. Only out-of-sample behaviour counts as evidence.
  • Costs decide most of these questions. Commissions, spread, slippage and market impact routinely turn a positive backtest negative.
  • If you try enough variants, some will look excellent by chance. How many configurations were tried is part of the result.
  • The strategy assumed a volatility regime that stopped holding, which is how it ended. A strategy that only works in one regime is a strategy with a hidden parameter in it.

Nothing here is investment advice and none of it says anything about future performance.

← All work