TRADEPULSE.AI
BTCUSDT
connecting

AUTONOMOUS SYSTEM · AWS eu-west-2 · LIVE SINCE 2026-07-16

Trading on evidence, not vibes.

A trend-following system that decides on its own schedule, sends its own orders to an exchange, and writes down what came back. Every proposed improvement gets pre-registered, measured out-of-sample, and usually thrown away. Eight have been tested. Eight were rejected. It still runs the boring strategy — that is the one the evidence supports.

The tape, live

Four-hour candles streaming from Binance — the same bars the executing bot decides on. The two moving averages are its entire opinion of the market: when the fast one crosses the slow one at a bar close, it sends an order.

  • EMA 20 · fast
  • EMA 100 · slow
  • up
  • down
BTCUSDT · 4H · binance loading…
Markers are placed from the venue fill log — the price the exchange actually gave the bot, not the price it hoped for.

02 — WHERE THEORY MEETS THE EXCHANGE

The bot was wrong
about its own costs

A backtest assumes a price. A venue gives you one. The gap between them decides whether a strategy that works on paper survives contact with a real order book, so the system measures it on every fill instead of trusting the assumption.

Assumed slippage what the backtest charged itself
Measured on the venue from the durable fill log

— the execution gate needs twenty observed fills before this number means anything. One fill is an anecdote, and the page says so rather than rounding it up into a conclusion.

03 — WHAT IT RUNS ON

No servers, no babysitting

The whole system is four Lambda functions on a schedule, one DynamoDB table, and enough alarms that it tells me before I notice. It is defined in Terraform end to end, so it can be destroyed and rebuilt from nothing.

Splitting them is the whole trick: when the numbers disagree, the difference is execution cost, and it is measured rather than argued about.

04 — HOW ONE DECISION HAPPENS

Seven steps,
every four hours

This is a real sequence, and the order is the whole point: the bot never sees a price that has not finished forming.

  1. 01

    The bar closes

    00:00, 04:00, 08:00 UTC and so on. EventBridge Scheduler fires the Lambda ten minutes after the close, not at the boundary — exchanges are late sometimes.

  2. 02

    Only closed candles are read

    The in-progress bar is dropped before anything is computed. Reading it is how a backtest quietly starts cheating.

  3. 03

    EMA 20 against EMA 100

    Fast above slow means hold long; fast below means stand aside. That is the entire signal.

  4. 04

    Compare with durable state

    The target is checked against what DynamoDB says the bot is actually holding, not against what it thinks it did last time.

  5. 05

    Act, if anything changed

    An order goes to the Binance demo venue, and the fill comes back with a price and an order id. Both are written down.

  6. 06

    Write the row, then publish

    Decision, price, position and equity are persisted. The status Lambda serves them; this page reads them.

  7. 07

    If it goes quiet, it says so

    A missing invocation raises an alarm, the same as an error would. A bot that dies silently is worse than one that loses money.

05 — THE PART NOBODY PUTS ON A PORTFOLIO

Eight upgrades tested.
Eight rejected.

Each of these was a good idea with real literature behind it. Each was pre-registered — the pass criteria written down before the result was known — and each failed honestly out of sample. Keeping the list is cheaper than relearning it.

Proposed strategy upgrades and the measured reason each was rejected
CandidateThe ideaWhy it died
Volatility targeting Scale exposure inversely to recent variance. Cuts drawdown exactly as the literature promises, but Sharpe drops at every target level in the 2022+ regime, and turnover doubles.
EMA speed ensemble Blend several EMA pairs so no single parameter choice can be lucky. Passed the screen, then failed the honest harness: three of four pre-specified checks rejected it.
Regime filter ×3 Only take the signal when a 200-day trend agrees. All three variants cut Sharpe. The one that did improve drawdown still cost about 0.05 Sharpe to get it.
Mean reversion ×4 Buy the dip instead of following the trend. Sharpe 0.29–0.57 on daily bars against roughly 1.0 for plain EMA. On hourly bars: −1.3 to −3.8, and −100% return everywhere.
4-hour timeframe More bars should mean a faster verdict on whether this works. More bars, not more independent information. The proof does not arrive sooner.
Short leg Trade the downside too instead of sitting in cash. Loses money net of costs. Standing aside beat being clever.
Maker-only orders Post limit orders and save the taker fee. Worth nothing at this size and cadence — and the fee model understated short-side costs, which is its own lesson.
Meta-labeler A model on top of the strategy, sizing each trade by predicted quality. Zero discrimination: correlation with outcomes −0.01. Not one of 128 events was actually attenuated — the "filter" was a flat 1.3× leverage in disguise, and the five biggest winners all landed at the bottom of its ranking.

The strategy running today is the one from day one. That is not stubbornness — it is the only candidate that has not yet failed a test.

Built and operated by one person

Infrastructure, strategy research, execution layer and this page. If you want the details, the code and the write-ups are public.