Manual
Everything the service does, in the order you meet it.
Getting started
- Activate. Open the app and paste the licence key from your email. The key lives in that browser or app; the same key works on three devices.
- Connect Telegram. Settings → Telegram. This takes a minute and is described below. Without it alerts still appear in the app, but only while it is open.
- Create an alert. New → pick an exchange, type a symbol, build the condition, press Create.
Alerts are evaluated on the server every ten seconds, whether or not anything of yours is open. Closing the browser does not stop them.
Exchanges
Eight exchanges, public market data only. The service never asks for an exchange API key and cannot place orders — it reads prices and nothing else.
| Exchange | Markets | Symbol looks like | Timeframes |
|---|---|---|---|
| Bybit | spot, perpetuals, inverse | BTCUSDT | 1m…1M, 13 of them |
| Binance | spot, perpetuals | BTCUSDT | 1m…1M, 14 |
| OKX | spot, perpetuals | BTC-USDT | 1m…1M, 13 |
| Bitget | spot, perpetuals | BTCUSDT | 1m…1M, 12 |
| Gate.io | spot, perpetuals | BTC_USDT | 1m…1M, 10 |
| MEXC | spot | BTCUSDT | 1m…1M, 10 |
| Kraken | spot | XBTUSD | 1m…1w, 8 |
| Coinbase | spot | BTC-USD | 1m, 5m, 15m, 1h, 6h, 1d |
The timeframe list changes with the exchange. Coinbase has no 4h and no 30m candle; Kraken has no monthly one. The dropdown refills when you switch exchange, and a combination an exchange cannot serve is refused when you save rather than failing quietly afterwards.
Kraken calls bitcoin XBT and dogecoin XDG. Type BTC anyway —
it resolves. The pair is still listed under its own name.
Alerts on different exchanges are separate cards even when the symbol reads
the same, because BTCUSDT on two venues is two prices.
Symbols and tokens
The symbol field takes two kinds of input, and the difference matters.
- A pair —
BTCUSDT - Watches exactly that market.
- A token —
VIRTUAL - Watches every pair of that token on the exchange. Whichever satisfies the condition first is the one reported, and the notification names it. Dollar-quoted pairs are checked first — USDT, then USDC, then USD — so a threshold written as a plain number is judged against a dollar price rather than against a BTC-quoted one.
A symbol that does not exist is rejected as you save. This is deliberate: a typo used to become an alert that sat in the list looking healthy and could never fire.
Building a condition
Every rule has the same shape:
left operator right
Each side is one of three things:
- A price field
- Last price (live), Close, Open, High, Low, Volume. Last price is not a candle field — it is the last trade, read every scan. A rule using it ignores the bar-close setting, because “price above X” almost always means now, not “when this 4-hour candle finally closes”.
- An indicator line
- Any line of any of the 24 indicators, with your own parameters.
- A number
- A fixed threshold.
Because both sides are the same kind of thing, “RSI below 30”, “MACD crosses its signal” and “price leaves the Bollinger band” are one mechanism rather than three special cases.
Operators
| Operator | Fires when |
|---|---|
| greater than / less than | the left side is above / below the right, on every bar it holds |
| crossing | the two sides swap places, either direction |
| crossing up / crossing down | they swap in that one direction |
| entering channel | the left side moves from outside the two bounds to inside |
| exiting channel | from inside to outside |
| inside channel / outside channel | it is currently within / beyond the bounds |
| moving up / moving down | it changed by at least N over the last few bars |
| moving up % / moving down % | the same, expressed as a percentage |
The four channel operators take two right-hand operands — the near and far edge. The form shows the second box when you pick one.
Crossing operators are edge-triggered. They compare the current bar with the previous one and fire on the transition, not for as long as the condition stays true. “Greater than” is the opposite: it holds every bar the price stays above, which is why the firing frequency below matters so much for it.
Indicators
All 24 are computed on this server from the exchange's own candles. Parameters are yours to set; the defaults are the conventional ones.
| Indicator | Lines you can pick | Defaults |
|---|---|---|
| SMA / EMA / WMA | the line itself | length 20 |
| VWAP | vwap | — |
| RSI | rsi | length 14 |
| MACD | macd, signal, hist | 12 / 26 / 9 |
| Bollinger | upper, middle, lower, %B, width | length 20, mult 2.0 |
| ATR | atr | length 14 |
| Stochastic | k, d | 14 / 3 / 3 |
| Stochastic RSI | k, d | 14 / 3 / 3 |
| ADX | adx, +DI, −DI | length 14 |
| CCI | cci | length 20 |
| MFI | mfi | length 14 |
| OBV | obv | — |
| Williams %R | willr | length 14 |
| ROC | roc | length 9 |
| Momentum | mom | length 10 |
| Keltner | upper, middle, lower | length 20, mult 2.0, ATR 10 |
| Donchian | upper, middle, lower | length 20 |
| SuperTrend | supertrend, direction | length 10, mult 3.0 |
| Parabolic SAR | psar | step 0.02, max 0.2 |
| Ichimoku | tenkan, kijun, senkou A, senkou B | 9 / 26 / 52 |
| Volume | volume | — |
| Volume SMA | volume_sma, ratio | length 20 |
An indicator needs history before it means anything: RSI(14) has no value on the first fourteen candles. Enough candles are always fetched, so this only affects very new listings.
When it fires
Whether the condition is true and whether you should be told again are two different questions. Mixing them is what produces alert storms, so they are set separately.
- Frequency
-
once — fires and switches itself off.
once per bar — at most one alert per candle, intrabar allowed.
once per bar close — evaluates closed candles only, at most one each. The default, and the quietest.
once per minute — at most one a minute for as long as it holds.
every time — every scan the condition is true, roughly every ten seconds. Use with cooldown. - Cooldown
- Minutes of silence after a firing, on top of the frequency. Fractions are
allowed:
0.5is thirty seconds. - On bar close only
- Ticked, the rule reads the last closed candle — no half-formed values. Unticked, it reads the candle still forming. A rule using Last price (live) ignores this setting entirely.
- Priority
- low, normal, high. High plays a more insistent sound and shows more prominently on the devices that support it.
Making your own Telegram bot
Alerts are sent through a bot you own. Nobody else uses it, its token is yours, and you can revoke it at any moment without asking anyone. It takes about a minute.
- Open @BotFather in Telegram. It is the official bot for making bots; check for the blue verified tick.
- Send
/newbot. - Give it a display name when asked — anything you like, spaces
allowed. For example
My Crypto Alerts. This is what you will see at the top of the chat. - Give it a username. This one has rules: it must be unique across all
of Telegram and must end in
bot. For examplesergey_alerts_bot. If it is taken, BotFather asks for another. - Copy the token. BotFather replies with a line like
123456789:AAE-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx. That is the token — the whole line, including the digits before the colon. - Paste it into Settings → Telegram → Bot token and press Save token.
- Message your own bot. Open the chat with it and send anything —
/startor a full stop will do. Telegram does not let a bot write to you until you have written to it first. - Press “Find chat” in Settings. It reads the message you just sent and fills in your chat id.
- Press “Send test”. A message should arrive within a second.
If the test does not arrive
- “no chats found”
- You have not written to the bot yet, or you wrote to a different bot. Send your bot a message and press Find chat again.
- “Unauthorized”
- The token is wrong or has been revoked. Ask BotFather for
/mybots→ your bot → API token, and paste it again. - Nothing arrives, no error
- Check you are looking at the right chat, and that you have not muted or blocked the bot.
The token is stored on the server and never sent back to any client — not to the app, not to this page, not in any API response. The field shows whether one is saved, never the value. Losing it is not a problem: ask BotFather to revoke and reissue, then paste the new one.
Other ways alerts reach you
Four channels, ticked per alert, independent of each other.
- Telegram
- Your own bot, as above. The only channel that works with everything of yours closed and nothing installed.
- Popup and sound
- In the browser, a panel inside the page while it is open. In the macOS app, a window that sits above fullscreen applications — it is meant to be impossible to miss.
- Browser push
- Notifications while the tab is closed. Subscribe once per browser in Settings. This is for browsers only: the macOS and Android apps carry their own connection and do not need it, so they do not offer it.
- The apps
- The Android app keeps its own connection and posts system notifications that appear as banners. The macOS app does the same and raises its overlay window. Both keep working with their window closed.
Backtest
The Backtest button on the builder runs your rule across recent history and reports how often it would have fired, and when. It is there because how noisy a rule will be is nearly impossible to guess from its settings.
A rule that fired forty times in three hundred bars will do the same to you. Either raise the threshold, or switch to once per bar close and add a cooldown.
A rule using Last price (live) is backtested against each bar's close, since tick history is not available from a candle endpoint. Treat that result as indicative rather than exact.
Limits
| Trial | Paid | |
|---|---|---|
| Symbols | 10 | 50 |
| Triggers | 40 | 200 |
| Devices on one key | 1 | 3 |
| Triggers on one symbol | 20 | |
A “trigger” is one condition. Several triggers on the same symbol share one card in the list.
Activating a fourth device frees the one you have used least recently rather than refusing you — you are never locked out of your own account. Signing out in Settings releases a slot deliberately.
When something is wrong
- An alert shows error
- Hover it for the reason. Usually the symbol no longer trades on that exchange, or was renamed. Edit the alert and fix the symbol.
- It never fires and shows no error
- Backtest it. If it never fired historically either, the condition is stricter than you meant.
- It fires far too often
- You likely used greater than with every time. That combination is true on every scan for as long as the price stays above. Use crossing up, or switch to once per bar close.
- Alerts stopped altogether
- Check the licence in Settings — an expired key stops evaluation. The engine indicator in the header shows whether scanning is running.
- Something else
- support@volametric.com. Include the symbol and exchange; it saves a round trip.