Proposta
NegociaçãoSem AutenticaçãoObtenha o preço de um contrato. symbol foi renomeado para underlying_symbol, os parâmetros do pedido e os tipos de contrato foram removidos, e display_value e os campos Snowball já não são devolvidos.
6 Alterações de Rutura
symbol foi renomeado para underlying_symbol, loginid e outros cinco parâmetros de pedido foram removidos, contract_type aceita valores diferentes, e display_value e os detalhes do contrato Snowball já não são devolvidos.Comparação rápida
Alterações de rutura
1. symbol renomeado para underlying_symbol
O parâmetro obrigatório symbol foi renomeado para underlying_symbol.
Alteração necessária: Enviar underlying_symbol em vez de symbol.
2. loginid parâmetro removido
Na Legacy API, loginid selecionava a conta quando autorizava várias contas. A New API não o aceita.
Alteração necessária: Remova loginid dos seus pedidos de proposal .
3. Parâmetros de pedido removidos
O pedido já não aceita barrier_range, date_start, product_type, trade_risk_profile nem trading_period_start.
Alteração necessária: Remova estes parâmetros dos seus pedidos proposal .
4. contract_type valores alterados
contract_type já não aceita CALLSPREAD, PUTSPREAD, LBFLOATCALL, LBFLOATPUT, LBHIGHLOW, SNOWUP nem SNOWDOWN, e adiciona HIGHER e LOWER.
Alteração necessária: Deixe de solicitar preços para os tipos de contrato que a New API já não aceita.
5. display_value removido da resposta
A API Legacy devolvia display_value, o preço formatado, em cada proposta. A New API não o devolve. ask_price, date_start, id, longcode, payout, spot e spot_time continuam a ser sempre devolvidos.
Alteração necessária: Formate ask_price se apresentou display_value.
6. Detalhes de contratos Snowball removidos
contract_details já não devolve caution_price, coupon_rate, num_of_coupons, profit_price nem trade_risk_profile, que descreviam contratos Snowball.
Alteração necessária: Deixe de ler estes campos.
Estrutura de pedido
{
"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
}Estrutura de resposta
{
"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
}Exemplos de código
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);
};
}Alguma outra questão? Entrar em contacto