Cartera
CuentaRequiere autenticaciónObtenga las posiciones abiertas de la cuenta actual. symbol se renombra a underlying_symbol, se eliminan el parámetro loginid y el campo app_id , y los valores de contract_type cambiaron.
4 cambios importantes
symbol se renombró a underlying_symbol, el parámetro loginid y el campo app_id se eliminaron, y el filtro contract_type acepta valores diferentes.Comparación rápida
Cambios importantes
1. symbol renombrado a underlying_symbol
Cada contrato en portfolio.contracts devuelve su símbolo como underlying_symbol en lugar de symbol.
Cambio obligatorio: Lea underlying_symbol en lugar de symbol.
2. loginid parámetro eliminado
En la API heredada, loginid seleccionaba la cuenta cuando autorizaba varias cuentas. La nueva API no lo acepta.
Cambio obligatorio: Elimine loginid de sus solicitudes de portfolio . Su token selecciona la cuenta.
3. app_id eliminado de los contratos
La Legacy API devolvía app_id, el ID de la aplicación mediante la cual se compró el contrato, en cada contrato. La New API no lo devuelve.
Cambio obligatorio: Deje de leer app_id de los contratos de portfolio.
4. contract_type valores cambiados
El filtro contract_type ya no acepta CALLSPREAD, PUTSPREAD, LBFLOATCALL, LBFLOATPUT ni LBHIGHLOW, y añade HIGHER y LOWER.
Cambio obligatorio: Elimine de contract_typelos valores que la nueva API ya no acepta.
Estructura de solicitud
{
"portfolio": 1,
"contract_type": [
"CALL",
"PUT",
"CALLSPREAD"
],
"loginid": "CR123456",
"req_id": 1
}{
"portfolio": 1,
"contract_type": [
"CALL",
"PUT",
"HIGHER"
],
"req_id": 1
}Estructura de respuesta
{
"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
}Ejemplos 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);
});
};
}¿Alguna otra pregunta? Póngase en contacto