QuantBrasil
Documentação

quantbrasil screening run

Executa screening de indicadores a partir de um ScreenerRequest JSON

Sintaxe

quantbrasil screening run --query-file <path>

Esta é uma operação de leitura. Modos de saída: json, human.

Argumentos e opções

NomeTipoObrigatórioDescriçãoPadrão
--system <slug>OpçãoNãoSlug da carteira do sistema
--watchlist <id>OpçãoNãoID da watchlist
--holding <id>OpçãoNãoID da carteira
--query-file <path>OpçãoSimCaminho para um ScreenerRequest JSON completo, ou - para stdin
--limit <limit>OpçãoNãoSobrescreve o limit de topo do ScreenerRequest
--sort <sort>OpçãoNãoSobrescreve o sort de topo do ScreenerRequest
--timeframe <timeframe>OpçãoNãoSobrescreve o timeframe de todos os indicadores da consulta
--offset-shift <candles>OpçãoNãoSoma um deslocamento ao offset de todos os indicadores
--jsonOpçãoNãoExibe saída JSON
--compactOpçãoNãoSaída JSON compacta para agentes

Exemplos

quantbrasil screening run --system acoes-mais-liquidas --query-file ./screening.json
quantbrasil screening run --watchlist 93 --query-file ./screening.json --limit 25
quantbrasil screening run --system acoes-mais-liquidas --query-file ./setup-123.json --timeframe H2
quantbrasil screening run --system acoes-mais-liquidas --query-file ./setup-123.json --timeframe H2 --offset-shift 1
cat screening.json | quantbrasil screening run --holding 182 --query-file - --sort ticker

Saída (--json)

Estrutura da resposta retornada com --json:

export interface ScreeningRunResponse {
  ok: boolean;
  summary_markdown: string;
  universe: ScreeningUniverseOut;
  result: ScreenerResponse;
}

export interface ScreeningUniverseOut {
  id: number;
  name: string;
  kind: "SYSTEM" | "WATCHLIST" | "HOLDING";
  slug: string | null;
  symbol_count: number;
}

export interface ScreenerResponse {
  count: number;
  evaluated_count: number | null;
  skipped_count: number | null;
  skipped: JsonValue[] | null;
  results: ScreenerResultItem[];
}

export interface ScreenerResultItem {
  ticker: string;
  price: number;
  indicators: Record<string, IndicatorResult>;
}

export interface IndicatorResult {
  value: number;
  display_name: string;
  unit: string | null;
  context: { [key: string]: JsonValue } | null;
}

Exemplo de resposta

{
  "ok": true,
  "summary_markdown": "1 ativo atende aos critérios do screening.",
  "universe": {
    "id": 1,
    "name": "Ações Mais Líquidas",
    "kind": "SYSTEM",
    "slug": "acoes-mais-liquidas",
    "symbol_count": 250
  },
  "result": {
    "count": 1,
    "evaluated_count": 250,
    "skipped_count": 0,
    "skipped": [],
    "results": [
      {
        "ticker": "PETR4",
        "price": 37.61,
        "indicators": {
          "rsi": {
            "value": 28.4,
            "display_name": "IFR",
            "unit": null,
            "context": null
          }
        }
      }
    ]
  }
}

Saída (--compact)

Estrutura da resposta retornada com --compact:

export interface ScreeningRunCompactOutput {
  ok: boolean;
  universe: ScreeningRunCompactUniverse;
  result: ScreeningRunCompactResult;
}

export interface ScreeningRunCompactUniverse {
  slug?: string;
  id?: number;
  name: string;
  symbol_count: number;
}

export interface ScreeningRunCompactResult {
  count: number;
  evaluated_count?: number;
  skipped_count?: number;
  skipped?: JsonValue[];
  results: ScreeningRunCompactResultRow[];
}

export interface ScreeningRunCompactResultRow {
  ticker: string;
  price: number;
  indicators: Record<string, number>;
}

Exemplo de resposta

{
  "ok": true,
  "universe": {
    "slug": "acoes-mais-liquidas",
    "name": "Ações Mais Líquidas",
    "symbol_count": 250
  },
  "result": {
    "count": 1,
    "evaluated_count": 250,
    "skipped_count": 0,
    "skipped": [],
    "results": [
      {
        "ticker": "PETR4",
        "price": 37.61,
        "indicators": {
          "rsi": 28.4
        }
      }
    ]
  }
}