> ## 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.

# Backtest de rota

> POST /v1/opportunity-history/backtest — simulação com tempo de transferência e custos

`POST /v1/opportunity-history/backtest`

```json theme={null}
{
  "ticker": "BTC-USDT",
  "buy": "Binance",
  "sell": "KuCoin",
  "days": 30,
  "threshold": 5,
  "basis": "net",
  "capital": 1000,
  "transferMinutes": 20
}
```

| Campo | Regra |
| - | - |
| `ticker`, `buy`, `sell`, `days`, `threshold` | Mesmas regras de [`/stats`](/api-reference/endpoint/get-opportunity-history-stats). |
| `basis` | `net` (padrão) ou `gross`; define quando a operação entra. |
| `capital` | Em USD, de 10 a 10.000.000. |
| `transferMinutes` | De 0 a 1440. |

Resposta:

| Campo | Significado |
| - | - |
| `trades`, `completed`, `expired` | Operações simuladas e o desfecho de cada uma. |
| `unresolved` | Operação ainda em trânsito com a janela aberta no fim do histórico; não entra no resultado. |
| `skippedBusy` | Janelas que passaram inteiras com o capital em trânsito. |
| `skippedInfeasible` | Janelas só com amostras sem rede viável (`executable=false`). |
| `estimatedCosts` | Operações em que alguma taxa veio do valor padrão. |
| `grossUsd`, `netUsd`, `netPercent`, `winRate` | Resultado agregado; `netPercent` é sobre o capital. |
| `history` | Até 200 operações em ordem cronológica, com `entry`, `arrival`, `status`, `entrySpread`, `exitGrossSpread`, `netPercent`, `grossUsd`, `netUsd` e `costsEstimated`. |

As hipóteses (uma operação por janela, saída no spread da chegada e
expiradas com spread 0 pagando custos) estão em
[Duração das oportunidades e backtest](/opportunity-history#hipóteses-do-backtest).

Erros: 400 para corpo ou 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.