TickWise Market Data
Your broker's minute bars, in a database you control.
Connects to your MetaTrader 5 Manager account, backfills as far as the server will serve, and keeps it current. M1 OHLC with tick volume and spread, written to your own Postgres.
How far back you can go is your broker's decision, per symbol. Past the cliff the access server does not fail — it quietly returns hourly bars stamped five past the hour. TickWise detects that and refuses them, recording where the boundary actually fell, rather than writing hourly data into a table labelled M1.
How it works
Four steps, in this order.
Each one depends on the last: you cannot backfill a symbol you have not discovered, on an account you have not connected.
STEP 1
Connect an account
Add a label, server, login and manager password. It connects immediately and tells you if the account lacks chart or symbol rights.
STEP 2
Choose symbols
Discover everything the broker lists, then pick what to collect — or switch on collect-everything and let each pass re-sync the list.
STEP 3
Backfill history
Runs newest month backwards in seven-day chunks. Resumes month by month after an interruption, and one bad month does not stop the run.
STEP 4
Stay current
Every five minutes each symbol walks forward from its newest stored bar, overlapping three minutes so a still-forming bar gets revised.
- Stored
- M1 bars: open, high, low, close, tick volume, real volume and spread, keyed by account, symbol and bar-open time in UTC
- Timeframes
- M5, M15, H1, H4 and D1 are aggregated from M1 when you ask for them, so there is one source of truth on disk
- Accounts
- Several MT5 accounts at once. Two brokers quoting the same symbol stay separate series, and a compare view puts them on one axis
- Live quote
- The freshest bid, ask and last per symbol, cached in Redis. Entries expire, so a stopped collector reads as no quote rather than a stale price
- Storage
- Your Postgres. Writes are idempotent upserts, so re-collecting a window revises bars instead of duplicating them
- Credentials
- Manager passwords are encrypted with
Fernetbefore they reach the database, and the key lives only in the environment — a database dump alone does not disclose them - Interfaces
- A web console for operators, and a read API for other services
Limits
What it will not do.
These are the things worth knowing before you buy, not after. Every one is a property of MetaTrader or of your broker, and we would rather you test them than discover them.
History is bounded by your broker
M1 retention is set per symbol by the access server. On one measured live account EURUSD ran out around 150 days while BTCUSD still had a full year. No software can manufacture history the server no longer serves.
No tick history
Ticks are fetched live on request and the newest one is cached, but they are never stored. If you need a persisted tick archive, this is not that product.
No market depth
Depth is reported as unavailable. On the account we measured, every one of the 479 symbols had book depth switched off at the server.
Broker symbol names, verbatim
Nothing is renamed or mapped. On one broker GOLD returns data and XAUUSD returns nothing, and two accounts may not offer the same universe.
One backfill at a time
Backfill runs singly and its progress log is held in memory, so a restart mid-run loses the log. The per-month record on disk survives, and a re-run resumes from it.
Collection is sequential
Each pass walks symbols one at a time. Collect enough of them and a pass takes longer than its interval; the console says so plainly and tells you to widen the interval or collect fewer.