/funding-rates no aplicativo e atende Binance, BingX, BitMEX,
Gate.io e MEXC. A coleta começa na inicialização do backend, com ciclos de cinco
minutos. ENABLED_FUNDING_RATES=false (ou 0) desativa a coleta.
Taxa e APR
fundingRate é uma fração: 0.0001 corresponde a 0,01% por pagamento.
O APR é percentual e segue a fórmula:
null, nunca por zero. Intervalo não confirmado
impede o cálculo do APR e coloca a linha ao final do ranking.
Histórico e atualização
O histórico começa na implantação, sem importação retroativa. MongoDB mantém a primeira observação válida de cada janela UTC de 15 minutos durante 30 dias. Essas observações não são pagamentos liquidados. O gráfico apresenta APR observado em períodos de 24 horas, sete ou 30 dias. Falhas de uma exchange preservam seu último snapshot com o timestamp original. Após 15 minutos, os dados são marcados como desatualizados. Reinícios recuperam o último snapshot persistido. O histórico não cria pontos novos a partir de snapshots antigos. Falhas de MongoDB são registradas; o ranking em memória continua disponível. Consultas de histórico sem banco retornam 503. As coleçõesfunding_rates_latest e funding_rate_history e seus índices são
criadas automaticamente. O usuário MongoDB precisa poder criar índices. A
retenção usa TTL e a consulta também exclui dados expirados, pois a remoção TTL
é assíncrona. O processo deve ter um único coletor ativo por ambiente.
Fontes e limitações por exchange
Fontes oficiais verificadas em 17/09/2026:- Binance USDⓈ-M:
premiumIndexefundingInfo.fundingIntervalHours. O endpoint de intervalo documenta contratos com ajustes; ausência do contrato mantém APR indisponível, sem assumir oito horas. - Gate.io:
funding_intervalem segundos efunding_next_applyno contrato USDT. - BitMEX: contratos perpétuos ativos,
fundingIntervalem duração ISO 8601 temporal,fundingTimestampefundingRate. Formatos não reconhecidos não recebem intervalo presumido. - MEXC: ticker e
funding_rate/{symbol},collectCycleem horas enextSettleTimeem milissegundos. Enriquecimento limitado a oito requisições por segundo; falhas deixam campos indisponíveis. - BingX:
premiumIndexefundingRate. A diferença positiva entrefundingTimeenextFundingTimena mesma resposta é uma derivação da integração (derived_schedule), não um campo explícito de intervalo. Respostas sem ambos os campos deixam APR indisponível.
API e verificação
Testes de adaptadores usam fixtures, sem rede. Para validar persistência em MongoDB descartável, executeRUN_FUNDING_MONGO_TESTS=1 go test ./internal/infra/db -run TestFunding.
Sem MONGO_URI, o helper de testes inicia um container MongoDB. Não use banco de produção.