I built a spot grid trading bot for Bitcoin in Python, and instead of selling it right away, I am running it in public on paper money first. The idea is simple. A grid bot places a ladder of buy orders below the current price and sell orders above it, so it buys small pieces as price dips and sells small pieces as price rises, collecting the spread between grid levels over and over while the market moves sideways. Mine runs a static grid with 10 levels spread across a band 20 percent above and below the price where it started. There is no leverage, no futures, and no martingale. It runs on your own computer, in paper mode by default, with trade only API keys, which means the bot can place orders but can never withdraw your funds. The reason for paper first is that selling an unproven bot is easy and proving one is slow, and the internet already has plenty of the first kind. So the bot runs a public paper account that started on October 15, 2026 with $10,000 in virtual funds, on live Bitcoin prices, with a 0.1 percent fee charged on every fill. Every trade is logged on the record page, including the drawdowns, because a record without fees and drawdowns is a story, not a record. Eleven days in, the record reads like this. The total account value is $9,912.79, down $87.21 or 0.87 percent from the start, and the pocketed profit from completed buy and sell pairs is $18.89 after fees, across 18 fills with 6 sells. Both of those numbers are true at once, and watching them together is the honest way to judge a grid bot, because the grid can be banking small profits while the total is down in a falling market. I will be straight about what this record does not prove yet. Every fill so far has happened near the starting price line, so the full grid swing mechanism across multiple levels has not really been exercised. The bot is down overall, Bitcoin is down from where it started, and a grid bot in a long downtrend keeps buying on the way down and ends up holding a position worth less than it cost. That is the real failure mode of this strategy, and it is why the download stays closed until the record earns it. The gates I set are 90 days of continuous paper trading, at least 30 round trips, and a worst drawdown shown publicly at or under 20 percent. If the record falls apart, the honest outcome is that the download never opens, and the waitlist gets an email saying exactly that. If you trade systematically, I would genuinely like your feedback. What metrics would you want to see before trusting a bot like this, and what would convince you that a grid record is real rather than cherry picked? I am not selling anything today, and nothing here is financial advice. The full record, the trade log, and the risks stated plainly are on the showcase page, and the product is listed on Indie Hackers. Showcase page: https://frolicking-sunburst-9aa87e.netlify.app/gridproof-showcase-page.html . Indie Hackers: https://www.indiehackers.com/product/gridproof .
For further actions, you may consider blocking this person and/or reporting abuse
Top comments (2)
Solid first step — the paper-trading-in-public approach is the right instinct for proving a strategy like this.
One area where this could genuinely get stronger: the static grid (fixed 10 levels, fixed 20% band) is the simplest version of this strategy, and it’s also exactly why you’re seeing the failure mode you already flagged — it buys the same way in a downtrend as it does in a ranging market, because it has no concept of which regime it’s in.
A few places where a lightweight model (not a black-box predictor, just structure) could directly address that:
Regime detection, not price prediction. Instead of trying to predict where BTC goes next (hard, and a different problem), a simple classifier (even just volatility + trend-slope features feeding a logistic regression or small gradient-boosted model) could flag “trending down” vs “ranging” vs “trending up” and widen/narrow the grid band or pause new buys accordingly. That directly targets your stated failure mode — a grid that keeps buying into a sustained downtrend — without claiming to predict price.
Adaptive spacing instead of fixed 20%. Grid spacing based on realized volatility (ATR-style) rather than a static percentage means the bot naturally widens in choppy conditions and tightens in calm ones, which tends to improve capture rate without changing the core logic.
Dynamic position sizing per level, scaled down as price moves further from the entry band — so a prolonged drawdown costs you less than your current fixed-size levels would.
None of this needs to be “AI” in the hype sense — it’s closer to applied statistics — but it’s the natural next step once you have 90 days of real fill data to train/validate against, which you’ll have soon. Would genuinely be curious to see how a regime filter changes your drawdown number once you’ve got enough data to test it against.
Some comments may only be visible to logged-in visitors. Sign in to view all comments.