Documentation

Mise à jour du contrat

TradingAuthentification requise

Mettez à jour le Take profit et le Stop Loss d’un contrat. Le paramètre loginid est supprimé ; la réponse reste inchangée.

Comparaison rapide

AspectLegacy APINew APIAction
Point de terminaisoncontract_updatecontract_updateAucun
Authentification requiseOuiOuiAucun
loginid paramètreFacultatifSuppriméRetirer des requêtes

Modifications majeures

1. loginid paramètre supprimé

Dans la Legacy API, loginid sélectionnait le compte dont le contrat devait être mis à jour lorsque vous aviez autorisé plusieurs comptes. La New API ne l’accepte pas.

Modification requise : Supprimez loginid de vos requêtes contract_update . Votre token sélectionne le compte.

Structure de la demande

Legacy APIexemple de demande
{
  "contract_update": 1,
  "contract_id": 123456789,
  "limit_order": {
    "stop_loss": 15,
    "take_profit": 25
  },
  "loginid": "CR123456",
  "req_id": 1
}
New APIexemple de demande
{
  "contract_update": 1,
  "contract_id": 123456789,
  "limit_order": {
    "stop_loss": 15,
    "take_profit": 25
  },
  "req_id": 1
}

Structure de réponse

Legacy APIexemple de réponse
{
  "contract_update": {
    "stop_loss": {
      "display_name": "Stop loss",
      "order_amount": -15,
      "order_date": 1760000000,
      "value": "1234.56"
    },
    "take_profit": {
      "display_name": "Take profit",
      "order_amount": 25,
      "order_date": 1760000000,
      "value": "1256.78"
    }
  },
  "echo_req": {
    "contract_update": 1,
    "contract_id": 123456789,
    "limit_order": {
      "stop_loss": 15,
      "take_profit": 25
    },
    "req_id": 1
  },
  "msg_type": "contract_update",
  "req_id": 1
}
New APIexemple de réponse
{
  "contract_update": {
    "stop_loss": {
      "display_name": "Stop loss",
      "order_amount": -15,
      "order_date": 1760000000,
      "value": "1234.56"
    },
    "take_profit": {
      "display_name": "Take profit",
      "order_amount": 25,
      "order_date": 1760000000,
      "value": "1256.78"
    }
  },
  "echo_req": {
    "contract_update": 1,
    "contract_id": 123456789,
    "limit_order": {
      "stop_loss": 15,
      "take_profit": 25
    },
    "req_id": 1
  },
  "msg_type": "contract_update",
  "req_id": 1
}

Exemples de code

function updateContract(contractId, loginId) {
  const request = {
    contract_update: 1,
    contract_id: contractId,
    limit_order: { stop_loss: 15, take_profit: 25 },
    req_id: 1
  };
  // Needed only when you authorised several accounts
  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") return;
    if (response.error) {
      console.error(response.error.message);
      return;
    }
    if (response.contract_update) {
      const { stop_loss, take_profit } = response.contract_update;
      console.log("Stop loss:", stop_loss?.order_amount);
      console.log("Take profit:", take_profit?.order_amount);
    }
  };
}
Click to open live chat support. Get instant help from our support team.