Ticks
DonnéesPas d'authentificationDiffusez en temps réel les ticks pour un ou plusieurs symboles. Inchangé dans la nouvelle API.
Aucun changement incompatible
L'appel
ticks fonctionne de la même manière sur l'API Legacy et la nouvelle API, vous n'avez donc pas besoin de modifier votre code.Comparaison rapide
Champs de requête et de réponse
Requête
ticks(requis) : un symbole correspondant à^\w{2,30}$, ou un tableau de symboles.subscribe(optionnel) : accepte uniquement1. Envoie une mise à jour à chaque nouveau tick.passthrough(optionnel) : données renvoyées dansecho_req.req_id(optionnel) : un ID qui associe la réponse à votre requête.
Réponse
echo_reqetmsg_type(tick) : toujours retournés.tick: seulpip_sizeest garanti.ask,bid,epoch,id,quoteetsymbolsont optionnels.subscription.id: renvoyé lorsque vous vous abonnez. Transmettez-le àforgetpour arrêter le flux.req_id: retourné lorsque vous en envoyez un.
Structure de la demande
Legacy APIexemple de demande
{
"ticks": "frxEURUSD",
"subscribe": 1
}New APIexemple de demande
{
"ticks": "frxEURUSD",
"subscribe": 1
}Structure de réponse
Legacy APIexemple de réponse
{
"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 APIexemple de réponse
{
"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"
}
}Exemples de code
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));
}
};D'autres questions ? Nous contacter