Logo hamster-bot Claude novo: MCP
RU EN PT

Carregando…

Como o MCP funciona no hamster-bot

O bot negocia sozinho no VPS, com as chaves e configurações que uma pessoa forneceu. O MCP abre uma segunda entrada no bot: por ela, um agente de IA no mesmo servidor controla o bot. A pessoa conversa com o agente pelo celular.

87 ferramentas

Pessoa Smartphone app do Claude ou claude.ai/code Navegador interface web do bot fornece as chaves da corretora, define as configurações Nuvem da Anthropic o modelo Claude toma as decisões, o Remote Control encaminha as mensagens do celular VPS Agente Claude Code sessão no tmux, regras no CLAUDE.md, diário, execução por /loop hamster-bot um processo, uma porta Interface web /htmx Servidor MCP /mcp, 87 ferramentas JSON API /api/*, controle de acesso Núcleo do bot Chaves, ajustes arquivos no disco Estratégias, testador conectores, assinatura Corretora Bybit, BitMEX, Binance e outras ordens, posições, saldos via API chaves, configurações, botões mensagens HTTPS só HTTPS de saída, sem portas de entrada chamada de ferramenta MCP 127.0.0.1 + Bearer api_token requisição do bot a si mesmo com o mesmo token as mesmas ações 1 2 3 4 5 6 comando via agente ajuste sem o agente limite da zona
Só o bot está ligado à corretora. O agente trabalha com o bot pelo MCP, e o celular trabalha com o agente pela nuvem da Anthropic, por isso não é preciso abrir uma porta no VPS para o celular.

Quem faz o quê#

Bot

Negocia 24 horas por dia conforme as configurações e guarda as chaves da corretora. Para funcionar, não precisa do agente nem do celular.

Agente

Pesquisa configurações no testador, inicia e edita estratégias, acompanha os bots e mantém um diário. Dá comandos de negociação pelas ferramentas do bot.

Celular

Uma janela para a sessão do agente. A própria sessão, seus arquivos e a conexão MCP ficam no VPS.

O caminho de um comando: “feche a posição de BTC”#

  1. 1A pessoa escreve uma mensagem no app do Claude. Ela vai para a nuvem da Anthropic por HTTPS.
  2. 2O Claude Code no VPS consulta a nuvem por conta própria e pega a mensagem. O modelo decide qual ferramenta chamar.
  3. 3O agente chama close_position em /mcp com o api_token. O bot verifica o token.
  4. 4O servidor MCP transforma a chamada em uma requisição comum a /api/* do mesmo bot e repassa o mesmo token. Por isso o MCP e a API têm a mesma lógica e as mesmas verificações.
  5. 5A API passa o comando ao núcleo do bot. O núcleo pega a chave dessa conta.
  6. 6O conector assina a requisição e a envia à corretora. O resultado volta pela mesma cadeia e aparece no celular.

O que acontece se uma das partes cair#

O que aconteceuBotAgente
Celular desligadoNegociaA sessão continua rodando no VPS
SSH fechadoNegociaContinua funcionando se foi iniciado no tmux
VPS sem rede por mais de 10 minutosNão consegue acessar a corretora até a rede voltarO processo claude remote-control termina e precisa ser iniciado de novo
Agente paradoNegocia com as configurações atuais, mas ninguém o acompanhaNão funciona
use_mcp desativadoNegociaNão consegue controlar o bot: /mcp responde 404

O que o agente pode fazer pelo MCP#

GrupoFerramentasExemplos
Testador42tester_run_mining, tester_run_batch, tester_portfolio_analysis
mais 39

tester_status, get_tester_config, save_tester_config, tester_exchanges, tester_exchange_symbols, list_tester_settings, get_tester_settings, draft_tester_settings, save_tester_settings, copy_tester_settings, delete_tester_settings, copy_tester_settings_to_folder, delete_tester_settings_matching, import_tester_settings, check_tester_settings, get_tester_settings_folder, set_tester_settings_folder, create_tester_settings_folder, delete_tester_settings_folder, tester_run_stress, tester_stop, tester_cancel_queued, tester_run_single, tester_wait, tester_wait_batch, tester_run_snapshot, tester_download_data, tester_data_coverage, tester_mining_robustness, tester_wizard_results, list_tester_files, read_tester_file, save_tester_file, delete_tester_file, tester_report_summaries, read_tester_report, send_tester_report_to_telegram, tester_publish_files, tester_publish

Bots10list_bots, get_balances, pause_bot, play_bot
mais 6

get_bot_bars, get_bot_state, pause_all_bots, play_all_bots, send_chart_to_telegram, send_position_to_telegram

Posições e ordens9list_positions, market_order, close_position
mais 6

list_orders, close_all_positions, reduce_positions, cancel_order, cancel_account_orders, cancel_all_orders

Contas8list_accounts, save_account, get_balance_history
mais 5

get_account, get_account_symbols, delete_account, get_account_info, compact_balance_history

Estratégias7save_strategy, create_strategy_from_tester, delete_strategy
mais 4

list_strategies, get_strategy, draft_strategy, copy_strategy

Sistema e logs7get_errors, read_log_file, update_program
mais 4

get_system_status, shutdown_program, get_log, list_log_files

Configurações4get_config, update_config, get_field_hints
mais 1

get_settings_schema

Das 87 ferramentas, 42 apenas leem dados (readOnlyHint), e 25 são marcadas como perigosas (destructiveHint): negociam, iniciam bots ou alteram dados de forma irreversível. São ordens a mercado, fechamento de posições, cancelamento de ordens, início de bots, salvamento e exclusão de estratégias e chaves, alteração da configuração, desligamento e atualização do programa. O testador trabalha com dados históricos e não negocia na corretora.

Limites de acesso#

  • O token dá direitos de proprietário. Com o api_token, as 87 ferramentas ficam disponíveis, inclusive negociação, exclusão de contas e desligamento do programa. Não existe modo somente leitura.
  • A confirmação depende do cliente. As ferramentas perigosas são apenas marcadas; quem deve perguntar à pessoa é o cliente MCP. No modo autônomo as permissões são dadas com antecedência, e o agente age sem perguntar.
  • O CLAUDE.md define regras, mas não protege. O agente segue os limites de risco e a proibição de sair da pasta como instruções. Se ele tiver um shell com o mesmo usuário do bot, tecnicamente pode ler os arquivos do bot.
  • O token nem sempre é necessário. Com o login pelo Telegram desativado, requisições a /mcp da mesma máquina passam sem token. Isso vale para qualquer processo local.
  • A interface web, a API e o MCP usam a mesma porta. Para um agente no mesmo VPS, o endereço 127.0.0.1 basta. De outra máquina o token trafega em texto puro, por isso pela internet é preciso um proxy HTTPS ou um túnel SSH.

Como executar no VPS#

  1. No settings_program.json do bot, sem reiniciar:

    "use_mcp": true
  2. Uma sessão que sobrevive ao fechamento do SSH:

    tmux new -s agent
  3. Conectar o agente ao bot:

    claude mcp add --transport http hamster-bot http://127.0.0.1:<porta>/mcp --header "Authorization: Bearer <api_token>"
  4. Abrir a sessão para o celular:

    claude remote-control --name "hamster-bot"
  5. No chat da sessão: trabalho autônomo por agendamento:

    /loop 6h Continue o trabalho conforme o CLAUDE.md

Detalhes da conexão#

O MCP vem desativado por padrão. Em vez de editar o arquivo, é possível ativá-lo pela API: POST /api/settings/config com o corpo { "use_mcp": true }.

Endereço: http://127.0.0.1:<porta>/mcp, transporte Streamable HTTP. De outra máquina, use o endereço do servidor em vez de 127.0.0.1.

Em vez de claude mcp add, a conexão pode ser descrita no arquivo .mcp.json do projeto:

{
  "mcpServers": {
    "hamster-bot": {
      "type": "http",
      "url": "http://127.0.0.1:5000/mcp",
      "headers": { "Authorization": "Bearer <api_token>" }
    }
  }
}

Outros clientes se conectam ao mesmo endereço se suportarem Streamable HTTP e cabeçalhos de requisição personalizados.

As regras de acesso são as mesmas da API (veja Acesso). Além do token, o cookie hamster-bot-token funciona com o login ativado. Uma requisição sem nenhum deles recebe 401.

Nomes de argumentos#

Todas as ferramentas usam os mesmos nomes: strategy — nome da estratégia do bot, account — nome da conta, folder — pasta de configurações do testador. Os nomes antigos são aceitos como sinônimos: name em vez de strategy em get_strategy, copy_strategy, delete_strategy, name em vez de account em get_account, get_account_symbols, delete_account, get_account_info, get_balance_history, compact_balance_history, path em vez de folder em set_tester_settings_folder, create_tester_settings_folder, delete_tester_settings_folder. Se não houver nem o nome principal nem o sinônimo, o erro indica o campo esperado. strategy em draft_strategy, draft_tester_settings e get_settings_schema é um código de estratégia (zigzag, mrs2), não um nome. Para configurações do testador, name é o nome do conjunto de configurações.

Um erro da API é devolvido ao agente como erro da ferramenta com o código e o texto, por exemplo HTTP 404: {"success":false,"error":"Strategy not found"}. Respostas muito longas são cortadas em 200.000 caracteres. read_tester_file devolve arquivos de texto em linhas inteiras: uma resposta longa termina com a dica ... [lines A-B of N; continue with offset=B]. Para CSV longos existem os parâmetros offset e limit (uma página de linhas), tail_lines (últimas N linhas), contains (apenas linhas com o texto) e columns (apenas as colunas necessárias); o cabeçalho do CSV é sempre mantido. list_tester_files aceita contains, offset e limit. Relatórios HTML são grandes, por isso para comparar execuções é melhor tester_report_summaries, e para detalhes de uma execução, read_tester_report.

Pesquisa no testador#

O agente pode pesquisar uma estratégia por conta própria. Uma ordem típica:

  1. get_field_hints — entender os campos das configurações da estratégia e da configuração do testador, inclusive a sintaxe de parameter_mining; get_settings_schema — quais campos a estratégia realmente lê: minerar um campo sem efeito gera linhas idênticas.
  2. create_tester_settings_folder — criar sua própria pasta para o experimento; copy_tester_settings_to_folder — copiar para ela as configurações necessárias. Depois, passar folder a todas as ferramentas do testador.
  3. draft_tester_settings e save_tester_settings — criar novas configurações para a corretora, o par e o timeframe desejados. Variantes de configurações existentes não precisam ser salvas: overrides as define na execução.
  4. save_tester_config — definir o período, as taxas, parameter_mining e um novo name_comment para o experimento; ativar report.enable_json_report. Para comparar com um bot real, coloque o início do período (StartDate) em um limite do time_frame da estratégia e não antes do início do bot: a estratégia trabalha a partir do primeiro candle do seu timeframe que abre em StartDate ou depois, então um início no meio de um candle de 4h adia as primeiras ordens para o candle seguinte. WarmupDays (padrão 30) apenas aquece os indicadores com o histórico anterior a StartDate: nesses dias a estratégia não negocia nem acumula estado, e a posição e as ordens do bot real não são restauradas do histórico. Se o par tiver menos dados que WarmupDays, a negociação começa mais tarde (com um aviso na resposta).
  5. tester_download_data — baixar os candles e aguardar o término em tester_status. O período pode ser definido com start e end, por padrão: início da configuração com aquecimento .. agora (não é preciso alterar a configuração). download.result mostra até que dia cada par realmente tem dados.
  6. tester_run_single — verificar uma combinação; tester_wait (ou wait_seconds ao iniciar) aguarda a execução e retorna métricas, avisos e caminhos dos relatórios. tester_run_batch — comparar várias variantes e verificá-las em vários períodos com uma chamada. Ou tester_run_mining — percorrer todas as combinações: resultados em <name_comment>/reports_history.csv (read_tester_file); queue=true coloca a mineração na fila após a atual.
  7. read_tester_report — analisar uma execução: a seção summary para comparação, resultados por par, meses, trades. Para um conjunto de estratégias — tester_portfolio_analysis: grupos T/CT, correlação, piores dias, contribuição de cada estratégia para o drawdown.
  8. tester_report_summaries, tester_run_stress e walk_forward na configuração — comparar as melhores variantes e verificar sua robustez.
  9. send_tester_report_to_telegram — enviar o relatório final ao usuário no Telegram, se ele pedir.

Uma estratégia por par#

Em uma conta, um par (basic.symbol) pode ter apenas uma estratégia, tanto na negociação real quanto no testador. Uma conta pode ter quantos pares quiser (até 200), e as estratégias neles podem ser diferentes ou iguais, mas o símbolo deve ser único entre as estratégias da conta. Uma estratégia em um par ocupado é salva, mas não inicia (no log aparece DUBLICATE SUMBOL ON API); verifique list_strategies por conta e par antes de save_strategy, copy_strategy (copie para outro par) e create_strategy_from_tester. Configurações do testador que rodam na mesma execução também precisam estar em pares diferentes; para comparar várias configurações em um par, execute cada uma separadamente (itens de tester_run_batch ou mineração com single_mode).

Reinvestimento e comparação de variantes#

O tamanho da posição por basic.balance_percentage_long/_short é calculado sobre o saldo atual, então o lucro é reinvestido e o PnL % anual fica inflado. Para comparar variantes e períodos de forma justa, desative o crescimento do tamanho de uma destas formas:

  1. basic.use_fix = true e basic.my_fix_balance = 50: cada ordem é calculada sobre 50 unidades da moeda de cotação (geralmente USDT), independentemente do saldo.
  2. basic.max_balance = 2000: enquanto o saldo for menor, o bot trabalha com o saldo real; com saldo de 2350 o tamanho é calculado sobre 2000, e acima do limite o reinvestimento para.
  3. basic.lot_long / basic.lot_short: um tamanho constante de ordem enviado à corretora.

Algumas estratégias podem mudar esse tamanho base pela própria lógica. Os parâmetros podem ser definidos pelos overrides da execução (set) ou minerados em parameter_mining.

As respostas de salvamento e execução contêm warnings: campos que as configurações não leem. check_tester_settings verifica assim a pasta inteira.

Passagem para a negociação e controle#

create_strategy_from_tester leva uma configuração verificada para o bot — a estratégia é criada pausada, e play_bot a inicia após a verificação. O agente avalia um bot real assim: depois que o dia fecha e os candles podem ser baixados, executa o testador com as mesmas configurações e no mesmo período (import_tester_settings copia a estratégia para a pasta do testador) e obtém as estatísticas completas — normalmente coincidem com a negociação real. O resultado efetivo é o histórico de saldo get_balance_history (gravado com monitoring.enabled ativado).

As instruções do servidor e as descrições das ferramentas explicam ao agente a regra principal da negociação real: a posição e as ordens não podem ficar sem controle. Uma estratégia pausada não as gerencia, por isso o desligamento segue apenas a ordem pausar → cancelar ordens → fechar a posição → excluir (delete_strategy com full=true faz isso sozinho).

Logs#

Cada bot (estratégia em um par) tem seu log: log_<data>_<Corretora> <conta> <par> <timeframe> <estratégia> <nome>.log — níveis, sinais, ordens colocadas e canceladas, preenchimentos, mudanças de posição e erros da estratégia; por ele se vê por que o bot negociou ou não. Cada conta tem log_<conta>_<data>.log: saldos e posições da corretora, respostas e erros da API da corretora, limitador de posições, close_by_margin. O log geral do programa é log_<data>.log (get_log), os logs do testador são TESTER_*.log. O formato da data nos nomes varia, por isso os arquivos são procurados pelo nome da estratégia ou da conta: list_log_files com contains, depois read_log_file.

Exemplos de uso#

Abaixo estão pedidos ao agente e as chamadas de ferramentas que ele faz. Os argumentos aparecem em JSON, como o cliente MCP os envia. A pasta lut_now, os nomes de configurações e as datas são exemplos.

Verificar uma variante do conjunto sem cópias de teste#

“O que acontece se eu dobrar as estratégias de tendência, mas sem passar de 10% por par, e desligar os shorts de C_MU? Verifique em dois períodos.”

tester_run_single {
  "settings": ["*"], "folder": "lut_now", "wait_seconds": 240,
  "overrides": [
    { "match": "T_*", "mul": { "basic.balance_percentage_long": 2, "basic.balance_percentage_short": 2 }, "cap_pct": 10 },
    { "match": "C_MU", "set": { "basic.use_short": false } }
  ],
  "periods": [["2026-05-01", "2026-08-01"], ["2026-08-01", "2026-10-26"]]
}

Os arquivos de configurações não mudam. A resposta de cada período traz summary (PnL, drawdowns, Ulcer, profit factor, trades, meses), caminhos dos relatórios, applied (o que foi alterado) e warnings. Em vez de uma máscara, você pode selecionar configurações por tag: { "tag": "hedge", "mul": { ... } }.

Comparar várias variantes com uma chamada#

tester_run_batch {
  "folder": "lut_now", "parallel": 2, "wait_seconds": 240,
  "periods": [["2026-05-01", "2026-08-01"], ["2026-08-01", "2026-10-26"]],
  "runs": [
    { "name": "base", "settings": ["*"] },
    { "name": "T x2", "settings": ["*"], "overrides": [{ "match": "T_*", "mul": { "basic.balance_percentage_long": 2 } }] },
    { "name": "sem L_X", "settings": ["*"], "overrides": [{ "match": "L_X", "exclude": true }] },
    { "name": "apenas long", "settings": ["*"], "sides": "long" }
  ]
}

Cada variante roda em cada período; a resposta é uma tabela de resultados. Sem wait_seconds, o agente aguarda o lote com tester_wait_batch.

Encontrar um parâmetro robusto em vários períodos#

“Encontre o depth de T_BTC, mas sem ajustar a um único período.”

  1. get_settings_schema { "strategy": "zz" } — zz.depth só tem efeito com zz.type = ZZ2; minerar um campo que a configuração não lê gera linhas idênticas.
  2. Mineração em três períodos (cada um é uma execução completa separada pela fila):

    tester_run_mining {
      "settings": ["T_BTC"], "folder": "lut_now",
      "config": { "name_comment": "MCP_depth", "parameter_mining": [{ "name": "settings[*].zz.depth", "start": 4, "end": 20, "step": 2 }], "...": "o restante como em get_tester_config" },
      "periods": [["2026-02-01", "2026-05-01"], ["2026-05-01", "2026-08-01"], ["2026-08-01", "2026-10-26"]]
    }

    A resposta contém report_folders de cada período e warnings (parâmetros inexistentes e sem efeito).

  3. Aguardar o término em tester_status, depois tester_mining_robustness { "folders": [...], "base": { "settings[*].zz.depth": 12 } } — ranking pelo platô de todos os períodos, posição do melhor ponto de cada período no ranking geral e os pontos que não são piores que o inicial em nenhum período.

Avaliar o hedge das estratégias de tendência no portfólio#

“As estratégias T ajudam as estratégias CT no drawdown?”

  1. Execução do conjunto com report.enable_json_report: true (a seção daily vem ativada por padrão).
  2. tester_portfolio_analysis { "path": "<report_json_path>", "groups": { "T": "T_*", "CT": "C_*" } } — correlação dos grupos, pior semana, PnL do grupo T nos piores dias de CT (offset_percent) e leave_one_out: quanto o drawdown do portfólio cresceria sem cada estratégia. Isso substitui uma execução separada sem cada estratégia.
  3. Ajustar o tamanho de T em relação ao restante do conjunto — mineração de portfólio sem single_mode: o parâmetro settings[T_*].basic.balance_percentage_long, com as linhas comparadas pelo MaxDrawdownPercent e UlcerIndex do portfólio.

Verificar uma pasta de configurações#

check_tester_settings { "folder": "lut_now" } — configurações com campos alterados que não têm efeito (seção de outra estratégia, campo de outro zz.type, use_* desativado, basic.leverage no testador). Os mesmos avisos chegam ao salvar configurações.

Repetir uma execução com um ajuste e entregar a variante ao usuário#

Cada execução salva run_snapshot_*.json com as configurações exatas. O agente o lê (read_tester_file), ajusta e executa tester_run_snapshot com o snapshot alterado — o arquivo não muda. Para que o usuário execute a variante por conta própria, o agente a salva em runs com save_tester_file: na interface web (Testador, aba “Resultados (arquivos)”) o arquivo tem os botões “Executar” e “Editar”.

Levar a configuração para a negociação e acompanhar o bot#

“Inicie T_BTC na conta demo e acompanhe.”

  1. list_accounts — encontrar a conta.
  2. create_strategy_from_tester { "name": "T_BTC", "folder": "lut_now", "account": "demo_bybit" } — a estratégia é criada pausada; o agente a verifica (get_strategy, warnings) e a inicia com play_bot.
  3. Controle durante o dia: list_bots, list_positions, list_orders; log da estratégia — list_log_files { "contains": "T_BTC" } e read_log_file; erros — get_errors.
  4. Após o fechamento do dia: import_tester_settings (a estratégia de get_strategy para a pasta do testador), tester_download_data, execução do testador no período passado — estatísticas completas que normalmente coincidem com a negociação real. O resultado efetivo é get_balance_history (com monitoring.enabled). Uma divergência é motivo para examinar o log da estratégia.
  5. Ajuste: verificar a alteração no testador, depois save_strategy — as alterações se aplicam imediatamente ao bot em execução.

Desligar uma estratégia#

delete_strategy { "name": "T_BTC", "full": true } — pausar, cancelar ordens, fechar a posição, excluir. Se as ordens ou a posição não forem removidas, a estratégia fica pausada e não é excluída: o agente verifica list_orders e list_positions e termina manualmente na mesma ordem, sem pular a pausa.

Enviar um relatório#

“Envie o relatório final para o Telegram” — send_tester_report_to_telegram { "path": "<report_path>", "caption": "melhor variante por drawdown" }. Só são enviados arquivos de relatório do testador, ao chat de notificações do testador.

Exemplos de pedidos ao agente:

  • “Encontre o comprimento do zigzag para BTCUSDT 1h na Bybit nos últimos três meses, verifique o melhor ponto em dois outros períodos e com um teste de estresse.”
  • “Sincronize a pasta lut_now com mrs-bybit e compare o conjunto com as estratégias T dobradas e sem elas por drawdown e Ulcer.”
  • “Quais estratégias de lut_now aumentam o drawdown do portfólio e quais o reduzem?”
  • “Leve a melhor variante para a conta demo, inicie-a e compare todo dia a negociação real com o testador.”

Exemplos: o que pedir ao agente

Fale com o agente em linguagem comum: ele escolhe as ferramentas, chama-as uma após a outra e explica o resultado.

Pesquisa no testador

«Ajuste os parâmetros da MRS2 para BTC no último ano e verifique os melhores com um teste de estresse»

Configura a otimização, executa, procura um platô e não um pico isolado, roda tester_run_stress e conta o que sobreviveu.

«Rode a e2e_zz em setembro e explique por que a estratégia ficou no prejuízo. Analise os trades: longs contra shorts, duração, MAE/MFE. Sugira uma mudança e teste-a»

Pega os trades de read_tester_report e encontra padrões sozinho: por exemplo, que os shorts dão prejuízo ou que os trades fecham antes do pico de MFE. Depois muda um parâmetro, roda de novo e mostra os números antes e depois.

«Encontre o melhor comprimento do zigzag por otimização e depois prove que não é sobreajuste: walk-forward e teste de estresse»

A otimização encontra a variante «perfeita», walk_forward verifica-a num período que o otimizador não viu e tester_run_stress, em condições de execução piores. Normalmente a melhor variante cai bastante em dados novos, e o agente mostra isso.

«Ajuste o zigzag para BTCUSDT 1h na Bybit nos últimos 3 meses e dê uma recomendação final»

O ciclo inteiro numa frase: dicas dos campos, configurações, download de dados, execuções, leitura dos resultados e conclusão.

«Teste a estratégia nos 10 principais pares da Bybit e mantenha os pares onde ela funciona de forma estável»

tester_exchange_symbols, configurações para vários pares, a seção by_symbol e o retorno mensal do relatório JSON.

«Mostre como o resultado depende da taxa e do slippage»

Otimização por TakerFee e SlippagePercent na configuração do testador. Mostra claramente por que uma estratégia com ótimo backtest perde dinheiro na negociação real.

«Compare as duas últimas execuções: onde a nova versão é melhor e onde é pior?»

Lê os relatórios JSON e decompõe a diferença por par, mês e drawdown.

«Copie a estratégia de BTC para SOL e rode-a no testador em seis meses»

Copia as configurações para outro par, baixa o histórico, roda o backtest e diz se vale a pena levá-la para a conta real.

«Sincronize a pasta lut_now com mrs-bybit e compare o conjunto com as estratégias T dobradas e sem elas por drawdown e Ulcer»

copy_tester_settings_to_folder e depois tester_run_batch com overrides — sem cópias de teste das configurações, todas as variantes numa só chamada.

«Quais estratégias da lut_now aumentam o drawdown do portfólio e quais o reduzem?»

tester_portfolio_analysis: correlação dos grupos, piores dias e leave_one_out — drawdown do portfólio sem cada estratégia, sem execuções extras.

«Ajuste o comprimento do zigzag, verifique o melhor ponto em outros dois períodos e com teste de estresse»

Otimização com periods e depois tester_mining_robustness mostra se o ponto se mantém em todos os períodos ou foi ajustado a um só.

Bot em operação: leitura e análise

«Resumo da manhã: saldo, posições abertas, erros da noite»

Saldos, posições, ordens, histórico de saldo e erros dos logs — uma frase em vez de cinco abas. No Claude Code dá para agendar o resumo com /loop.

«Por que o bot de ETH não abriu trade esta noite?»

Verifica o log e os erros da noite, o estado do bot e os filtros da estratégia e explica o motivo.

«Investigue os erros das últimas 24 horas»

Com get_errors e get_account_info encontra a causa — por exemplo, uma chave expirada ou falta de permissão para futuros — e explica em palavras simples.

«Verifique minhas estratégias em busca de configurações arriscadas»

Compara todas as estratégias com as dicas dos campos e aponta os riscos.

«Envie ao Telegram o gráfico e a posição de cada bot em drawdown»

Encontra esses bots e envia o gráfico e a posição deles ao Telegram.

Controle: com confirmação

Antes de ações reais o agente mostra o que vai fazer, e o cliente pede confirmação para cada ferramenta destrutiva, a menos que as permissões tenham sido dadas com antecedência (veja Limites de acesso).

«Crie uma estratégia real com os parâmetros encontrados, mas pausada»

Depois da pesquisa: create_strategy_from_tester leva a configuração verificada do testador para um bot pausado. Você revisa as configurações e inicia o bot por conta própria.

«Leve a melhor variante para a conta demo, inicie-a e compare todo dia a operação real com o testador»

Depois do fechamento do dia roda o testador com as mesmas configurações no mesmo período e compara com o histórico de saldo; uma divergência é analisada pelo log da estratégia.

«Desligue a estratégia T_BTC»

delete_strategy com full=true: pausa, cancelamento das ordens, fechamento da posição, exclusão — a posição nunca fica sem gerenciamento.

«Explique o que faz o parâmetro block_adds e ligue-o onde houver filtro de tendência»

Lê as dicas dos campos, encontra as estratégias certas e as ajusta.

«Pause todos os bots de altcoins e cancele as ordens deles»

Pausa e cancelamento de ordens — tudo com palavras.

«Reduza todas as posições da conta pela metade e pause os bots»

reduce_positions e pause_all_bots.