Portefeuille
CompteAuthentification requiseRécupérez des informations sur le portefeuille actuel d'options en cours, y compris toutes les positions ouvertes pour le compte authentifié.
3 modifications incompatibles
Le champ
symbol renommé en underlying_symbol, le paramètre loginid supprimé, et app_id ne peut plus être null.Comparaison rapide
Modifications majeures
1. Champ Symbol renommé
Le champ symbol dans chaque objet de contrat a été renommé en underlying_symbol.
2. Paramètre LoginId supprimé
Le paramètre loginid a été retiré de la structure de requête. Le contexte de compte doit désormais être géré via le flux d'autorisation.
3. Le champ app_id ne peut plus être null
Le champ app_id dans chaque objet de contrat ne peut plus être null.
Modification requise : If your code handles null app_id values, update your logic to expect an integer value only.
Structure de la demande
Legacy APIexemple de demande
{
"portfolio": 1,
"contract_type": ["CALL", "PUT"],
"loginid": "CR1234567" // ❌ Removed in New
}New APIexemple de demande
{
"portfolio": 1,
"contract_type": ["CALL", "PUT"]
}Structure de réponse
Legacy APIexemple de réponse
{
"portfolio": {
"contracts": [
{
"app_id": null,
"contract_id": 123456789,
"symbol": "R_100" // ❌ Renamed in New
}
]
},
"msg_type": "portfolio"
}New APIexemple de réponse
{
"portfolio": {
"contracts": [
{
"app_id": 12345,
"contract_id": 123456789,
"underlying_symbol": "R_100" // 🆕 Renamed from symbol
}
]
},
"msg_type": "portfolio"
}Exemples de code
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}`);
});
}
};
}D'autres questions ? Nous contacter