Portefeuille
CompteAuthentification requiseObtenez les positions ouvertes du compte actuel. symbol est renommé en underlying_symbol, le paramètre loginid et le champ app_id sont supprimés, et les valeurs de contract_type ont changé.
4 modifications majeures
symbol est renommé en underlying_symbol, le paramètre loginid et le champ app_id sont supprimés, et le filtre contract_type accepte des valeurs différentes.Comparaison rapide
Modifications majeures
1. symbol renommé en underlying_symbol
Chaque contrat dans portfolio.contracts renvoie son symbole sous la forme underlying_symbol au lieu de symbol.
Modification requise : Lisez underlying_symbol au lieu de symbol.
2. loginid paramètre supprimé
Dans l’API Legacy, loginid sélectionnait le compte lorsque vous autorisiez plusieurs comptes. La nouvelle API ne l’accepte pas.
Modification requise : Supprimez loginid de vos requêtes portfolio . Votre jeton sélectionne le compte.
3. app_id supprimé des contrats
La Legacy API renvoyait app_id, l’ID de l’application par laquelle le contrat a été acheté, pour chaque contrat. La New API ne le renvoie pas.
Modification requise : Cessez de lire app_id dans les contrats du portfolio.
4. contract_type valeurs modifiées
Le filtre contract_type n’accepte plus CALLSPREAD, PUTSPREAD, LBFLOATCALL, LBFLOATPUT ni LBHIGHLOW, et ajoute HIGHER et LOWER.
Modification requise : Supprimez de contract_typeles valeurs que la nouvelle API n’accepte plus.
Structure de la demande
{
"portfolio": 1,
"contract_type": [
"CALL",
"PUT",
"CALLSPREAD"
],
"loginid": "CR123456",
"req_id": 1
}{
"portfolio": 1,
"contract_type": [
"CALL",
"PUT",
"HIGHER"
],
"req_id": 1
}Structure de réponse
{
"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
}Exemples de code
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);
});
};
}D'autres questions ? Nous contacter