Ticks
DadosSem AutenticaçãoTransmita ticks em tempo real para um ou mais símbolos. Sem alterações na nova API.
Sem alterações de rutura
A chamada
ticks funciona da mesma forma na API Legada e na Nova API, pelo que não precisa de alterar o seu código.Comparação rápida
Campos de pedido e resposta
Pedido
ticks(obrigatório): um símbolo que corresponda a^\w{2,30}$, ou um array de símbolos.subscribe(opcional): aceita apenas1. Envia uma atualização sempre que chega um novo tick.passthrough(opcional): dados devolvidos a si emecho_req.req_id(opcional): um ID que associa a resposta ao seu pedido.
Resposta
echo_reqemsg_type(tick): sempre devolvidos.tick: apenaspip_sizeé garantido.ask,bid,epoch,id,quoteesymbolsão opcionais.subscription.id: devolvido quando subscreve. Passe-o paraforgetpara parar o fluxo.req_id: devolvido quando envia um.
Estrutura de pedido
Legacy APIexemplo de pedido
{
"ticks": "frxEURUSD",
"subscribe": 1
}New APIexemplo de pedido
{
"ticks": "frxEURUSD",
"subscribe": 1
}Estrutura de resposta
Legacy APIexemplo de resposta
{
"echo_req": {
"ticks": "frxEURUSD",
"subscribe": 1
},
"msg_type": "tick",
"subscription": {
"id": "c84a793b-8a87-7999-ce10-9b22f7ceead3"
},
"tick": {
"ask": 1.08501,
"bid": 1.08499,
"epoch": 1760000000,
"id": "c84a793b-8a87-7999-ce10-9b22f7ceead3",
"pip_size": 5,
"quote": 1.085,
"symbol": "frxEURUSD"
}
}New APIexemplo de resposta
{
"echo_req": {
"ticks": "frxEURUSD",
"subscribe": 1
},
"msg_type": "tick",
"subscription": {
"id": "c84a793b-8a87-7999-ce10-9b22f7ceead3"
},
"tick": {
"ask": 1.08501,
"bid": 1.08499,
"epoch": 1760000000,
"id": "c84a793b-8a87-7999-ce10-9b22f7ceead3",
"pip_size": 5,
"quote": 1.085,
"symbol": "frxEURUSD"
}
}Exemplos de código
let streamId;
function subscribeTicks(symbol) {
ws.send(JSON.stringify({ ticks: symbol, subscribe: 1 }));
}
ws.onmessage = (event) => {
const response = JSON.parse(event.data);
if (response.error) {
console.error(response.error.message);
return;
}
if (response.msg_type !== 'tick' || !response.tick) return;
const { tick, subscription } = response;
if (subscription) streamId = subscription.id; // pass to forget to stop the stream
// pip_size is the only tick field the schema guarantees
if (tick.symbol !== undefined && tick.quote !== undefined) {
console.log(tick.symbol, tick.quote.toFixed(tick.pip_size));
}
};Alguma outra questão? Entrar em contacto