All articles
EngineeringSeptember 27, 2026

Why most trading bots are hard to maintain

Building a trading bot can be surprisingly quick. Maintaining one as markets, dependencies and requirements change is much harder.

A basic trading bot can be built surprisingly quickly.

Connect to an exchange, retrieve market data, implement a few rules and send orders. The first version can feel almost simple, especially when the goal is only to prove that an idea can work.

The difficult part begins afterwards.

A bot that runs for a weekend is a project. A system expected to operate for months or years becomes something else entirely.

Markets change, but code remembers

Software continues following the assumptions encoded when it was written until someone changes them.

Markets do not offer the same stability. Liquidity changes, volatility changes, assets behave differently and exchange rules evolve. A configuration that made sense in one period may become less appropriate later.

This is where maintenance starts to matter.

Keeping a trading system healthy is not only about fixing bugs. It also means regularly questioning whether yesterday's assumptions still make sense today.

Complexity accumulates quietly

Maintenance becomes harder as features accumulate.

A new option may look isolated when introduced, but eventually features interact. More states appear, more edge cases need consideration and a change in one area can influence another.

This is why I became increasingly cautious about adding complexity to Oblivion simply because something was technically possible.

Every feature has a development cost, but it also has a permanent maintenance cost. Once the feature exists, the system has to carry it.

Real usage exposes hidden coupling

Many trading bots are easy to understand while they are small.

The problems appear when execution logic, risk rules, exchange constraints, user settings and recovery behaviour start depending on each other. A change made for one reason can create consequences somewhere else.

This kind of coupling is not always obvious in the code at first.

It becomes visible when the system needs to be changed quickly, debugged under pressure or adapted to a new market condition. The less clear the boundaries are, the more expensive every change becomes.

Maintenance is a product decision

I used to think about maintainability mostly as an engineering concern.

Over time, I started seeing it as a product decision too. A system that is hard to maintain becomes harder to improve, harder to trust and harder to explain.

Users do not see the internal structure, but they feel its consequences.

Slow fixes, fragile updates and unpredictable behaviour are often signs that maintenance was not treated seriously enough.

Looking back

The real engineering challenge is keeping the system understandable while assumptions, interactions and historical decisions accumulate.

Today I no longer ask only whether a feature can be built.

I also ask whether I will still be comfortable maintaining it years from now.

Why most trading bots are hard to maintain