Cartera
CuentaRequiere autenticaciónRecupere información sobre la cartera actual de opciones pendientes, incluyendo todas las posiciones abiertas para la cuenta autenticada.
3 Cambios Importantes
El campo
symbol renombrado a underlying_symbol, el parámetro loginid eliminado, y app_id ya no puede ser nulo.Comparación rápida
Cambios importantes
1. Campo Symbol renombrado
El campo symbol en cada objeto de contrato ha sido renombrado a underlying_symbol.
2. Parámetro LoginId eliminado
El parámetro loginid ha sido eliminado de la estructura de solicitud. El contexto de la cuenta ahora debe gestionarse a través del flujo de autorización.
3. El campo app_id ya no puede ser nulo
El campo app_id en cada objeto de contrato ya no puede ser null.
Cambio requerido: If your code handles null app_id values, update your logic to expect an integer value only.
Estructura de solicitud
Legacy APIejemplo de solicitud
{
"portfolio": 1,
"contract_type": ["CALL", "PUT"],
"loginid": "CR1234567" // ❌ Removed in New
}New APIejemplo de solicitud
{
"portfolio": 1,
"contract_type": ["CALL", "PUT"]
}Estructura de respuesta
Legacy APIejemplo de respuesta
{
"portfolio": {
"contracts": [
{
"app_id": null,
"contract_id": 123456789,
"symbol": "R_100" // ❌ Renamed in New
}
]
},
"msg_type": "portfolio"
}New APIejemplo de respuesta
{
"portfolio": {
"contracts": [
{
"app_id": 12345,
"contract_id": 123456789,
"underlying_symbol": "R_100" // 🆕 Renamed from symbol
}
]
},
"msg_type": "portfolio"
}Ejemplos 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}`);
});
}
};
}¿Alguna otra pregunta? Póngase en contacto