The three weekdays were quiet, but the weekend was packed — I reviewed and shelved three strategy ideas, then a full pre-live-trading checkup turned up bigger gaps than expected
This is the English version of a post originally written in Korean for my algorithmic trading system devlog(new tab).
The weekdays (8/5–8/7) passed quietly, mostly confirming that last week's fixes held up. Work piled onto the weekend instead — Saturday I worked through some long-standing questions about the strategy itself, and Sunday I ran a full checkup I'd been putting off ahead of expanding live trading.
Reviewed three strategy ideas, shelved all three
Hearing that an acquaintance had done quite well trading US stocks was the trigger. I spent Saturday working through three strategy questions that had been sitting unanswered for a while.
The first was whether changing the trading cadence from the current three-times-a-day batch execution would help — analysis showed no clear benefit. The second was running trading decisions continuously throughout the session, which landed on the same conclusion I'd reached and shelved once before. The third was switching to the US market, which reconfirmed last time's conclusion: technically possible, but premature.
Having shelved all three, I decided to keep the current framework as-is — three daily batch rounds, focused on the domestic market. The confirmation was that reinforcing what already exists made more sense than starting something new.
The real reason cash kept piling up on one side
Sunday, I first addressed a problem that had been nagging at me for a while. Buys and sells shared the same daily budget, and when sells used up most of that budget first, it structurally cut into the room left for buying.
I split the daily limits for buys and sells so they're independent of each other, and switched order sizing to a ratio-based calculation. While at it, I also built a new boundary check that cross-references deposits and withdrawals against the ledger and filters mismatches.
Reversed three of my own wrong conclusions
I also refined a tool that replays trades offline before going live, and in the process discovered that three conclusions I'd previously drawn myself were wrong — and reversed them.
One was particularly painful. A bug in the budget calculation happened to sidestep trading on sharp-drop days, which made performance look much better than it actually was. A single bug had accidentally produced a good-looking result — if I hadn't traced the cause, it could have kept feeding false confidence.
The real problem the pre-live-trading checkup found
The core of Sunday was a full checkup ahead of expanding live trading. The biggest issue wasn't a new bug at all — it was that the real order path, which documentation claimed was already wired up, was in fact still pointing at the paper-trading account.
The safety-guard tests had a problem too. On the surface, everything showed green, but the specific safety guard that was supposed to be checked was actually disabled while the test passed. I also found that during a recent period of reworking the funds-flow path, a date-calculation bug meant the core safety tests never even reached the real logic — they just passed through without touching it.
All three were the same kind of problem: "it's running, but nothing was actually being verified." Without this full pre-live-trading checkup, I'd likely still be unaware of all three. I sorted the findings by severity and documented them; background on this order-execution and safety-layer design is in an earlier post(new tab).
Also redesigned the day's opening reference point
I also changed how the ledger sets its daily opening reference. It used to be the unstable quote right after market open. The concern was that opening-minute prices swing too much to serve as a reliable baseline, so it now just carries over the previous day's closing price — which also removed the need for a live quote lookup entirely.
In the process, I found and fixed a contamination bug where test code had been writing fake values directly into a production file.
Also this week
- Updated the externally shared project summary document to reflect the shrinking role of human approval. As before, I deliberately left the brokerage's name out of the public document.
Looking at just the weekend, there was almost nothing new feature-wise. Instead, I re-checked things I'd assumed were already working, one by one — and several of them weren't. I think it's a good thing these turned up at this last gate before widening the scope of live trading.
Top comments (0)