LogoMalgotDocsPricing
Sign In

8 ยท Live

Beta
Deploy to real capital โ€” and treat monitoring as part of the system, not an afterthought.

Going live means the same system you validated now trades real money. Nothing about the strategy should change here; what changes is that mistakes cost, and that operations become part of the edge. A profitable system that's mismanaged in production loses money.

Earn the right to be here

Live is the last stage for a reason. Before deploying, you should have:

  • A backtest that survives realistic costs.
  • Parameters on a plateau, not a spike (Sensitivity).
  • Out-of-sample and stress results that hold up (Robustness).
  • A clean paper-trading run with no plumbing surprises (Paper).
Start small

Deploy with a fraction of your intended capital first. The first live weeks are a final integration test with real money โ€” size up only once behaviour matches expectations.

Operations is the system now

1
Monitor continuously

Watch the heartbeat, live logs, cash/position reconciliation and the equity curve. Silence is not the same as health โ€” an absent heartbeat is an incident.

2
Reconcile against broker truth

The broker โ€” not your local state โ€” is the source of truth for cash, positions and fills. Live state must periodically snap to it and flag any drift.

3
Have a kill switch

Know exactly how to flatten positions and stop the system. Decide the conditions that trigger it before you need it.

4
Watch for live-vs-backtest divergence

Track realised performance against expectation. Persistent divergence means the edge has decayed or something is broken โ€” either way, act.

A critical safety rule

Exactly one live process โ€” never scale it

The component that trades live must run as a single instance. Two copies would each place every order, doubling your real-world exposure. Simulation workers scale freely; the live trader must not.

In Malgot

Beta
The live daemon is built and is the process that trades live. Its design is deliberately resilient:

  • It reads a desired state from Postgres (live_system) โ€” the backend writes what should be running; the daemon converges to it.
  • Redis engine:commands is only a nudge to look now; the daemon also reconciles on boot and every 30 seconds, so it survives a backend outage or a lost command.
  • It streams heartbeat and engine logs over Redis, surfaced in the UI (and admin engine log stream).
  • It is a single instance by design โ€” the compose file must never scale it.
Maturing

Broker execution adapters (real order placement, fill reconciliation, paper mode) are still hardening โ€” the reconciler abstraction is in place, with the simulation path complete and live/paper adapters maturing. Treat live trading as beta: start tiny, watch it closely, and verify every fill against your broker directly.


That's the red thread end to end. Robustness isn't a single feature โ€” it's the discipline of never letting a number impress you until it has survived every stage before this one.