Mise à jour du contrat
TradingAuthentification requiseMettez à 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é.
3 modifications incompatibles
loginid a été supprimé et l'objet de réponse contract_update est désormais requis.Comparaison rapide
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
{
"contract_update": 1,
"contract_id": 123456789,
"limit_order": {
"stop_loss": 15.00,
"take_profit": 25.00
},
"loginid": "CR123456"
}{
"contract_update": 1,
"contract_id": 123456789,
"limit_order": {
"stop_loss": 15.00,
"take_profit": 25.00
}
}Structure 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"
}{
"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);
}
}
};
}D'autres questions ? Nous contacter