Proposal
TradingPas d'authentificationObtenez le prix d’un contrat. symbol est renommé en underlying_symbol, les paramètres de requête et les types de contrats sont supprimés, et display_value ainsi que les champs Snowball ne sont plus renvoyés.
6 modifications majeures
symbol est renommé en underlying_symbol, loginid et cinq autres paramètres de requête sont supprimés, contract_type accepte des valeurs différentes, et display_value ainsi que les détails du contrat Snowball ne sont plus renvoyés.Comparaison rapide
Modifications majeures
1. symbol renommé en underlying_symbol
Le paramètre obligatoire symbol est renommé en underlying_symbol.
Modification requise : Envoyer 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 proposal .
3. Paramètres de requête supprimés
La requête n’accepte plus barrier_range, date_start, product_type, trade_risk_profile ni trading_period_start.
Modification requise : Supprimez ces paramètres de vos requêtes proposal .
4. contract_type valeurs modifiées
contract_type n’accepte plus CALLSPREAD, PUTSPREAD, LBFLOATCALL, LBFLOATPUT, LBHIGHLOW, SNOWUP ni SNOWDOWN, et ajoute HIGHER et LOWER.
Modification requise : Cessez de demander les prix pour les types de contrats que la New API n’accepte plus.
5. display_value supprimé de la réponse
L’API Legacy renvoyait display_value, le prix formaté, dans chaque proposition. La nouvelle API ne le renvoie pas. ask_price, date_start, id, longcode, payout, spot et spot_time sont toujours renvoyés.
Modification requise : Formatez ask_price vous-même si vous affichiez display_value.
6. Détails des contrats Snowball supprimés
contract_details ne renvoie plus caution_price, coupon_rate, num_of_coupons, profit_price ni trade_risk_profile, qui décrivaient les contrats Snowball.
Modification requise : Cessez de lire ces champs.
Structure de la demande
{
"proposal": 1,
"amount": 10,
"basis": "stake",
"contract_type": "CALL",
"currency": "USD",
"duration": 5,
"duration_unit": "m",
"product_type": "basic",
"symbol": "R_100",
"loginid": "CR123456",
"req_id": 1
}{
"proposal": 1,
"amount": 10,
"basis": "stake",
"contract_type": "CALL",
"currency": "USD",
"duration": 5,
"duration_unit": "m",
"underlying_symbol": "R_100",
"req_id": 1
}Structure de réponse
{
"echo_req": {
"proposal": 1,
"amount": 10,
"basis": "stake",
"contract_type": "CALL",
"currency": "USD",
"duration": 5,
"duration_unit": "m",
"product_type": "basic",
"symbol": "R_100",
"loginid": "CR123456",
"req_id": 1
},
"msg_type": "proposal",
"proposal": {
"ask_price": 10,
"date_expiry": 1760000300,
"date_start": 1760000000,
"id": "c84a793b-8a87-7999-ce10-9b22f7ceead3",
"longcode": "Win payout if Volatility 100 Index is strictly higher than entry spot at 5 minutes after contract start time.",
"payout": 19.55,
"spot": 1234.56,
"spot_time": 1760000000,
"display_value": "10.00"
},
"req_id": 1
}{
"echo_req": {
"proposal": 1,
"amount": 10,
"basis": "stake",
"contract_type": "CALL",
"currency": "USD",
"duration": 5,
"duration_unit": "m",
"underlying_symbol": "R_100",
"req_id": 1
},
"msg_type": "proposal",
"proposal": {
"ask_price": 10,
"date_expiry": 1760000300,
"date_start": 1760000000,
"id": "c84a793b-8a87-7999-ce10-9b22f7ceead3",
"longcode": "Win payout if Volatility 100 Index is strictly higher than entry spot at 5 minutes after contract start time.",
"payout": 19.55,
"spot": 1234.56,
"spot_time": 1760000000
},
"req_id": 1
}Exemples de code
function getPrice(loginId) {
ws.send(JSON.stringify({
proposal: 1,
amount: 10,
basis: "stake",
contract_type: "CALL",
currency: "USD",
duration: 5,
duration_unit: "m",
symbol: "R_100",
loginid: loginId
}));
ws.onmessage = (event) => {
const response = JSON.parse(event.data);
if (response.msg_type !== "proposal" || !response.proposal) return;
console.log("Price:", response.proposal.display_value);
console.log("Payout:", response.proposal.payout);
};
}D'autres questions ? Nous contacter