Símbolos ativos
DadosSem AutenticaçãoExtrai uma lista de todos os símbolos atualmente ativos (mercados subjacentes nos quais os contratos estão disponíveis para negociação).
6 Alterações de Rutura
Os nomes dos campos de resposta foram alterados:
symbol → underlying_symbol, e muitos campos de filtragem e apresentação foram removidos.Comparação rápida
Alterações de rutura
1. Alterações de nome de campo de resposta
Os campos principais de identificação de símbolo e dados foram renomeados na resposta:
symbol→underlying_symbolsymbol_type→underlying_symbol_typedisplay_name→underlying_symbol_namepip→pip_size
2. Campos de nome de visualização traduzido removidos
Os campos de nome de exibição traduzidos foram removidos da resposta:
market_display_name(removido)subgroup_display_name(removido)submarket_display_name(removido)
3. Dados de preço spot removidos
Os campos de preço spot em tempo real já não estão incluídos:
spot,spot_age,spot_percentage_change,spot_time(removido)
Alternativa
Use o endpoint
ticks para obter preços spot em tempo real.4. Filtragem de empresa de destino e tipo de produto removida
Parâmetros de pedido para filtragem por empresa de registo e tipo de produto removidos:
landing_company,landing_company_short,product_type,loginid(removido)
5. Filtragem de categoria de barreira removida
O parâmetro de pedido barrier_category foi removido. Já não é possível filtrar por: american, asian, euro_atm, euro_non_atm, non_financial, lookback, reset.
Alteração Obrigatória
Se utilizar filtragem de categoria de barreira, processe a filtragem do lado do cliente após receber a lista completa de símbolos ou utilize o parâmetro
contract_type como filtro alternativo.6. Campos de metadados adicionais removidos
Vários campos de metadados já não estão disponíveis:
allow_forward_starting,close_only,display_order,exchange_name,delay_amount,intraday_interval_minutes,quoted_currency_symbol(removido)
Estrutura de pedido
Legacy APIexemplo de pedido
{
"active_symbols": "brief",
"product_type": "basic", // ❌ Removed in New
"landing_company_short": "svg", // ❌ Removed in New
"contract_type": ["CALL", "PUT"]
}New APIexemplo de pedido
{
"active_symbols": "brief",
"contract_type": ["CALL", "PUT"]
}Estrutura de resposta
Legacy APIexemplo de resposta
{
"active_symbols": [
{
"allow_forward_starting": 1, // ❌ Not in New
"close_only": 0,
"display_name": "EUR/USD", // ❌ Not in New
"display_order": 1,
"exchange_is_open": 1,
"is_trading_suspended": 0,
"market": "forex",
"market_display_name": "Forex", // ❌ Not in New
"pip": 0.0001,
"spot": 1.0850, // ❌ Not in New
"spot_age": "2", // ❌ Not in New
"subgroup": "major_pairs",
"submarket": "major_pairs",
"symbol": "frxEURUSD", // ❌ Changed
"symbol_type": "forex" // ❌ Changed
}
],
"msg_type": "active_symbols"
}New APIexemplo de resposta
{
"active_symbols": [
{
"exchange_is_open": 1,
"is_trading_suspended": 0,
"market": "forex",
"pip_size": 0.0001,
"subgroup": "major_pairs",
"submarket": "major_pairs",
"trade_count": 0, // 🆕 New field
"underlying_symbol": "frxEURUSD", // 🆕 Replaces symbol
"underlying_symbol_name": "EUR/USD", // 🆕 Replaces display_name
"underlying_symbol_type": "forex" // 🆕 Replaces symbol_type
}
],
"msg_type": "active_symbols"
}Exemplos de código
async function getActiveSymbols() {
const request = {
active_symbols: "brief",
product_type: "basic",
landing_company_short: "svg"
};
ws.send(JSON.stringify(request));
ws.onmessage = (message) => {
const data = JSON.parse(message.data);
if (data.msg_type === "active_symbols") {
data.active_symbols.forEach(symbol => {
console.log(`Symbol: ${symbol.symbol}`);
console.log(`Type: ${symbol.symbol_type}`);
console.log(`Display: ${symbol.display_name}`);
});
}
};
}Alguma outra questão? Entrar em contacto