Tick volume in forex
Spot currencies and metals trade over the counter, with no central exchange to report a market-wide traded amount. What a forex candle carries as its volume is a tick volume: the number of times the price was updated during the bar.
- What is counted
- Every update of the price the feed receives in the bar's time counts once. A bar with a high tick volume saw the price updated many times. An update is a new quote, not a trade: how much changed hands at that price is not in the feed.
- Why it is still useful
- Tick volume rises and falls with activity: it is high when a market opens or news lands, and low in the quiet hours. That is why charting tools use it as a measure of activity where no traded volume exists.
- What it is not
- It is not a number of contracts or a traded amount, and it cannot be added up across sources: two providers can count different tick volumes for the same pair and the same minute, because each counts the updates its own feed receives.
- How the API counts it
- The volume of a candle, read by REST from GET /v1/candles or received on the stream, is the number of price updates received in that bar, on every timeframe from one second to one day. A one-second bar exists only for a second in which an update arrived.
- Where the count changes
- Bars from the other price feed, on any timeframe until 05.06.2026 at the latest, carry that feed's tick volume, counted differently. /symbols.json gives each symbol's dates, so a series can be cut where the count changes.
- Using it in a chart or a model
- Compare tick volume within one symbol and one source, never across them. As a relative measure of activity, by hour or by day, it holds; as an absolute amount, it means nothing.
Facts as of 06.10.2026.
First call
# 1. your server exchanges the key for a short-lived token
export ADONA_API_KEY="${ADONA_API_KEY:-adk_live_...}"
RESP=$(curl -s https://api.adona-robot.com/v1/tokens \
-H 'Content-Type: application/json' \
-H "Authorization: Bearer $ADONA_API_KEY" \
-d '{"end_user_id":"u-42"}')
TOKEN=$(echo "$RESP" | grep -o '"access_token":"[^"]*' | cut -d'"' -f4)
[ -n "$TOKEN" ] || echo "refused: $RESP"
# 2. the token reads candles
curl -s 'https://api.adona-robot.com/v1/candles?symbol=EURUSD&timeframe=S1&limit=1000' \
-H "Authorization: Bearer $TOKEN"The quickstart: from the key to the live stream, step by step