Portfólio
ContaAutenticação ObrigatóriaObtenha as posições abertas da conta atual. symbol é renomeado para underlying_symbol, o parâmetro loginid e o campo app_id são removidos e os valores de contract_type são alterados.
4 Alterações de Rutura
symbol foi renomeado para underlying_symbol, o parâmetro loginid e o campo app_id foram removidos, e o filtro contract_type aceita valores diferentes.Comparação rápida
Alterações de rutura
1. symbol renomeado para underlying_symbol
Cada contrato em portfolio.contracts devolve o respetivo símbolo como underlying_symbol em vez de symbol.
Alteração necessária: Leia underlying_symbol em vez de symbol.
2. loginid parâmetro removido
Na Legacy API, loginid selecionava a conta quando autorizava várias contas. A New API não o aceita.
Alteração necessária: Remova loginid dos seus pedidos de portfolio . O seu token seleciona a conta.
3. app_id removido dos contratos
A Legacy API devolvia app_id, o ID da aplicação através da qual o contrato foi comprado, em cada contrato. A New API não o devolve.
Alteração necessária: Deixe de ler app_id dos contratos do portfólio.
4. contract_type valores alterados
O filtro contract_type já não aceita CALLSPREAD, PUTSPREAD, LBFLOATCALL, LBFLOATPUT nem LBHIGHLOW, e adiciona HIGHER e LOWER.
Alteração necessária: Remova de contract_typeos valores que a New API já não aceita.
Estrutura de pedido
{
"portfolio": 1,
"contract_type": [
"CALL",
"PUT",
"CALLSPREAD"
],
"loginid": "CR123456",
"req_id": 1
}{
"portfolio": 1,
"contract_type": [
"CALL",
"PUT",
"HIGHER"
],
"req_id": 1
}Estrutura de resposta
{
"echo_req": {
"portfolio": 1,
"contract_type": [
"CALL",
"PUT",
"CALLSPREAD"
],
"loginid": "CR123456",
"req_id": 1
},
"msg_type": "portfolio",
"portfolio": {
"contracts": [
{
"buy_price": 10,
"contract_id": 11542203588,
"contract_type": "CALL",
"currency": "USD",
"date_start": 1760000000,
"expiry_time": 1760000300,
"longcode": "Win payout if Volatility 100 Index is strictly higher than entry spot at 5 minutes after contract start time.",
"payout": 19.55,
"purchase_time": 1760000000,
"shortcode": "CALL_R_100_19.55_1760000000_1760000300_S0P_0",
"transaction_id": 11542203587,
"app_id": 1089,
"symbol": "R_100"
}
]
},
"req_id": 1
}{
"echo_req": {
"portfolio": 1,
"contract_type": [
"CALL",
"PUT",
"HIGHER"
],
"req_id": 1
},
"msg_type": "portfolio",
"portfolio": {
"contracts": [
{
"buy_price": 10,
"contract_id": 11542203588,
"contract_type": "CALL",
"currency": "USD",
"date_start": 1760000000,
"expiry_time": 1760000300,
"longcode": "Win payout if Volatility 100 Index is strictly higher than entry spot at 5 minutes after contract start time.",
"payout": 19.55,
"purchase_time": 1760000000,
"shortcode": "CALL_R_100_19.55_1760000000_1760000300_S0P_0",
"transaction_id": 11542203587,
"underlying_symbol": "R_100"
}
]
},
"req_id": 1
}Exemplos de código
function getPortfolio(loginId) {
ws.send(JSON.stringify({ portfolio: 1, contract_type: ["CALL", "PUT", "CALLSPREAD"], loginid: loginId }));
ws.onmessage = (event) => {
const response = JSON.parse(event.data);
if (response.msg_type !== "portfolio" || !response.portfolio) return;
response.portfolio.contracts.forEach((contract) => {
console.log(contract.contract_id, contract.symbol, contract.app_id);
});
};
}Alguma outra questão? Entrar em contacto