Propuesta de contrato abierto
TradingRequiere autenticaciónObtenga los detalles de un contrato abierto. El parámetro loginid se eliminó, los campos de precio y spot son cadenas, underlying se cambió a underlying_symbol, y se eliminaron los campos Tick, de visualización y Snowball.
8 Cambios Importantes
loginid se eliminó, los campos de precio y spot se devuelven como cadenas, underlying se renombró a underlying_symbol, y los campos Tick, spot de venta, visualización, is_forward_starting y Snowball ya no se devuelven.Comparación rápida
Cambios importantes
1. loginid parámetro eliminado
En la API heredada, loginid seleccionaba la cuenta cuando autorizaba varias cuentas. La nueva API no lo acepta.
Cambio obligatorio: Elimine loginid de sus solicitudes de proposal_open_contract . Su token selecciona la cuenta.
2. Los campos price y spot ahora son cadenas
Estos campos eran números en la API heredada y son cadenas en la nueva API:
- Cadenas:
bid_price,buy_price,current_spot,payoutyprofit. - Cadenas que pueden ser null, como antes:
commissionyentry_spot. - Cadenas que ahora pueden ser null:
selected_spotysell_price.
cancellation.ask_price sigue siendo un número, pero ahora puede ser null.
Cambio obligatorio: Convierta estos campos en números antes de realizar cálculos con ellos y gestione null.
3. underlying se renombró a underlying_symbol
El contrato devuelve su símbolo como underlying_symbol en lugar de underlying.
Cambio obligatorio: Lea underlying_symbol en lugar de underlying.
4. Los campos Tick se reemplazaron por campos spot
entry_tick, entry_tick_time, exit_tick y exit_tick_time ya no se devuelven. Use entry_spot, entry_spot_time, exit_spot y exit_spot_time en su lugar.
Cambio obligatorio: Lea los campos spot en lugar de los campos Tick.
5. sell_spot y sell_spot_time eliminados
sell_spot y sell_spot_time ya no se devuelven.
Cambio obligatorio: Lea exit_spot y exit_spot_time en su lugar.
6. Campos de visualización eliminados
display_name, display_value, current_spot_display_value, entry_spot_display_value, entry_tick_display_value, exit_tick_display_value y sell_spot_display_value ya no se devuelven. Tampoco se devuelve commision, un duplicado mal escrito de commission.
Cambio obligatorio: Dé formato a los precios y valores spot de los campos de cadena, por ejemplo, bid_price en lugar de display_value.
7. is_forward_starting eliminado
is_forward_starting ya no se devuelve.
Cambio obligatorio: Deje de leer is_forward_starting.
8. Se eliminaron los campos Snowball
caution_price, coupon_collection_epochs, coupon_rate, num_of_coupons, profit_price y trade_risk_profile, que describían los contratos Snowball, ya no se devuelven.
Cambio obligatorio: Deje de leer estos campos.
Estructura de solicitud
{
"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
}Estructura de respuesta
{
"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"
}
}Ejemplos 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);
};
}¿Alguna otra pregunta? Póngase en contacto