Appearance
Running & Persistence
The cycle lifecycle
- Calculate builds the grid from your settings (a preview — nothing is sent).
- Save persists the grid and settings for the pair.
- Start begins the live cycle: the bot places the ladder, keeps Active orders resting, and polls state at the Request frequency.
- As price falls, rungs fill and the averaged close is recomputed from the real fills. With Hybrid on, the deepest rung scalps in between.
- When the whole-position close fills, the cycle ends in profit.
- If Restart is on, the next cycle begins automatically; otherwise the bot stops.
Persistence — one file per pair
Each pair's state lives in its own JSON file under data/ (e.g. data/BNBUSDT-binance.json): the open cycle, its orders, fills, banked profit, and settings. This is the bot's source of truth — it survives restarts and image updates, so a running cycle is picked up exactly where it left off.
Don't hand-edit data/*.json
These files hold live money state — order IDs, filled quantities, banked profit. Editing them by hand can desync the bot from the exchange. Use the dashboard controls (Managing a pair) instead.
Because this state is money-critical, back it up — see Backup & Updates.
Stream liveness
The bot watches the exchange price stream to drive the cycle. Liveness is measured by the stream's pings, not by trades — a quiet pair with no trades is still live as long as the connection is pinging. So silence on an inactive pair is normal, not a stall; the bot only treats the stream as dead when the pings stop.
Restart behaviour
Restart (a live switch) decides what happens at the end of a series:
- On → a fresh cycle is armed and started automatically once the current one closes.
- Off → the bot stops cleanly after the current cycle completes.
It can be toggled while the bot runs; the change applies to the next series boundary.