Ticks
DonnéesPas d'authentificationAbonnez-vous au flux de tick en temps réel pour les données de marché. Les champs de réponse requis ont changé et le paramètre subscribe a été étendu.
4 modifications majeures
tick est désormais toujours présent et pip_size n'est plus garanti.Comparaison rapide
Modifications majeures
1. Champs requis dans la réponse tick modifiés
Les champs requis à l'intérieur de l'objet tick ont changé :
- Ancienne version : Seul
pip_sizeétait requis. - Nouveau :
epoch,quoteetsymbolsont désormais requis. pip_sizeest désormais optionnel et peut ne pas toujours être présent.
Modification requise : Ajoutez des vérifications d'existence avant d'accéder à pip_size. Vous pouvez désormais compter sur la présence permanente de epoch, quote et symbol.
2. Objet Tick désormais requis dans la réponse
L'objet tick est désormais un champ obligatoire dans la réponse.
- Ancienne version : Seuls
echo_reqetmsg_typeétaient requis au niveau supérieur. - Nouveau :
ticketmsg_typesont requis ;echo_reqest désormais optionnel.
Modification requise : Vous pouvez désormais accéder à response.tick en toute sécurité, sans en vérifier l’existence. Mettez à jour tout code qui suppose que echo_req est toujours présent.
3. Le paramètre Subscribe accepte maintenant 0
Le paramètre subscribe accepte désormais à la fois 0 et 1.
- Ancienne version : Seul
1était valide. - Nouveau :
0(tick unique, pas d'abonnement) ou1(flux continu).
Modification requise : Il s'agit d'une nouvelle fonctionnalité. Utilisez subscribe: 0 lorsque vous avez seulement besoin d'un instantané de tick unique sans mises à jour continues.
4. Modèle de validation des entrées supprimé
La validation du modèle sur le paramètre ticks a été supprimée.
- Legacy: Pattern
^\w{2,30}$was enforced. - Nouveau : Aucune validation de modèle sur les noms de symboles.
Modification requise : Ce changement assouplit la validation des entrées. Les noms de symboles valides existants continueront de fonctionner. Si vous comptiez sur l'API pour valider le format des symboles, envisagez d'ajouter une validation côté client.
Structure de la demande
{
"ticks": "frxEURUSD",
"subscribe": 1
}{
"ticks": "frxEURUSD",
"subscribe": 1
}Structure de réponse
{
"echo_req": { // Required in legacy
"ticks": "frxEURUSD",
"subscribe": 1
},
"tick": { // Optional in legacy
"ask": 1.08501,
"bid": 1.08499,
"epoch": 1234567890, // Optional
"id": "tick-id-123",
"pip_size": 5, // REQUIRED in legacy
"quote": 1.08500, // Optional
"symbol": "frxEURUSD" // Optional
},
"msg_type": "tick",
"subscription": { "id": "sub-123" }
}{
"echo_req": { // Now optional
"ticks": "frxEURUSD",
"subscribe": 1
},
"tick": { // REQUIRED in new API
"ask": 1.08501,
"bid": 1.08499,
"epoch": 1234567890, // REQUIRED
"id": "tick-id-123",
"pip_size": 5, // Now optional
"quote": 1.08500, // REQUIRED
"symbol": "frxEURUSD" // REQUIRED
},
"msg_type": "tick",
"subscription": { "id": "sub-123" }
}Exemples de code
async function subscribeTicks(symbol) {
const request = {
ticks: symbol,
subscribe: 1 // Only 1 is valid
};
ws.send(JSON.stringify(request));
ws.onmessage = (event) => {
const response = JSON.parse(event.data);
if (response.msg_type === 'tick') {
// tick object may not exist
if (response.tick) {
// pip_size is guaranteed
const pipSize = response.tick.pip_size;
// These fields are optional
const quote = response.tick.quote;
const epoch = response.tick.epoch;
const symbol = response.tick.symbol;
console.log('Pip size:', pipSize);
if (quote) console.log('Quote:', quote);
}
// echo_req is always available
console.log('Request:', response.echo_req);
}
};
}D'autres questions ? Nous contacter