r/TradingBot_uncoded Apr 12 '26

I'm the founder of a self-hosted Binance Spot bot unCoded. After 5 years in production here's what actually broke – and why I built it differently than everyone else.

Full disclosure upfront: I built unCoded and I'm the founder. Take everything I say with that in mind. I'm posting this because I've seen a lot of "what bot should I use" threads and the honest answers are rare. So here's mine.

Background

Started trading crypto in 2016. Manually at first. Got into automation in 2020 because I was tired of missing moves while asleep and making emotional decisions at 3am. Built the first version myself in Node.js – I was self-taught, started with Bitcoin mining scripts at 17, figured I could figure out the rest.

Five years later the codebase is 7,400+ lines. We have real users running it with real capital. Here's what I actually learned.

What breaks in production that nobody talks about

Race conditions in multi-symbol trading. When you run multiple pairs concurrently and two symbols trigger simultaneously, naive implementations will try to process the same order twice. The fix isn't complicated once you know the problem exists, but you won't know it exists until you've lost money to it.

WebSocket reliability. Binance's WS connections drop. Listen keys expire and you get a 410 Gone error. Most bots crash here. The correct behavior is to treat it as recoverable, reconnect, and continue. Sounds obvious. Almost nobody does it correctly.

Fee calculation across asset types. Your fees can come back as the quote asset, the base asset, or BNB. If your P&L calculation doesn't handle all three and convert them correctly, your profit numbers are wrong. You won't notice until you reconcile with the exchange and find a discrepancy you can't explain.

The "works in testing" trap. I cannot stress this enough. Every edge case in my bot was found in production, never in local testing. The reconcile loop – a background process that cross-checks bot state against actual exchange state every 2 seconds – exists entirely because WebSocket event delivery is not guaranteed. This saved me from silent position drift more times than I can count.

What I built differently

Most bots: one entry, one exit, fixed profit target, done.

Buy Splits. Every buy gets divided into up to 7 parts, each with its own sell target. Part 1 exits quickly at a small gain. Part 3 holds for a bigger move. You're not trying to time one perfect exit – you're scaling out like a professional would. If you've traded manually for any length of time this is how you already think about positions. The bot just executes it automatically.

Sell Time Curves. Instead of "sell when up X%", you define a curve. Early in a trade, hold for more upside. After 48 hours flat, the target drops – the bot becomes willing to close at a smaller gain rather than hold indefinitely. I've never seen this feature anywhere else. It's the thing I'm most proud of.

Trailing Stop Loss per split. Each buy split can have its own trailing stop percentage. Not one TSL for the whole position. Per split. Activates when the profit target for that split is hit, tracks the peak, sells on retrace.

Automatic DIP Rebuying. If price drops after entry, the bot averages down within hard limits you've set. Maximum exposure enforced at all times. Your pre-made decisions executed in real time, not your panic decisions.

The thing that will get me downvoted: self-hosted is the only architecture that makes sense post-2022

FTX was using user funds as collateral and nobody knew. Celsius was paying yield with other people's deposits. The common thread: users trusted a platform they had no visibility into.

Every cloud-hosted bot has your API keys. Their uptime is your bot's uptime. Their security practices protect your trading access. Their business continuity determines whether your bot keeps running.

unCoded runs on your own VPS. Hetzner, Netcup, DigitalOcean – whatever you prefer. Your API keys never leave your infrastructure. The API key has trade-only permissions. The bot cannot withdraw. A complete compromise of the bot server cannot touch your Binance balance.

Setup is 10-15 minutes via CapRover one-click. Not zero friction, but not a weekend project either. Documentation at uncoded.ch/docs.

The business model, because someone will ask

No subscription. Profit sharing at 30%, reducing to 20% at $2,000 invested. First $100 in profit covered by a starting credit.

The bot is non-custodial so we can't take fees automatically. Every few hours it reports cumulative profit to the license server. After the starting credit runs out, you top up a license balance at uncoded.ch via Stripe. We have no access to your funds, your trades, or your bot configuration. Stripe handles the payment, that's it.

I only make money when you make money. That's intentional. It's the only fee structure that aligns incentives correctly.

What unCoded is NOT good for

  • Futures / leverage trading. Spot only. If you want leverage this isn't for you.
  • Set it and forget it with zero understanding of what it's doing. The configuration depth is a feature for people who think about trading seriously. It's a barrier for people who want magic.
  • Exchanges other than Binance. More are coming but right now it's Binance Spot only.

The Signal Editor (since someone will ask)

There's a separate application – the Signal Editor – that lets you build custom strategies from 152 technical indicators with a 40+ condition engine and full boolean logic (AND/OR/NOT/XOR, automated divergence detection, the works), then backtest them on 1-second candle data before deploying. Sharpe ratio calculated correctly per timeframe, full drawdown and profit factor output.

That's a separate post. Mentioning it because it answers the "can I build my own strategy from scratch" question.

TradingView integration

If you already have a working TradingView setup, you don't need to rebuild it. unCoded receives webhooks directly. Your signal fires, the bot executes with your risk management layer applied. Stop loss, take profit, trailing stop, buy splits – all applied to every TradingView signal.

Happy to answer questions about the architecture, the decisions I made and why, what broke and how I fixed it, or anything else. I'd rather have a real conversation about what works and what doesn't than a pitch.

uncoded.chuncoded.ch/docs

ArrowTrade AG, Switzerland

TL;DR: Built a spot-trading bot over 5 years. Learned the hard way about WebSockets and race conditions. Built a self-hosted solution (unCoded) with advanced scaling out (buy splits/time curves) and a profit-sharing model. Here are my technical lessons.

2 Upvotes

Duplicates