FAQ
Perguntas frequentes sobre a API, sistema de estratégia, modelo de execução, preços, e roadmap.
API e Autenticação
Onde eu gero minha API key?
No Console em console.emidlabs.com, navegue até "API Keys" e clique em "Generate New Key". A key é mostrada só uma vez — guarde com segurança.
Como eu passo a API key nas requisições?
Inclua ela no header x-api-key: x-api-key: em_SUA_KEY. Não há outros métodos de autenticação.
Posso ter várias API keys?
Sim. Você pode gerar várias keys por conta e rotulá-las por projeto ou ambiente.
Existe um limite de taxa?
Sim. Limites de taxa dependem do seu plano. Se você excedê-los, a API retorna um status 429. Reduza o ritmo e tente de novo com backoff exponencial.
Strategy System
O que é strategySnapshotJson?
É o objeto da sua estratégia, incluído diretamente como um objeto JSON aninhado no corpo da requisição.
Posso usar YAML pra estratégias?
Não. A API só aceita JSON. YAML pode aparecer em documentação mais antiga ou ferramentas internas, mas o contrato da API é JSON.
Inputs podem referenciar outros inputs?
Sim, contanto que não haja referências circulares. Um input pode referenciar qualquer input definido antes dele no bloco inputs.
O que acontece se uma condition referencia um input indefinido?
A API retorna um erro 400 com código invalid_strategy e uma mensagem identificando a variável indefinida.
Posso usar várias conditions no bloco decision?
Sim. A expressão de entrada de decision pode referenciar score e qualquer condition definida pelo nome, combinadas com operadores AND/OR.
Execução e Resultados
O que "entrada no fechamento" significa exatamente?
Quando a regra de decision avalia pra true no candle N, o trade é aberto no preço de fechamento do candle N — não na abertura do próximo candle.
Por que os resultados estão em unidades de R e não em dólares?
Unidades de R representam unidades de risco, não moeda. Isso torna os resultados portáveis: o mesmo resultado em R se aplica independente do tamanho da conta ou dimensionamento de posição. Também mantém o foco no edge estatístico em vez do lucro absoluto.
Por que avgLossR costuma ser -1.0?
Por padrão (quando uma estratégia omite riskManagement), o stop-loss é definido em exatamente 1% da entrada, o que equivale a -1R, então toda perda é exatamente -1R. Se a estratégia configura um riskManagement.stopLoss customizado (ex: baseado em ATR), a magnitude da perda pode variar por trade e avgLossR deixa de ser exatamente -1.0.
Uma estratégia pode operar short?
Sim. Defina configuration.direction como "short" (o padrão é "long"). Um único backtest opera uma direção, não as duas ao mesmo tempo — decision.entry/exit e riskManagement mantêm o mesmo significado dos dois jeitos; só o posicionamento de preço de stop-loss/take-profit e o sinal do PnL se invertem.
Como bothHit é tratado?
Se tanto o nível de stop-loss quanto o de take-profit são atingidos dentro do mesmo candle (usando a máxima e a mínima), o engine assume conservadoramente que o stop-loss disparou primeiro. Essa é a suposição de pior caso.
Preços e Créditos
O que são créditos?
Créditos são a unidade de consumo de infraestrutura. Cada backtest consome créditos proporcionais ao número de candles processados (determinado pelo par de ativo, timeframe, e intervalo de datas).
Como eu estimo créditos antes de rodar um backtest?
O Console mostra uma estimativa de consumo de créditos antes da submissão, baseada no par de ativo, timeframe, e intervalo de datas. Tabelas detalhadas de consumo estão disponíveis na documentação de preços.
O que acontece se eu ficar sem créditos?
A API retorna um erro 402 insufficient_credits. O backtest não é executado. Você pode comprar mais créditos no Console.
Créditos expiram?
Créditos de assinatura mensal resetam a cada ciclo de cobrança. Recargas de crédito avulsas não expiram.
Dados e Limitações
De onde vêm os dados de mercado?
Todo dado histórico tem origem na Coinbase. Dados OHLCV são armazenados no servidor — você não precisa baixá-los ou gerenciá-los.
Taxas de trading estão incluídas nos resultados de backtest?
Não. O engine de backtest não simula taxas ou slippage. Os resultados representam edge bruto assumindo execução perfeita nos preços especificados.
Posso rodar um backtest em ações ou futuros?
Ainda não. Atualmente só pares de criptomoeda na Coinbase são suportados. Mercados adicionais estão planejados no roadmap.
Ainda tem dúvidas?
Se sua pergunta não foi respondida aqui, você pode falar com o time pelo canal de suporte do Console ou pelo fórum da comunidade.
id do backtest no seu pedido de suporte. Isso permite que o time inspecione a execução específica.