Atualização de contrato
NegociaçãoAutenticação ObrigatóriaAtualize o take profit e o stop loss de um contrato. O loginid parâmetro foi removido; a resposta não foi alterada.
1 alteração incompatível
O
loginid parâmetro foi removido. A resposta é a mesma na Legacy API e na New API.Comparação rápida
Alterações de rutura
1. loginid parâmetro removido
Na Legacy API, loginid selecionava a conta cujo contrato atualizar quando autorizava várias contas. A New API não o aceita.
Alteração necessária: Remova loginid dos seus pedidos contract_update . O seu token seleciona a conta.
Estrutura de pedido
Legacy APIexemplo de pedido
{
"contract_update": 1,
"contract_id": 123456789,
"limit_order": {
"stop_loss": 15,
"take_profit": 25
},
"loginid": "CR123456",
"req_id": 1
}New APIexemplo de pedido
{
"contract_update": 1,
"contract_id": 123456789,
"limit_order": {
"stop_loss": 15,
"take_profit": 25
},
"req_id": 1
}Estrutura de resposta
Legacy APIexemplo de resposta
{
"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 APIexemplo de resposta
{
"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
}Exemplos 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);
}
};
}Alguma outra questão? Entrar em contacto