> ## Documentation Index
> Fetch the complete documentation index at: https://docs.arbitragem-crypto.cloud/llms.txt
> Use this file to discover all available pages before exploring further.

# Duração das oportunidades

> GET /v1/opportunity-history/stats — janelas de spread por rota

`GET /v1/opportunity-history/stats?ticker=BTC-USDT&buy=Binance&sell=KuCoin&days=30&threshold=5&basis=net`

| Parâmetro | Comportamento |
| - | - |
| `ticker` | Obrigatório; `BTC-USDT` ou `BTC/USDT`, até 40 caracteres. |
| `buy` | Obrigatório; exchange de compra suportada (sem diferenciar maiúsculas). |
| `sell` | Obrigatório; exchange de venda suportada, diferente de `buy`. |
| `days` | `7`, `30` ou `90`; padrão `7`. |
| `threshold` | Spread mínimo em %, de 4 a 50; padrão `4`. |
| `basis` | `gross` (padrão) ou `net`. |

Principais campos da resposta:

| Campo | Significado |
| - | - |
| `episodes` | Número de janelas em que o spread ficou ≥ `threshold`. |
| `avgDurationSeconds`, `medianDurationSeconds`, `p90DurationSeconds`, `maxDurationSeconds` | Duração das janelas. O p90 usa o método nearest-rank. |
| `durationBuckets` | Contagem por faixa: `<1m`, `1-5m`, `5-15m`, `15-30m`, `30-60m`, `>60m`. |
| `hourlyIncidenceUtc` | 24 posições com o número de janelas iniciadas em cada hora UTC. |
| `maxSpread`, `avgSpread` | Sobre todas as amostras do período, na base escolhida. |
| `samples`, `firstSample`, `lastSample`, `resolutionSeconds` | Cobertura do histórico. |
| `recentEpisodes` | Até 50 janelas, da mais recente para a mais antiga. |
| `suggestedTransfer` | `{ network, confirmations, minutes }` ou `null`. |

Uma rota sem histórico retorna `200` com `samples: 0` e `episodes: 0`. As
limitações da fonte e o critério de janela estão em
[Duração das oportunidades e backtest](/opportunity-history).

Erros: 400 para parâmetros inválidos, 429 pelo limitador de arbitragem e 503
quando a consulta ao MongoDB falha.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.