Teste de estratégias de trading com dados históricos
Backtest de portfólio confiável. Nível de pesquisa quant
hamster-bot/tester - Ferramenta avançada para testar seus sistemas de trading com dados históricos.
- Execução simultânea de várias estratégias de tipos diferentes em diferentes timeframes.
- Tudo isso com saldo compartilhado, para entender como as estratégias coexistem na mesma carteira em tempo real.
- Suporte a dados de ticks. Simulação do comportamento da estratégia dentro do candle como em negociação real.
- Sem limites para dados de mercado de entrada. Testes em qualquer período histórico.
- Teste de lógica complexa própria que é difícil reproduzir com precisão em soluções prontas sem gambiarras.
- Os backtests rodam no mesmo código de produção usado pelo bot em tempo real.
Implementado como um conector separado
para uma "bolsa" (objeto Mock que substitui a bolsa real). Assim é possível testar todo o código já escrito do bot. O bot pensa que está trabalhando em uma bolsa real (envia ordens, recebe saldo e informações de posições). E essa bolsa virtual calcula tudo e gera o relatório.
Dados de mercado para teste
As corretoras de criptomoedas compartilham publicamente dados históricos de mercado. Exemplos: public.bybit.com, data.binance.vision, public.bitmex.com.
O testador baixa o intervalo necessário de dados de trades e monta os candles para o bot. Antes do início do teste, o testador também baixa dados extras para aquecer todos os indicadores de TA usados pela estratégia.
Os dados são salvos na
pasta tester/data/{symbol}. Nessa pasta você também pode colocar seus próprios dados em formato CSV.
Comportamento do testador
Do ponto de vista do bot, o testador é apenas mais uma bolsa. O bot se conecta a ela e começa a receber candles, enviar ordens etc. Enquanto isso, o testador apenas emula o comportamento de uma bolsa real.
Saldo é compartilhado entre todas as estratégias. Comportamento como em futuros BYBIT/BINANCE com margem cruzada. O bot pode solicitar saldo Wallet ou Margin. O saldo de margem é calculado considerando todas as posições abertas e o PnL não realizado.
Comportamento real do preço. Quando o bot solicita o candle atual ainda não finalizado, o testador retorna o preço de trade dos dados de ticks (até acabarem os dados de mercado dentro do candle e passar para o próximo). Assim, estratégias dependentes de preço intrabar (por exemplo, slippage, trailing stops etc.) funcionam corretamente.
Relatório
Ao final do teste, um relatório HTML detalhado é salvo na
pasta tester/report.
-
Conteúdo do relatório:
- Métricas gerais de todo o sistema de trading:
- Saldo inicial e saldo final
- Lucro/prejuízo total em USDT e em %
- Máximo drawdown
- Número de trades
- Percentual de trades lucrativos
- Profit Factor

- Gráficos de candles individuais para cada estratégia, com marcações das operações e visualização dos indicadores TA da estratégia.

- Gráfico de saldo de margem (considerando todas as posições abertas e PnL não realizado) e gráfico de saldo Wallet.

- Gráfico que mostra o tamanho total das posições abertas em USDT (e uma linha em % em eixo separado mostrando a relação entre o total das posições abertas e o saldo de Margem)

- Tabelas com a lista completa de operações por estratégia.

- Lista de configurações das estratégias e parâmetros do testador.
- Resumo consolidado de todas as estratégias. Volume negociado e comissões pagas.

Parâmetros do testador
arquivo: config_tester.json
name_comment - comentário do teste
InitialBalance - saldo inicial para o backtest
StartDate - data de início do backtest no formato 2026-02-03T00:00:00
EndDate - data de término do backtest no formato 2026-02-13T00:00:00
WarmupDays - quantidade de dias de aquecimento antes do início do backtest
MakerFee - taxa maker (0.0001 = 0.01%)
TakerFee - taxa taker (0.0001 = 0.01%)
SlippagePercent - slippage para ordens a mercado (0.0001 = 0.01%)
UpdateData - atualizar dados antes do backtest (true/false)
use_logger - usar logger. Se desativado, acelera o backtest (true/false)
Além disso, todas as estratégias do bot estão disponíveis em formato PineScript para testes no TradingView.