Histórico de atualização de contrato
NegociaçãoAutenticação ObrigatóriaObtenha o histórico de atualizações de um contrato, como alterações ao respetivo Stop Loss e Take Profit. O parâmetro loginid 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 API Legacy, loginid selecionava a conta cujo histórico de contratos seria lido quando autorizava várias contas. A New API não o aceita.
Alteração necessária: Remova loginid dos seus pedidos contract_update_history . O seu token seleciona a conta.
Estrutura de pedido
Legacy APIexemplo de pedido
{
"contract_update_history": 1,
"contract_id": 123456789,
"limit": 10,
"loginid": "CR123456",
"req_id": 1
}New APIexemplo de pedido
{
"contract_update_history": 1,
"contract_id": 123456789,
"limit": 10,
"req_id": 1
}Estrutura de resposta
Legacy APIexemplo de resposta
{
"contract_update_history": [
{
"display_name": "Take profit",
"order_amount": "25.00",
"order_date": 1760000000,
"order_type": "take_profit",
"value": "1256.78"
},
{
"display_name": "Stop loss",
"order_amount": "-15.00",
"order_date": 1759990000,
"order_type": "stop_loss",
"value": null
}
],
"echo_req": {
"contract_update_history": 1,
"contract_id": 123456789,
"limit": 10,
"req_id": 1
},
"msg_type": "contract_update_history",
"req_id": 1
}New APIexemplo de resposta
{
"contract_update_history": [
{
"display_name": "Take profit",
"order_amount": "25.00",
"order_date": 1760000000,
"order_type": "take_profit",
"value": "1256.78"
},
{
"display_name": "Stop loss",
"order_amount": "-15.00",
"order_date": 1759990000,
"order_type": "stop_loss",
"value": null
}
],
"echo_req": {
"contract_update_history": 1,
"contract_id": 123456789,
"limit": 10,
"req_id": 1
},
"msg_type": "contract_update_history",
"req_id": 1
}Exemplos de código
function getUpdateHistory(contractId, loginId) {
const request = { contract_update_history: 1, contract_id: contractId, limit: 10, 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_history") return;
if (response.error) {
console.error(response.error.message);
return;
}
response.contract_update_history?.forEach((update) => {
console.log(update.display_name, update.order_amount, update.order_date);
});
};
}Alguma outra questão? Entrar em contacto