Mise à jour du contrat
TradingAuthentification requiseMettez à jour le Take profit et le Stop Loss d’un contrat. Le paramètre loginid est supprimé ; la réponse reste inchangée.
1 modification majeure
Le
loginid paramètre est supprimé. La réponse est la même dans l’API Legacy et la nouvelle API.Comparaison rapide
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);
}
};
}D'autres questions ? Nous contacter