hw98_console_prompt.avif Teste de estratégias de trading com dados históricos

Backtest de portfólio confiável. Nível de pesquisa quant quant

hamster-bot/tester - Ferramenta avançada para testar seus sistemas de trading com dados históricos.

    hw98_console_prompt.avif Recursos do backtester:
  • 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 hw98_console_prompt.avif 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.

hw98_console_prompt.avif 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 hw98_console_prompt.avif pasta tester/data/{symbol}. Nessa pasta você também pode colocar seus próprios dados em formato CSV.


hw98_console_prompt.avif 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.


hw98_console_prompt.avif Relatório

Ao final do teste, um relatório HTML detalhado é salvo na hw98_console_prompt.avif pasta tester/report.
Também é adicionada uma linha em reports_history.csv com o resumo do teste, para facilitar a busca das melhores combinações de parâmetros durante a otimização.

    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
    Hamster Bot Backtesting
  • Gráficos de candles individuais para cada estratégia, com marcações das operações e visualização dos indicadores TA da estratégia. Hamster Bot Backtesting
  • Gráfico de saldo de margem (considerando todas as posições abertas e PnL não realizado) e gráfico de saldo Wallet. Hamster Bot Backtesting
  • 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)Hamster Bot Backtesting
  • Tabelas com a lista completa de operações por estratégia. Hamster Bot Backtesting
  • 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.Hamster Bot Backtesting


hw98_console_prompt.avif Parâmetros do testador

arquivo: config_tester.json Você pode editar esse arquivo em qualquer editor de texto.
name_comment - comentário do teste, para facilitar a navegação nos relatórios
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%). Taxa padrão da BYBIT: 0.00036 = 0,0360%. (guia para reduzir bastante as taxas)
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)
max_parallel_runs - quantidade de execuções paralelas do testador durante a otimização de parâmetros. Se o computador suportar, é possível paralelizar sem perda de velocidade por cálculo.

Hamster Bot Backtesting

arquivo: config_tester.json/report Configuração do conteúdo do relatório:
chart_ohlc_height - altura do gráfico OHLC em pixels
chart_balance_height - altura do gráfico de saldo em pixels
chart_position_height - altura do gráfico de tamanho das posições abertas em pixels
include_chart_ohlc - incluir gráfico OHLC no relatório (true/false)
include_chart_balance - incluir gráfico de saldo no relatório (true/false)
include_chart_position - incluir gráfico de tamanho das posições no relatório (true/false)
include_strategy_settings - incluir configurações da estratégia no relatório (true/false)

Hamster Bot Backtesting


hw98_console_prompt.avif Otimizador (varredura de parâmetros)

arquivo: config_tester.json/parameter_mining Configuração do otimizador:
Por padrão, isso é uma lista vazia []. Preencha com entradas como {"name":"nome_do_parametro", "start": 1, "end": 10, "step": 0.1, "values": ["string1", "string2"]}

name - nome do parâmetro a otimizar. Quase qualquer configuração do bot pode ser usada. O bot tem 4 grupos de configuração.
1) Configurações de estratégia (arquivos .json em settings_strategy). Aqui você ajusta par, timeframe, gestão de depósito e opções da estratégia.
Exemplo: settings[*].mrs2.ma_long.type - otimizar type da ordem de entrada da estratégia mrs2
2) Configurações da chave API da conta (arquivos .json em settings_accounts). Aqui você ajusta take profit global por margem e limite de posições abertas simultaneamente.
Exemplo: account[*].close_by_margin.profit - otimizar profit em close_by_margin
3) Configurações globais do programa do bot (settings_program.json). Aqui você ajusta opções globais, como multiplicador de risco.
Exemplo: settings_program.risk_multiplier - otimizar risk_multiplier
4) Configurações globais do testador (config_tester.json). Aqui você pode otimizar parâmetros do testador, como comissões.
Exemplo: config_tester.MakerFee - otimizar MakerFee

start - valor inicial
end - valor final
step - passo de variação
values - lista de valores em string para varrer. Usado para parâmetros textuais, por exemplo tipo de média móvel ["SMA", "EMA"] ou fonte de preço ["close", "open", "ohlc4"]. O mesmo método também pode ser usado para varrer pares ao testar um arquivo por vez (depois será oferecida uma forma mais prática para varredura de pares).

Hamster Bot Backtesting
Se você definir dois parâmetros de 1 a 10 com passo 1, o testador fará 100 combinações (10 variações do primeiro parâmetro * 10 variações do segundo). Os resultados são salvos em relatórios HTML separados e na tabela consolidada (reports_history.csv). Isso ajuda a encontrar rapidamente as melhores combinações de parâmetros para suas estratégias.

Além disso, todas as estratégias do bot estão disponíveis em formato PineScript para testes no TradingView.