There's a moment in building any automated system when you have to ask a harder question than "does this work technically?" The question is: "should this be fully automated at all?" About a year into developing the trading bot, I reached that point. The decision I made — to stop automating the final execution step and shift toward a real-time signal display instead — changed the entire character of the project. This post explains why.
The Case for Full Automation — and Where It Falls Short
The appeal of a fully automated trading system is obvious. It removes emotion from execution. It acts instantly when conditions are met. It doesn't hesitate, second-guess, or override the plan because of a feeling. For the specific problem of cutting losses too early and letting losses run too long — the behavioral patterns I described in the first post — automation is genuinely useful.
But full automation creates its own set of problems that become more apparent as the system runs in real conditions.
The first problem is brittleness under unexpected conditions. Markets don't always behave the way a system was designed to handle. When something genuinely unusual happens — a news-driven gap, an exchange halt, an unusual liquidity condition — a fully automated system either mishandles it according to its rules, or sits frozen waiting for conditions it was designed for. A human watching the same situation can recognize that something unusual is happening and respond accordingly. An algorithm cannot.
The second problem is the difficulty of knowing when the system is wrong. A bot running autonomously can execute dozens of trades before anyone notices a systematic error in its behavior. In a discretionary setup, a trader notices immediately when something feels off. With a bot, the feedback loop between "something is wrong" and "I realize something is wrong" can be days long — during which the system keeps trading.
What Changed: Keeping the Analysis, Removing the Execution
The shift was conceptually simple: keep everything the system did well — scanning the market continuously, detecting the wave-pullback-breakout pattern faster and more consistently than any human could — and remove the one step that carried the most risk: placing the actual order.
In the new structure, the system monitors every stock in the filtered universe in real time. When a stock completes the full three-stage pattern — wave formation confirmed, pullback validated, breakout detected — the system fires a signal. That signal appears on a live dashboard. A human looks at it, considers the context, and decides whether to act.
The analytical work is still fully automated. The final decision is not.
This might sound like a step backward, but in practice it's a more honest allocation of what machines and humans are each good at. The machine is faster, more consistent, and never distracted. The human brings contextual judgment: awareness of broader market conditions, recognition of unusual situations, and the ability to weigh information that the algorithm wasn't built to process.
How the Dashboard Works
The signal board displays every tracked stock in real time, grouped by its current stage in the pattern: wave forming, pullback in progress, breakout waiting, or signal confirmed. Each confirmed signal includes the key metrics from the moment it fired — the depth of the pullback, the tick acceleration reading, and the signal grade.
This visualization serves two purposes. First, it gives the person watching an instant read on what the market is producing at any given moment. Second, it creates a transparent record of every signal the system generated, making it possible to review what happened afterward — whether the signal led to a strong move, a reversal, or nothing at all — and use that feedback to keep improving the system over time.
The infrastructure behind this dashboard is a real-time database that the Python analysis engine writes to as signals occur, and a web interface that reads from the same database and renders the display. The result is a live feed that works on any device, updating in real time without any manual refresh.
Today's Investing Insight — Discretionary vs. Systematic Trading
Trading approaches generally fall somewhere on a spectrum between fully discretionary (every decision made by a human in the moment) and fully systematic (every decision made by a predefined rule, executed automatically). Each has well-documented strengths and weaknesses. Systematic approaches are consistent and unemotional but brittle when conditions fall outside the design parameters. Discretionary approaches are flexible and contextually aware but vulnerable to emotional bias and inconsistency. Many professional traders operate somewhere in the middle — using systematic tools to identify opportunities and filter noise, while retaining discretion over final execution. The approach described in this post sits explicitly at that midpoint: systematic pattern detection, discretionary execution. Whether that balance is right for any particular trader depends on their edge, their psychology, and the nature of the strategy they're running.
---
This post documents a personal journey of building an algorithmic trading system and is not a recommendation of any specific stock or strategy. All investment decisions and their outcomes are the sole responsibility of the investor.
Comments
Post a Comment