How DoneRoad gets its prices

DoneRoad reads every price from a public source — Binance, MEXC and CoinGecko for crypto, currency-api for forex, gold-api.com for metals, Yahoo Finance (Entrade for Vietnamese listings) for stocks, oil and index futures — polls every asset class once a minute, and checks your rule against each new reading. Below: where every number comes from, how often it refreshes, how a rule is evaluated, and what this service cannot promise you.

Where each price comes from

DoneRoad does not produce its own market data. Every price is read from a public upstream source and stored unchanged. These are the sources, by asset class:

Asset class Source Notes
Crypto CoinGecko, Binance, MEXC Binance and MEXC serve the pairs they list; CoinGecko covers the rest.
Crypto P2P Binance P2P Advertised rates from the P2P order book, so they differ from the spot price by design. Today's rates.
Forex currency-api Quoted against the US dollar; every other pair is derived from two dollar rates.
Precious metals gold-api.com Spot prices in USD.
Oil Yahoo Finance, OilPrice.com WTI and Brent are the front-month futures (CL=F, BZ=F) from Yahoo Finance. Dubai comes from OilPrice.com as an end-of-day price.
Stocks Yahoo Finance, Entrade US, European and Asian listings from Yahoo Finance; Vietnamese (HOSE/HNX) listings from Entrade.
Index futures Yahoo Finance CME E-mini and Micro E-mini Nasdaq-100 and S&P 500 (NQ, MNQ, ES, MES), front-month contracts (NQ=F, ES=F, ...). The price can step on the quarterly roll to the next contract.

How often it refreshes, and how far back it remembers

Every asset class is polled every minute, on its own scheduled job. Each reading is written to a one-minute price history, and that history is what a percentage-change rule is measured against — so "up 5% in the last 15 minutes" compares the current reading with the reading recorded fifteen minutes earlier, not with an average.

One-minute history is kept for 40 days and then deleted. That is the longest look-back window any rule can use.

A minute is the floor on how quickly an alert can fire. If a price spikes and returns within the same minute, no reading captures it and no alert fires. This is a deliberate trade: minute resolution across every asset is what keeps the service free.

How a rule is evaluated

A rule is one or more conditions. Each condition compares a value — a price, a percentage change over a window, or an indicator such as RSI or a moving average — against a threshold you set, using a comparison operator. Price and the candle moving averages can also be compared with each other: price above the SMA 200 (1D), or the SMA 50 (1D) above the SMA 200 (1D).

"Crosses above" and "crosses below" fire once, on the check where the value moves from one side of the threshold to the other, instead of for as long as it stays there. A cross rule just created or edited first records which side the value is on, so it cannot fire on a cross that happened before it existed.

Conditions can be combined with AND (every condition must hold at the same moment) or OR (any one of them is enough). A rule is checked on every price reading, so at most once a minute per asset.

Comparisons are strictly greater-than or less-than, with or without "or equal". There is deliberately no "equals" operator: a price sampled once a minute almost never lands exactly on a round number, so a rule written that way would look correct and never fire. Measured against real BTC data, a price crossing a given level jumps over a ±0.05% band 13% of the time. The operator guide walks through a worked example.

Which values a rule can watch

All of these are computed from the price history described above. Nothing is fetched from a separate analytics provider:

  • Price, either as an absolute level or as a percentage change over a window you choose.
  • Candle indicators on 1-hour and daily candles — RSI 14, SMA 20, 50 and 200, EMA 9, 12, 20, 50 and 200. A candle's close is the last price of that UTC hour or day, and the candle still forming uses the current price, the way a live chart does. RSI uses Wilder's smoothing, the same formula as TradingView's default RSI. For markets that close (stocks, forex, metals, oil, futures), the hours and days the market is shut are left out rather than counted as flat candles.
  • Averages of one-minute prices — SMA 20, 50, 200 and EMA 9, 12, 20, 50, 200 marked "(1m)". These are averages over the last N minutes, not the daily averages most charts mean by "SMA 200".
  • Volume, where the upstream source reports it. Not every asset class does, and a rule on volume is only as good as that source.

A long average needs a long history. An SMA 200 (1D) needs 200 daily closes, and an EMA 200 needs 600 before its value settles. RSI needs 100. For crypto and for stocks, futures and oil priced from Yahoo, past daily closes are loaded from the same source as the live price. Other assets build their history as they go. Until the history is deep enough the condition simply does not hold, rather than firing on a partial average — an alert on an average computed from 12 readings instead of 200 would be worse than no alert.

How an alert reaches you

Four channels: Telegram, Discord, Email and browser push notifications. You connect the ones you want and pick a default; each alert is sent once, on the default.

If the default cannot deliver (its service rejects the message or is unreachable), the alert goes out on your next connected channel instead. One exception: if you block the DoneRoad bot on Telegram, Telegram is switched off and alerts pause until you reconnect, rather than moving somewhere you may not want them.

Delivery depends on the channel's own service; email lands or bounces on the receiving provider's terms. DoneRoad can tell you it sent a notification. It cannot guarantee your phone was on, your inbox accepted it, or you read it in time to act.

What this service does not promise

  • Prices come from third-party sources and are passed on as received. If an upstream source is wrong, delayed, or unreachable, DoneRoad is wrong, delayed, or silent with it. Nothing here is an exchange feed and nothing here is guaranteed to match the price you can actually trade at.
  • Minute resolution, not tick resolution. Movement inside a minute is invisible to the system.
  • Alerts are notifications, not orders. DoneRoad never places, routes or executes a trade, and never holds funds.
  • This is not financial advice. An alert reports that a number you chose crossed a threshold you set. It is not a recommendation to buy, sell or hold anything, and no part of this service assesses whether a trade is suitable for you. See the full disclaimer.

Corrections

If a price on this site looks wrong, tell us and we will say what the upstream source returned and when. Write to [email protected] or use the contact page.

This page describes the system as it runs today. It is updated when the sources, the cadence or the retention window change.