Deriv API
Documentation

Ticks history

DonnéesPas d'authentification

Obtenez les données de tick historiques pour un symbole. Les champs requis de la réponse ont été modifiés, la validation assouplie et de nouvelles options de paramètres ajoutées.

Comparaison rapide

AspectLegacy APINew APIAction
Point de terminaisonticks_historyticks_historyAucun
Authentification requiseNonNonAucun
valeurs d'abonnement1 uniquement0 ou 1Facultatif : utilisez 0 pour une demande ponctuelle
Restriction de granularitéValeurs enum fixesN'importe quel entierPlus de flexibilité disponible

Modifications majeures

1. Champs requis dans l'objet history modifiés

Les tableaux prices et times à l'intérieur de l'objet history sont désormais des champs requis.

  • Ancienne version : prices et times étaient tous deux optionnels.
  • Nouveau : Les deux sont désormais requis lorsque l'objet history est présent.

Modification requise : Vous pouvez désormais accéder en toute sécurité à history.prices et history.times sans vérification null lorsque l'objet history existe.

2. Champs obligatoires dans le tableau de bougies modifiés

Toutes les propriétés de bougie (close, epoch, high, low, open) sont désormais requises.

  • Ancienne version : Toutes les propriétés de chandelier étaient facultatives.
  • Nouvelle version : Les cinq propriétés sont requises dans chaque objet bougie.

Modification requise : Vous pouvez maintenant déstructurer en toute sécurité toutes les propriétés de chandelier sans vérifications null.

3. echo_req n'est plus requis dans la réponse

Le champ echo_req n'est plus un champ requis dans la réponse.

  • Ancienne version : echo_req et msg_type étaient requis.
  • Nouvelle version : Seul msg_type est requis.

Modification requise : Ajoutez des vérifications d'existence avant d'accéder à response.echo_req.

4. Restriction d'énumération de granularité supprimée

Le paramètre granularity n'a plus un ensemble fixe de valeurs autorisées.

  • Ancienne version : Limité à [60, 120, 180, 300, 600, 900, 1800, 3600, 7200, 14400, 28800, 86400].
  • Nouvelle version : N'importe quelle valeur entière est acceptée.

Modification requise : Vous avez maintenant plus de flexibilité dans les valeurs de granularité.

5. Modèles de validation des entrées supprimés

La validation du modèle sur les paramètres ticks_history et end a été supprimée.

  • Legacy: ticks_history required pattern ^\w{{2,30}}$, end required pattern ^(latest|[0-9]{{1,10}})$.
  • Nouvelle version : Aucune validation de modèle sur ces paramètres.

6. subscribe et adjust_start_time acceptent maintenant 0

Les deux paramètres acceptent désormais 0 comme valeur valide en plus de 1.

  • Ancienne version : Les deux paramètres n'acceptaient que 1.
  • Nouvelle version : Les deux acceptent 0 ou 1.

Modification requise : Il s'agit d'une nouvelle fonctionnalité. Utilisez subscribe: 0 pour les requêtes ponctuelles sans abonnement.

Structure de la demande

Legacy APIexemple de demande
{
  "ticks_history": "frxEURUSD",
  "end": "latest",
  "start": 1234567890,
  "style": "ticks",
  "count": 100,
  "adjust_start_time": 1,  // Only 1 allowed
  "subscribe": 1           // Only 1 allowed
}
New APIexemple de demande
{
  "ticks_history": "frxEURUSD",
  "end": "latest",
  "start": 1234567890,
  "style": "ticks",
  "count": 100,
  "adjust_start_time": 1,
  "subscribe": 1
}

Structure de réponse

Legacy APIexemple de réponse
{
  "echo_req": {              // REQUIRED in legacy
    "ticks_history": "frxEURUSD",
    "end": "latest"
  },
  "history": {
    "prices": [1.0850, 1.0851],  // Optional
    "times": [1234567890, 1234567891]  // Optional
  },
  "pip_size": 5,
  "msg_type": "history"
}
New APIexemple de demande
{
  "echo_req": {              // Now OPTIONAL
    "ticks_history": "frxEURUSD",
    "end": "latest"
  },
  "history": {
    "prices": [1.0850, 1.0851],  // REQUIRED
    "times": [1234567890, 1234567891]  // REQUIRED
  },
  "pip_size": 5,
  "msg_type": "history"      // Only required field
}

Exemples de code

async function getTicksHistory(symbol) {
  const request = {
    ticks_history: symbol,
    end: "latest",
    start: Date.now() / 1000 - 86400,
    style: "ticks",
    count: 100,
    adjust_start_time: 1,  // Only 1 is valid
    subscribe: 1           // Only 1 is valid
  };

  ws.send(JSON.stringify(request));

  ws.onmessage = (event) => {
    const response = JSON.parse(event.data);

    // echo_req is guaranteed
    console.log('Request:', response.echo_req);

    if (response.msg_type === 'history') {
      // history.prices and history.times may be missing
      if (response.history) {
        if (response.history.prices) {
          console.log('Prices:', response.history.prices);
        }
        if (response.history.times) {
          console.log('Times:', response.history.times);
        }
      }
    }

    if (response.msg_type === 'candles') {
      response.candles?.forEach(candle => {
        // Each property may be missing
        const close = candle.close ?? null;
        const open = candle.open ?? null;
        const high = candle.high ?? null;
        const low = candle.low ?? null;
        console.log({ open, high, low, close });
      });
    }
  };
}
Click to open live chat support. Get instant help from our support team.