Deriv API
Documentation

Mise à jour du contrat

TradingAuthentification requise

Mettez à jour les paramètres du contrat comme le take profit et le stop loss. Le paramètre loginid a été supprimé, l'objet de réponse est maintenant requis et un nouveau champ display_order_amount a été ajouté.

Comparaison rapide

AspectLegacy APINew APIAction
Point de terminaisoncontract_updatecontract_updateAucun
Authentification requiseOuiOuiAucun
Paramètre loginidFacultatifSuppriméRetirer des requêtes
contract_update dans la réponseFacultatifObligatoireSimplifier la gestion des erreurs

Modifications majeures

1. Paramètre loginid supprimé

Le paramètre loginid a été supprimé dans New. Ce paramètre était auparavant utilisé pour spécifier quel compte mettre à jour les contrats lorsque plusieurs tokens étaient fournis lors de l'autorisation.

Modification requise : Supprimez le champ loginid de vos demandes contract_update. La sélection de compte est désormais gérée via le token d'autorisation.

2. Objet contract_update désormais requis dans la réponse

L'objet contract_update est maintenant un champ requis au niveau racine de la réponse.

Modification requise : Vous pouvez désormais compter sur l'objet contract_update étant toujours présent dans les réponses réussies. Supprimez toute vérification conditionnelle de son existence.

3. Nouveau champ display_order_amount ajouté

Un nouveau champ chaîne display_order_amount a été ajouté aux objets stop_loss et take_profit dans la réponse.

Modification requise : Vous pouvez éventuellement utiliser ce nouveau champ pour afficher les montants de commande dans l'interface utilisateur au lieu de formater le nombre order_amount vous-même.

Structure de la demande

Legacy APIexemple de demande
{
  "contract_update": 1,
  "contract_id": 123456789,
  "limit_order": {
    "stop_loss": 15.00,
    "take_profit": 25.00
  },
  "loginid": "CR123456"
}
New APIexemple de demande
{
  "contract_update": 1,
  "contract_id": 123456789,
  "limit_order": {
    "stop_loss": 15.00,
    "take_profit": 25.00
  }
}

Structure de réponse

Legacy APIexemple de réponse
{
  "contract_update": {
    "stop_loss": {
      "display_name": "Stop loss",
      "order_amount": 15.00,
      "order_date": 1234567890,
      "value": "1234.56"
    },
    "take_profit": {
      "display_name": "Take profit",
      "order_amount": 25.00,
      "order_date": 1234567890,
      "value": "1256.78"
    }
  },
  "echo_req": { "contract_update": 1, "contract_id": 123456789 },
  "msg_type": "contract_update"
}
New APIexemple de réponse
{
  "contract_update": {
    "stop_loss": {
      "display_name": "Stop loss",
      "display_order_amount": "15.00 USD",
      "order_amount": 15.00,
      "order_date": 1234567890,
      "value": "1234.56"
    },
    "take_profit": {
      "display_name": "Take profit",
      "display_order_amount": "25.00 USD",
      "order_amount": 25.00,
      "order_date": 1234567890,
      "value": "1256.78"
    }
  },
  "echo_req": { "contract_update": 1, "contract_id": 123456789 },
  "msg_type": "contract_update"
}

Exemples de code

async function updateContract(contractId, loginId = null) {
  const request = {
    contract_update: 1,
    contract_id: contractId,
    limit_order: {
      stop_loss: 15.00,
      take_profit: 25.00
    }
  };

  // Add loginid if provided (for multi-account)
  if (loginId) {
    request.loginid = loginId;
  }

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

  ws.onmessage = (event) => {
    const response = JSON.parse(event.data);
    if (response.msg_type === "contract_update") {
      // contract_update may be undefined
      if (response.contract_update) {
        const sl = response.contract_update.stop_loss;
        const tp = response.contract_update.take_profit;
        // Format order_amount manually
        console.log("Stop Loss:", sl?.order_amount);
      }
    }
  };
}
Click to open live chat support. Get instant help from our support team.