Proposta de contrato aberto
NegociaçãoAutenticação ObrigatóriaObtenha os detalhes de um contrato aberto. O parâmetro loginid foi removido, os campos de preço e spot são cadeias de carateres, underlying foi renomeado para underlying_symbol, e os campos Tick, de apresentação e Snowball foram removidos.
8 Alterações de Rutura
loginid foi removido, os campos de preço e spot são devolvidos como strings, underlying foi renomeado para underlying_symbol, e os campos tick, spot de venda, apresentação, is_forward_starting e Snowball já não são devolvidos.Comparação rápida
Alterações de rutura
1. 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 proposal_open_contract . O seu token seleciona a conta.
2. Os campos de preço e spot são agora strings
Estes campos eram números na Legacy API e são strings na New API:
- Cadeias de carateres:
bid_price,buy_price,current_spot,payouteprofit. - Strings que podem ser null, tal como anteriormente:
commissioneentry_spot. - Cadeias de carateres que agora podem ser null:
selected_spotesell_price.
cancellation.ask_price continua a ser um número, mas agora pode ser null.
Alteração necessária: Converta estes campos em números antes de efetuar cálculos com eles e processe null.
3. underlying renomeado para underlying_symbol
O contrato devolve o seu símbolo como underlying_symbol em vez de underlying.
Alteração obrigatória: Leia underlying_symbol em vez de underlying.
4. Campos Tick substituídos por campos spot
entry_tick, entry_tick_time, exit_tick e exit_tick_time já não são devolvidos. Utilize entry_spot, entry_spot_time, exit_spot e exit_spot_time em alternativa.
Alteração necessária: Leia os campos spot em vez dos campos tick.
5. sell_spot e sell_spot_time removidos
sell_spot e sell_spot_time já não são devolvidos.
Alteração necessária: Leia exit_spot e exit_spot_time em vez disso.
6. Campos de apresentação removidos
display_name, display_value, current_spot_display_value, entry_spot_display_value, entry_tick_display_value, exit_tick_display_value e sell_spot_display_value deixaram de ser devolvidos. O mesmo se aplica a commision, um duplicado com erro ortográfico de commission.
Alteração necessária: Formate os preços e spots a partir dos campos de string, por exemplo, bid_price em vez de display_value.
7. is_forward_starting removido
is_forward_starting já não é devolvido.
Alteração obrigatória: Deixe de ler is_forward_starting.
8. Campos Snowball removidos
caution_price, coupon_collection_epochs, coupon_rate, num_of_coupons, profit_price e trade_risk_profile, que descreviam contratos Snowball, já não são devolvidos.
Alteração necessária: Deixe de ler estes campos.
Estrutura de pedido
{
"proposal_open_contract": 1,
"contract_id": 11542203588,
"subscribe": 1,
"loginid": "CR123456",
"req_id": 1
}{
"proposal_open_contract": 1,
"contract_id": 11542203588,
"subscribe": 1,
"req_id": 1
}Estrutura de resposta
{
"echo_req": {
"proposal_open_contract": 1,
"contract_id": 11542203588,
"subscribe": 1,
"loginid": "CR123456",
"req_id": 1
},
"msg_type": "proposal_open_contract",
"proposal_open_contract": {
"contract_id": 11542203588,
"contract_type": "CALL",
"currency": "USD",
"date_expiry": 1760000300,
"date_start": 1760000000,
"id": "c84a793b-8a87-7999-ce10-9b22f7ceead3",
"is_expired": 0,
"is_sold": 0,
"is_valid_to_sell": 1,
"longcode": "Win payout if Volatility 100 Index is strictly higher than entry spot at 5 minutes after contract start time.",
"status": "open",
"bid_price": 12.34,
"buy_price": 10,
"current_spot": 1235.12,
"display_name": "Volatility 100 Index",
"display_value": "12.34",
"entry_spot": 1234.56,
"entry_tick": 1234.56,
"entry_tick_time": 1760000002,
"is_forward_starting": 0,
"payout": 19.55,
"profit": 2.34,
"underlying": "R_100"
},
"req_id": 1,
"subscription": {
"id": "c84a793b-8a87-7999-ce10-9b22f7ceead3"
}
}{
"echo_req": {
"proposal_open_contract": 1,
"contract_id": 11542203588,
"subscribe": 1,
"req_id": 1
},
"msg_type": "proposal_open_contract",
"proposal_open_contract": {
"contract_id": 11542203588,
"contract_type": "CALL",
"currency": "USD",
"date_expiry": 1760000300,
"date_start": 1760000000,
"id": "c84a793b-8a87-7999-ce10-9b22f7ceead3",
"is_expired": 0,
"is_sold": 0,
"is_valid_to_sell": 1,
"longcode": "Win payout if Volatility 100 Index is strictly higher than entry spot at 5 minutes after contract start time.",
"status": "open",
"bid_price": "12.34",
"buy_price": "10.00",
"current_spot": "1235.12",
"entry_spot": "1234.56",
"entry_spot_time": 1760000002,
"payout": "19.55",
"profit": "2.34",
"sell_price": null,
"underlying_symbol": "R_100"
},
"req_id": 1,
"subscription": {
"id": "c84a793b-8a87-7999-ce10-9b22f7ceead3"
}
}Exemplos de código
function watchContract(contractId, loginId) {
ws.send(JSON.stringify({ proposal_open_contract: 1, contract_id: contractId, subscribe: 1, loginid: loginId }));
ws.onmessage = (event) => {
const response = JSON.parse(event.data);
if (response.msg_type !== "proposal_open_contract" || !response.proposal_open_contract) return;
const contract = response.proposal_open_contract;
console.log(contract.underlying, contract.display_value);
console.log("Profit:", contract.profit.toFixed(2));
console.log("Entry tick:", contract.entry_tick);
};
}Alguma outra questão? Entrar em contacto