A platform that measures a trading strategy before selling an alert

Nzila, own product · Financial markets and trading · 2026

The problem

Whoever buys a trading signal buys a promise they cannot check. The seller shows the curve that went up, the month that worked, the hit rate without saying how much is lost on a miss. The average hides the worst case, and the worst case is what wipes out the account of whoever follows the signal.

The question that matters to a trader is not "does this strategy win?". It is "how many more trades until I know whether it wins, and what does the worst plausible scenario say today?". No tool I knew answered that directly, because the honest answer is almost always "we do not know yet", and that does not sell.

The constraints

The decisions

Rank by the worst plausible case, computed on read

Each cell (one market pair with one set of parameters) is ranked by the worst plausible outcome rather than the average one (in statistical terms, the lower bound of the 95% confidence interval). The ranking is recalculated on every request, from each account's full history, instead of being stored and going stale.

That lets the screen show, for every strategy, how many trades it still needs before it proves anything. The public transparency page publishes that scoreboard, including when it is negative.

discarded alternative

Rank by average return or hit rate. Discarded: it rewards the cell that got lucky on its first trades, which is exactly the mistake the product exists to prevent.

What learns is the size of the bet, never the strategy

The strategy is deterministic and versioned: every run records the strategy version and the configuration version, and every signal can be followed from the market move that started it to the outcome. The only automatic adjustment is position size, and every risk change is written down before it applies.

discarded alternative

Tune the parameters automatically from the results. Discarded: a variant that looked great in replay was measured and thrown out for overfitting. A parameter that fits itself to the past measures the past.

The assistant writes, but only with the system's numbers

Nia, the platform's assistant, drafts the alerts and answers questions in the dashboard and on WhatsApp. Every price-like number in her message has to be on the list the system calculated, and entry and stop have to be present. If not, she tries again knowing the mistake; if she fails again, a standard message goes out with no free text.

To answer about an account, she only receives that account's data; the filter happens earlier, in the database, and does not rely on asking the model to behave. And nothing that changes the account runs on the message that asks for it: she repeats what she understood, with the values spelled out, and waits for a yes.

discarded alternative

Give the model tools to fetch whatever it thinks it needs. Discarded: that hands it the choice of which data to read, which is the one decision you do not delegate when the data belongs to someone else.

The result

The platform is live at trade.samuelramos.dev, testing 66 market and strategy combinations with simulated money, with each subscriber's account kept apart from the others, alerts by email and WhatsApp, daily backups with a tested restore, and a watchdog that speaks up when something stops.

Underneath there are about 42 thousand lines of Rust, checked by more than 600 automated tests, plus the Next.js dashboard.

The result that matters most is what the platform says about itself: at the time this case was written, no combination had built up enough proof that it works. The product shows that on its public page instead of hiding it. There is no profit figure here because there is no proven profit, and the product's rule is to never publish a number it cannot back up.

The next step is leaving simulation. First, the platform starts operating real digital wallets under supervision: every trade is proposed by the system and only goes through after a person approves it. Later, with a track record of approvals and outcomes to back the decision, it operates on its own. The order is the same as everywhere else in the product: autonomy only where there is already proof.

tech sheet

stack
Rust · axum · PostgreSQL · Valkey Streams · Next.js · Docker
duration
in production since September 2026
role
Product, architecture and development
← all cases