Contratos para
DatosSin autenticaciónObtenga contratos disponibles para un símbolo. Parámetros de solicitud reducidos, datos de mercado eliminados de la respuesta, y varios campos de metadatos de contrato eliminados.
5 Cambios Importantes
El parámetro de solicitud
currency ha sido eliminado, los campos de datos de mercado eliminados de la respuesta, y los campos obligatorios barrier_category y start_type eliminados de los elementos de contrato.Comparación rápida
Cambios importantes
1. Parámetros de solicitud eliminados
Se han eliminado varios parámetros de filtrado de la solicitud:
currency(eliminado) - Filtrado de divisas ya no soportado en la solicitudlanding_company,landing_company_short,product_type,loginid(eliminados)
Manejo de Moneda Cambiado
La moneda de precio del contrato ahora se determina por la moneda de la cuenta del usuario autenticado, no por un parámetro de solicitud.
2. Campos de datos de mercado eliminados de la respuesta
Campos de tiempo de mercado y precio al contado eliminados del objeto contracts_for:
spot,open,close,feed_license,non_available(eliminados)
Alternativas
Use el endpoint
ticks para precios al contado y trading_times para horarios de mercado.3. Campos de visualización eliminados de elementos de contrato
Campos específicos de visualización eliminados de objetos de elementos de contrato:
contract_display(eliminado)contract_category_display(eliminado)
4. Campos de metadatos de contrato eliminados
Varios campos de metadatos de contrato eliminados de los objetos de elemento de contrato:
barrier_category,start_type(eliminados) - Eran requeridos en Legacyforward_starting_options,trading_period(eliminados)
5. Opciones especializadas de contrato eliminadas
Campos de configuración especializados para ciertos tipos de contratos eliminados:
duration_choices,trade_risk_profile_choices(eliminados) - Opciones de contrato Snowball
Estructura de solicitud
Legacy APIejemplo de solicitud
{
"contracts_for": "frxEURUSD",
"currency": "USD", // ❌ Removed in New
"landing_company_short": "svg", // ❌ Removed in New
"product_type": "basic", // ❌ Removed in New
"loginid": "CR123456" // ❌ Removed in New
}New APIejemplo de solicitud
{
"contracts_for": "frxEURUSD"
}Estructura de respuesta
Legacy APIejemplo de respuesta
{
"contracts_for": {
"available": [
{
"barrier_category": "euro_atm", // ❌ Not in New
"barriers": 0,
"contract_category": "callput",
"contract_category_display": "Up/Down", // ❌ Not in New
"contract_display": "Higher", // ❌ Not in New
"contract_type": "CALL",
"exchange_name": "FOREX",
"expiry_type": "intraday",
"market": "forex",
"sentiment": "up",
"start_type": "spot", // ❌ Not in New
"submarket": "major_pairs",
"underlying_symbol": "frxEURUSD"
}
],
"close": 1699574400, // ❌ Not in New
"feed_license": "realtime", // ❌ Not in New
"hit_count": 1,
"open": 1699488000, // ❌ Not in New
"spot": 1.0850 // ❌ Not in New
},
"msg_type": "contracts_for"
}New APIejemplo de respuesta
{
"contracts_for": {
"available": [
{
"barriers": 0,
"contract_category": "callput",
"contract_type": "CALL",
"exchange_name": "FOREX",
"expiry_type": "intraday",
"market": "forex",
"sentiment": "up",
"submarket": "major_pairs",
"underlying_symbol": "frxEURUSD"
}
],
"hit_count": 1
},
"msg_type": "contracts_for"
}Ejemplos de código
async function getContractsFor(symbol) {
const request = {
contracts_for: symbol,
currency: "USD",
landing_company_short: "svg",
product_type: "basic"
};
ws.send(JSON.stringify(request));
ws.onmessage = (event) => {
const response = JSON.parse(event.data);
if (response.msg_type === 'contracts_for') {
const { spot, open, close } = response.contracts_for;
console.log(`Spot: ${spot}, Open: ${open}, Close: ${close}`);
response.contracts_for.available.forEach(c => {
console.log(`Type: ${c.contract_type}`);
console.log(`Display: ${c.contract_display}`);
console.log(`Barrier Category: ${c.barrier_category}`);
});
}
};
}¿Alguna otra pregunta? Póngase en contacto