Actualización de contrato
TradingRequiere autenticaciónActualice el Take Profit y el Stop Loss de un contrato. El parámetro loginid se eliminó; la respuesta no cambia.
1 cambio disruptivo
El
loginid parámetro se eliminó. La respuesta es la misma en la API heredada y la nueva API.Comparación rápida
Cambios importantes
1. loginid parámetro eliminado
En la Legacy API, loginid seleccionaba la cuenta cuyo contrato se actualizaría cuando autorizaba varias cuentas. La New API no lo acepta.
Cambio obligatorio: Elimine loginid de sus solicitudes de contract_update . Su token selecciona la cuenta.
Estructura de solicitud
Legacy APIejemplo de solicitud
{
"contract_update": 1,
"contract_id": 123456789,
"limit_order": {
"stop_loss": 15,
"take_profit": 25
},
"loginid": "CR123456",
"req_id": 1
}New APIejemplo de solicitud
{
"contract_update": 1,
"contract_id": 123456789,
"limit_order": {
"stop_loss": 15,
"take_profit": 25
},
"req_id": 1
}Estructura de respuesta
Legacy APIejemplo de respuesta
{
"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 APIejemplo de respuesta
{
"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
}Ejemplos de código
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);
}
};
}¿Alguna otra pregunta? Póngase en contacto