Proposta
NegociaçãoSem AutenticaçãoObtenha preços de contratos e propostas com grandes alterações à estrutura de parâmetros e formato de resposta.
10 Alterações de Rutura
symbol foi renomeado para underlying_symbol, múltiplos parâmetros de pedido removidos e campos de resposta reduzidos.Comparação rápida
Alterações de rutura
1. Parâmetro Symbol renomeado
O parâmetro symbol foi renomeado para underlying_symbol.
Alteração obrigatória: Atualize todos os pedidos para usar underlying_symbol em vez de symbol.
2. Parâmetro LoginID removido
O parâmetro loginid utilizado para cenários de autorização de múltiplos tokens foi removido.
3. Múltiplos parâmetros de pedido removidos
Os seguintes parâmetros foram removidos do pedido:
barrier_range,product_type,date_start,trade_risk_profile,trading_period_start(removido)
4. Objeto de proposta de resposta agora obrigatório
O objeto proposal na resposta é agora obrigatório. Anteriormente era opcional.
5. Campos obrigatórios de proposal reduzidos
O objeto proposal requer agora apenas o campo id. Anteriormente, 8 campos eram obrigatórios.
Alteração necessária: Add null/undefined checks for fields other than id as they may not always be present.
6. Tipos de campo de resposta alterados
Vários campos de resposta agora aceitam tanto números como strings: ask_price, payout, e commission.
Alteração necessária: Update parsing logic to handle both number and string values for these fields.
Estrutura de pedido
{
"proposal": 1,
"amount": 10,
"contract_type": "CALL",
"currency": "USD",
"symbol": "frxEURUSD", // ❌ Renamed in New
"loginid": "CR123456", // ❌ Removed in New
"barrier_range": "middle" // ❌ Removed in New
}{
"proposal": 1,
"amount": 10,
"contract_type": "CALL",
"currency": "USD",
"underlying_symbol": "frxEURUSD", // ✅ Renamed from symbol
"subscribe": 1
}Estrutura de resposta
{
"proposal": {
"ask_price": 10.50, // type: number
"id": "proposal-id-123",
"payout": 20.00, // type: number
"spot": 1.0850
},
"msg_type": "proposal"
}{
"proposal": {
"ask_price": "10.50", // type: number | string
"id": "proposal-id-123", // ✅ Only required field
"payout": "20.00", // type: number | string
"spot": 1.0850
},
"msg_type": "proposal"
}Exemplos de código
async function getProposal() {
const request = {
proposal: 1,
amount: 10,
contract_type: "CALL",
currency: "USD",
symbol: "frxEURUSD",
loginid: "CR123456"
};
ws.send(JSON.stringify(request));
ws.onmessage = (event) => {
const response = JSON.parse(event.data);
if (response.msg_type === "proposal") {
console.log("Price:", response.proposal.ask_price);
}
};
}Alguma outra questão? Entrar em contacto