The chart feed
aton-chart-feed-v1: the candles and overlays a chart draws.
Sign in to see your own test client ID in the samples.
A feed is one JSON object. Send it whole each time; the chart keeps the reader's zoom and pan when the same bot and timeframe come again, and starts fresh on a new timeframe.
json
{
"schema": "aton-chart-feed-v1",
"bot": { "id": "b-12", "name": "Steady grid", "kind": "grid", "pair": "BTCUSDT" },
"timeframes": ["1h", "4h"],
"frame": "1h",
"candles": [{ "t": 1792310400000, "o": 67010.5, "h": 67220, "l": 66950.1, "c": 67180.2, "v": 412.7 }],
"overlays": {
"ladders": [{ "price": 66500, "kind": "grid_buy", "size": 0.01, "label": "Buy rung 1" }],
"takeProfit": { "price": 68400, "mode": "dynamic", "label": "Take profit", "history": [{ "t": 1792300000000, "price": 68900 }] },
"stopLoss": { "price": 65800, "mode": "fixed", "label": "Stop loss", "history": [] },
"entry": { "price": 66900, "size": 0.01, "side": "long" },
"indicators": [{ "id": "ema20", "name": "EMA", "params": { "length": 20 }, "pane": "price", "points": [{ "t": 1792310400000, "v": 67002.4 }] }],
"fills": [{ "t": 1792310400000, "price": 66950.1, "side": "buy", "size": 0.01, "why": "Grid rung reached" }]
},
"last": 67180.2,
"at": 1792310460000
}Fields
- schema: always
aton-chart-feed-v1. A change will be a new version, never an edit of this one. - timeframes: only the ones your strategy uses, the one it decides on first. The chart offers these and no others.
- candles: open time in milliseconds since the epoch (UTC), open, high, low, close and base volume. Up to 20,000 are kept, newest first.
- overlays.ladders: resting orders and grid rungs, each a line at its price.
- overlays.takeProfit, overlays.stopLoss: the price now, whether it moves (
dynamic) or stays (fixed), and where it was (history, oldest first). - overlays.entry: the open position's average entry, or null.
- overlays.indicators: series you compute yourself, drawn over the price or in a pane under it.
- overlays.fills: each fill with its side, size and the reason, in your reader's language.
Prices are plain numbers in the quote currency. Names, labels and reasons are shown as text only, never as markup, and a number that is not finite is dropped.
Ask Atlas
AI assistantAsk anything about Sign in with Atheron, the API or the portal. You get an answer from our docs, with links to the pages it used.