Deriv API
Documentation

Ticks

DonnéesPas d'authentification

Abonnez-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.

Comparaison rapide

AspectLegacy APINew APIAction
Point de terminaisonticksticksAucun
Authentification requiseNonNonAucun
Valeurs d'abonnement1 uniquement0 ou 1Facultatif : utilisez 0 pour un tick unique
Objet tickFacultatifObligatoireMettre à jour la gestion de la réponse

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, quote et symbol sont désormais requis.
  • pip_size est 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_req et msg_type étaient requis au niveau supérieur.
  • Nouveau : tick et msg_type sont requis ; echo_req est 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) ou 1 (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

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": {            // 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" }
}
New APIexemple de réponse
{
  "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);
    }
  };
}
Click to open live chat support. Get instant help from our support team.