MT4 live prices

connecting…

Live board

Tick tail

symboltime (UTC)bidaskspread

Closed candles

newest first
symboltf / open (UTC)openhighlowclose

Use the data

Everything on this page comes from a PostgreSQL database fed by an MT4 terminal (broker: Trade Nation). New rows trigger PostgreSQL NOTIFY; this server LISTENs and forwards every message to WebSocket clients immediately. Prices are Bid/Ask, times are UTC. The market is closed at weekends (Friday 17:00 – Sunday 17:00 New York time); nothing streams then.

WebSocket

URL: ws://…/ws   (optional: ?topics=ticks:EURJPY,candles:*:M1)

TopicMeaning
ticksevery tick of every symbol (default)
ticks:EURJPYticks of one symbol
candlesevery closed candle, all symbols and timeframes (default)
candles:EURJPY / candles:EURJPY:M1 / candles:*:H1filter by symbol and/or timeframe (M1 M5 M15 M30 H1 H4 D1); * = any

Server → client (JSON text frames):

{"type":"hello","server_time":"…","topics":["ticks","candles"],"help":"…"}
{"type":"snapshot","ticks":[{"symbol":"EURJPY","ts":"…","bid":177.231,"ask":177.245,"spread_pips":1.4,"received_at":"…"}, …]}
{"type":"tick","symbol":"EURJPY","ts":"2026-10-12T21:05:13+00:00","bid":177.231,"ask":177.245,"spread_pips":1.4,"received_at":"…"}
{"type":"candle","symbol":"EURJPY","timeframe":"M1","ts":"2026-10-12T21:05:00+00:00","open":177.22,"high":177.25,"low":177.21,"close":177.23,"tick_volume":42,"source":"tradenation"}
{"type":"subscribed","topics":[…]}   {"type":"pong","server_time":"…"}   {"type":"error","error":"…"}

Client → server:

{"op":"subscribe","topics":["ticks:EURJPY","candles:*:M1"]}
{"op":"unsubscribe","topics":["candles"]}
{"op":"snapshot"}          // latest tick of every subscribed symbol
{"op":"ping"}

Notes: ts is the broker's tick time (second resolution), received_at when it reached the database (milliseconds). Candle ts is the candle's open time; a candle message is sent when the candle has closed. Clients that cannot keep up get messages dropped (no unbounded buffering); the server pings every 30 s.

Examples

Browser / JavaScript


    

Python (pip install websockets)


    

Node.js (npm install ws)


    

Command line (websocat)



    

REST (history, JSON)

EndpointDescription
/api/symbolssymbols with digits, point, pip
/api/latestlatest tick per symbol
/api/ticks?symbol=EURJPY&limit=500&since=2026-10-12T00:00:00Zticks, newest first (max 5000)
/api/candles?symbol=EURJPY&timeframe=H1&source=tradenation&limit=500&from=…&to=…candles, newest first (max 5000). source=histdata: H1 history Jan 2021 – Sep 2026
/api/statsserver statistics