Vender
NegociaçãoAutenticação ObrigatóriaVenda um contrato ativo antes da expiração para realizar lucro ou minimizar perdas. O parâmetro loginid foi removido, validação de preço adicionada e os campos de resposta agora garantidos.
4 Alterações de Rutura
loginid foi removido, o parâmetro price requer agora um valor mínimo de 0, e o objeto sell e os seus campos são agora obrigatórios na resposta.Comparação rápida
Alterações de rutura
1. Parâmetro loginid removido
O parâmetro loginid que era usado para cenários de múltiplas contas foi removido em v4. O contexto de conta deve agora ser estabelecido através do fluxo de autorização.
2. Validação do parâmetro price adicionada
O parâmetro price tem agora uma restrição de validação minimum: 0. Valores negativos serão rejeitados.
Alteração necessária: Ensure you always pass a non-negative value for price. Use 0 for selling at market.
3. objeto sell agora obrigatório na resposta
No legado, o objeto sell era opcional na resposta. Em v4, está sempre presente para operações de venda bem-sucedidas.
4. Todos os campos do objeto sell agora obrigatórios
Todos os 5 campos dentro do objeto sell estão agora garantidamente presentes: balance_after, contract_id, reference_id, sold_for, e transaction_id.
Estrutura de pedido
{
"sell": 11542203588,
"price": 500,
"loginid": "CR123456"
}{
"sell": 11542203588,
"price": 500
}Estrutura de resposta
{
"sell": {
"balance_after": 10500.50,
"contract_id": 11542203588,
"sold_for": 750.25
},
"msg_type": "sell"
}{
"sell": {
"balance_after": 10500.50,
"contract_id": 11542203588,
"reference_id": 11542203587,
"sold_for": 750.25,
"transaction_id": 98765432
},
"msg_type": "sell"
}Exemplos de código
async function sellContract(contractId, minimumPrice, loginId) {
const request = {
sell: contractId,
price: minimumPrice,
loginid: loginId
};
ws.send(JSON.stringify(request));
ws.onmessage = (msg) => {
const response = JSON.parse(msg.data);
if (response.msg_type === "sell") {
if (response.sell) {
const soldFor = response.sell.sold_for ?? 0;
console.log("Sold for: " + soldFor);
}
}
};
}Alguma outra questão? Entrar em contacto