Contratos para
DadosSem AutenticaçãoObtenha os contratos disponíveis para um símbolo. Parâmetros de pedido reduzidos, dados de mercado removidos da resposta e vários campos de metadados de contrato removidos.
5 Alterações Incompatíveis
O parâmetro de pedido
currency foi removido, campos de dados de mercado foram removidos da resposta, e campos obrigatórios barrier_category e start_type foram removidos dos itens de contrato.Comparação rápida
Alterações de rutura
1. Parâmetros de pedido removidos
Vários parâmetros de filtragem foram removidos do pedido:
currency(removido) - Filtragem de moeda já não suportada no pedidolanding_company,landing_company_short,product_type,loginid(removidos)
Tratamento de Moeda Alterado
A moeda de preços de contratos é agora determinada pela moeda de conta do utilizador autenticado, e não por um parâmetro de pedido.
2. Campos de dados de mercado removidos da resposta
Campos de horários de mercado e preço spot removidos do objeto contracts_for:
spot,open,close,feed_license,non_available(removidos)
Alternativas
Use o endpoint
ticks para preços spot e trading_times para horários de mercado.3. Campos de exibição removidos dos itens de contrato
Campos específicos de visualização removidos de objetos de item de contrato:
contract_display(removido)contract_category_display(removido)
4. Campos de metadados de contrato removidos
Vários campos de metadados de contrato removidos dos objetos de item de contrato:
barrier_category,start_type(removidos) - Era obrigatório no Legadoforward_starting_options,trading_period(removidos)
5. Opções de contrato especializadas removidas
Campos de configuração especializados para certos tipos de contrato removidos:
duration_choices,trade_risk_profile_choices(removidos) - Opções de contratos Snowball
Estrutura de pedido
Legacy APIexemplo de pedido
{
"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 APIexemplo de pedido
{
"contracts_for": "frxEURUSD"
}Estrutura de resposta
Legacy APIexemplo de resposta
{
"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 APIexemplo de resposta
{
"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"
}Exemplos 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}`);
});
}
};
}Alguma outra questão? Entrar em contacto