DEV Community

Kestrel Quant
Kestrel Quant

Posted on

My Trading Engine Proposed the Same Trade 6 Times in an Hour. The AI Killed It Every Time.

I run an automated crypto trading system. Like most algo traders, I built an engine that scans markets, scores setups, and fires orders. That's the part everyone builds.

The part nobody builds — and the part that turned out to matter far more — is the second brain that sits between the signal and the order. Its only job is to say no.

Last weekend I watched it do its job in a way that made me genuinely glad it exists. Here's the full story, with the actual decision log.

The setup

On Aug 16, between 14:07 and 14:56 (UTC+8), the scanning engine proposed the same trade six separate times: SHORT $GRVT.

Six times, the AI advisor layer rejected it.

Not with a generic "score too low" filter — with actual reasoning, re-evaluated fresh on each attempt:

Kill reasons, straight from the log:

  1. Score 40 vs a 65 minimum. Not even close. The raw setup was weak on structure, momentum, and trigger quality.
  2. Institutional memory. The same ticker had already burned a long position earlier this month. There's a post-mortem on record, and the advisor re-reads its own post-mortems before every ruling.
  3. Hostile tape. BTC was in an institutional-bid news cycle. In that regime, alts drift up and shorts starve. Shorting alts into a BTC-bid tape is fighting the current.
  4. Contradiction in positioning data. The smart-money ratio was leaning long. Proposing a short against that is a directional contradiction, not a nuance.

Why this matters more than it sounds

Any one of these reasons might slide past a naive filter. A score threshold alone wouldn't have caught the regime conflict. A regime filter alone wouldn't have caught the post-mortem precedent. The point isn't any single rule — it's that the advisor composes weak signal + bad memory + hostile regime + positioning contradiction into a single judgment: hard no.

Six proposals in an hour also tells you something about engines: left alone, they don't get tired, and they don't get embarrassed. The scanner kept finding the same pattern because the pattern was technically there. It was just a bad trade.

Most retail algo systems have exactly one line of defense between a signal and real money: the score threshold. The failure mode of that design is well documented in every blown account — a mediocre score in a terrible context is still a pass.

The advisor's design (short version)

  • Every proposed trade gets re-litigated: score, multi-timeframe resonance, regime context, news cycle, positioning data, and historical precedents from its own loss post-mortems.
  • A "yes" can come with conditions: reduced size, tightened stop. "Yes, but smaller" is a ruling too.
  • Every veto is logged with full reasoning. When a similar setup shows up later, the log is part of the evidence.

The vetoes are not bugs. They're the feature. A system that argues with itself before touching money loses less money.

Build in public

I'm documenting the decision stream — vetoes, overrides, lockouts, autopsies of losing trades — as a public log. No PnL screenshots, no return promises, just the mechanical reasoning of a system designed to survive its own engine.

Full decision log and live system notes → https://kestrelquant.com


⚠️ Crypto is a high-risk market. This is a decision-support tool, not a signal service or copy-trading product. Nothing here is financial advice.

Top comments (0)