Portfólio
ContaAutenticação ObrigatóriaObter informações sobre o portfólio atual de opções em aberto, incluindo todas as posições abertas para a conta autenticada.
3 Alterações Disruptivas
O campo
symbol foi renomeado para underlying_symbol, o parâmetro loginid foi removido, e app_id já não pode ser nulo.Comparação rápida
Alterações de rutura
1. Campo Symbol renomeado
O campo symbol em cada objeto de contrato foi renomeado para underlying_symbol.
2. Parâmetro LoginId removido
O parâmetro loginid foi removido da estrutura de pedido. O contexto de conta deve agora ser gerido através do fluxo de autorização.
3. Campo app_id já não pode ser nulo
O campo app_id em cada objeto de contrato já não pode ser null.
Alteração necessária: If your code handles null app_id values, update your logic to expect an integer value only.
Estrutura de pedido
Legacy APIexemplo de pedido
{
"portfolio": 1,
"contract_type": ["CALL", "PUT"],
"loginid": "CR1234567" // ❌ Removed in New
}New APIexemplo de pedido
{
"portfolio": 1,
"contract_type": ["CALL", "PUT"]
}Estrutura de resposta
Legacy APIexemplo de resposta
{
"portfolio": {
"contracts": [
{
"app_id": null,
"contract_id": 123456789,
"symbol": "R_100" // ❌ Renamed in New
}
]
},
"msg_type": "portfolio"
}New APIexemplo de resposta
{
"portfolio": {
"contracts": [
{
"app_id": 12345,
"contract_id": 123456789,
"underlying_symbol": "R_100" // 🆕 Renamed from symbol
}
]
},
"msg_type": "portfolio"
}Exemplos de código
async function getPortfolio() {
const request = {
portfolio: 1
};
ws.send(JSON.stringify(request));
ws.onmessage = (event) => {
const response = JSON.parse(event.data);
if (response.msg_type === "portfolio") {
const contracts = response.portfolio.contracts;
contracts.forEach(contract => {
console.log(`Symbol: ${contract.symbol}`);
});
}
};
}Alguma outra questão? Entrar em contacto