How to Build an FX Trading Agent with NVIDIA NemoClaw and FXMacroData banner image

Implementation

How-To Guides

How to Build an FX Trading Agent with NVIDIA NemoClaw and FXMacroData

Run an always-on, sandboxed FX trading agent using NVIDIA NemoClaw and OpenClaw. Connect FXMacroData's macro API to a secure Nemotron-backed agent that monitors inflation prints, policy decisions, and release calendars — and alerts you on Telegram when macro surprises hit your thresholds.

Também disponível em English

Por que NemoClaw e FXMacroData pertencem juntos

NVIDIA NemoClaw é uma pilha de referência de código aberto que gira OpenClaw um agente de IA auto-hospedado, sempre ativo em um tempo de execução endurecido e em sandbox com o suporte da infraestrutura de inferência da NVIDIA. O OpenClaw oferece uma IA que funciona 24 horas por dia em sua máquina, se conecta a aplicativos de bate-papo como Telegram e WhatsApp e pode executar código, chamar APIs e agir sobre informações de forma autônoma. O NemoClaw envolve esse agente em uma sandbox segura (Landlock + seccomp + namespace de rede), gerencia o ponto final do modelo e adiciona onboarding guiado que o leva de zero para executar em um único comando de terminal.

Para o comércio de FX e pesquisa macro, essa combinação é convincente. A maioria dos fluxos de trabalho de agentes de IA cai em um dos dois modos: você faz uma pergunta, você recebe uma resposta. impressões de inflação- Não . decisões de política do banco central, e movimentos de taxa de câmbio em relação aos seus critérios, e Alerta-te Quando algo acontece que corresponde a uma borda predefinida. Servidor MCP O relatório abrange 18 moedas com taxas de juro, IPC, PIB, emprego, balanças comerciais, posicionamento COT e muito mais.

Este guia passa pela configuração do NemoClaw, dando ao seu agente acesso ao FXMacroData, escrevendo uma habilidade de monitoramento reutilizável e executando o primeiro alerta de surpresa macro de ponta a ponta em USD/JPY- Não .

Aviso Alfa
NemoClaw está disponível como uma prévia inicial a partir de março de 2026. Documentação NemoClaw para as últimas etapas de incorporação.

Como a pilha se encaixa

Antes de mergulhar na configuração, ajuda a entender o que cada camada faz:

  • OpenClaw é o próprio agente um assistente de IA auto-hospedado que funciona continuamente, se conecta aos seus canais de bate-papo e pode executar comandos de shell, escrever e executar código, chamar APIs e lembrar o contexto em todas as sessões.
  • NemoClaw é o wrapper de implantação seguro. Instala o NVIDIA OpenShell, cria um contêiner sandboxado para o OpenClaw, configura inferência gerenciada através da API da NVIDia (modelos Nemotron) e fornece o nemoclaw CLI para gerir todo o ambiente.
  • FXMacroData é a camada de dados. Seu agente chama a API REST FXMacroData para ler o histórico de anúncios macro, previsões, taxas de câmbio spot, dados COT e eventos de calendário de lançamento. A API é estruturada, versão e sempre retorna dados com suporte do Firestore sem raspagem, sem volatilidade de terceiros no momento do pedido.

O fluxo típico uma vez que você tem a pilha em execução:

You (Telegram)  →  OpenClaw agent  →  FXMacroData API
                         ↓
               Python script inside sandbox
                         ↓
               Result / alert  →  You (Telegram)

O seu agente vive numa sandbox. Ele chama FXMacroData via HTTPS através da política de rede gerenciada da sandbox . Você interage com ele a partir do seu telefone ou desktop através do Telegram. A camada de segurança NemoClaw significa que, mesmo que o agente seja comprometido ou alimentado com um prompt ruim, ele não pode alcançar destinos de rede arbitrários ou acessar o seu sistema de arquivos host apenas as regras de saída que você aprovou durante o embarque.


Requisitos prévios

  • Linux, macOS (Apple Silicon) ou Windows WSL2 com Docker instalado e em execução.
  • Node.js 22.16+ e npm 10+ (o instalador NemoClaw configura automaticamente se faltarem).
  • Uma conta do Telegram (o canal mais rápido para testar com um bot token leva cerca de dois minutos para criar via @BotFather)).
  • Uma chave API da NVIDIA construção.nvidia.com para inferência de modelo Nemotron, ou uma chave Anthropic/OpenAI se preferir fornecer seu próprio modelo.
  • Uma chave de API do FXMacroData do Gestão das APIs Os dados em USD estão disponíveis no nível gratuito; o acesso em várias moedas requer um plano pago.

Passo 1: Instale NemoClaw e instale o OpenClaw

Execute o instalador NemoClaw. Ele puxa o Node.js via nvm se você não tiver, instala o CLI NemoCrow e inicia o assistente interativo de bordo:

curl -fsSL https://www.nvidia.com/nemoclaw.sh | bash

O assistente pede para você nomear seu assistente, escolher um provedor de inferência (selecione NVIDIA Endpoints for Nemotron), e colar sua chave API NVIDia.

──────────────────────────────────────────────────────
Sandbox      fx-agent (Landlock + seccomp + netns)
Model        nvidia/nemotron-3-super-120b-a12b (NVIDIA Endpoints)
──────────────────────────────────────────────────────
Run:   nemoclaw fx-agent connect
Status: nemoclaw fx-agent status
Logs:   nemoclaw fx-agent logs --follow

Conecte-se à caixa de areia para verificar se o agente está em execução:

nemoclaw fx-agent connect

Dentro da caixa de areia, abra a interface do terminal OpenClaw e envie um rápido olá:

openclaw tui

Passo 2: Conecte um canal do Telegram

Ficando dentro do shell da sandbox, configure o Telegram para que você possa enviar mensagens ao agente do seu telefone. @BotFather no Telegram, então:

# Inside the nemoclaw sandbox shell
openclaw channel add telegram

Siga as instruções para colar seu bot token e seu ID de usuário pessoal do Telegram (o agente restringe as mensagens recebidas à lista de permissões que você fornece). hello para o bot do Telegram você deve receber uma resposta do agente dentro de alguns segundos.


Passo 3: Expor FXMacroData ao agente

A caixa de areia tem acesso de rede de saída por padrão para HTTPS na porta 443. https://fxmacrodata.com/api/v1O que você precisa é de tornar sua chave de API disponível dentro da sandbox sem que ela apareça em scripts verificados no controle de versão.

De fora da caixa de areia, define o segredo usando o gerenciador de segredos NemoClaw:

nemoclaw fx-agent secret set FXMD_API_KEY your_api_key_here

A sandbox injeta isso como uma variável de ambiente no início. Qualquer script que o agente execute dentro do contêiner pode lê-lo com os.environ["FXMD_API_KEY"], e nunca é escrito no disco ou registrado.

Para verificar se a chave está ligada corretamente, pergunte ao agente do Telegram:

Write a one-liner Python command that fetches the latest USD inflation announcement
from https://fxmacrodata.com/api/v1/announcements/usd/inflation?api_key=$FXMD_API_KEY
and prints the value and date. Run it.

O agente escreverá o roteiro, executá-lo dentro da caixa de areia, e devolverá a última IPC dos EUA leitura que confirme a conectividade de ponta a ponta.


Passo 4: Escreva a habilidade de monitoramento de FX

O sistema de habilidades do OpenClaw permite que você empacete recursos de agentes reutilizáveis como arquivos YAML. Uma habilidade é uma descrição que o agente lê na inicialização; quando você pede para fazer algo que corresponde à habilidade, ele sabe como proceder sem que você reexplicie o fluxo de trabalho toda vez.

Crie um novo arquivo de habilidade dentro da caixa de areia.

cat > ~/.openclaw/skills/fxmacrodata.md <<'EOF'
# FXMacroData — Macro Surprise Monitor

## Purpose
Query the FXMacroData API to retrieve macro announcement data, compare actuals
to consensus forecasts, and surface surprises relevant to FX trading.

## API basics
- Base URL: https://fxmacrodata.com/api/v1
- Auth: query param ?api_key=$FXMD_API_KEY (already injected as env var)
- Key endpoint families:
  /announcements/{currency}/{indicator}   — historical prints + forecasts
  /predictions/{currency}/{indicator}     — consensus and model forecasts
  /calendar/{currency}                    — upcoming release schedule
  /forex                                  — spot rates

## Supported currencies
USD, EUR, GBP, JPY, AUD, CAD, CHF, NZD, HKD, SGD, NOK, PLN, SEK, DKK, BRL, KRW, MXN

## Workflow: Macro surprise scan
1. Fetch the last N announcements for (currency, indicator)
2. Fetch matching predictions to get the market consensus
3. Compute surprise = actual - consensus
4. Sort by abs(surprise) descending
5. Report the top surprises with their dates

## Workflow: Calendar alert
1. Fetch /calendar/{currency} to find upcoming releases in the next N days
2. For each release, note indicator, scheduled time (UTC), and prior value
3. Alert the user with a formatted summary

## Output format
Use a clean text table. Include indicator name, date, actual, consensus, surprise
in bps/pp, and direction (beat/miss). Keep it under 20 lines unless the user asks
for more.
EOF

O agente lê todos os ficheiros de habilidades . ~/.openclaw/skills/ Depois de adicionar o arquivo, reinicie a sessão dentro da caixa de areia:

openclaw session restart

Passo 5: Construir e executar a varredura surpresa da inflação

Agora, teste a habilidade de ponta a ponta.

Run a macro surprise scan on USD inflation for the last 12 prints.
Show me the biggest surprises and tell me whether each was a beat or a miss.

O agente escreverá e executará um script Python dentro da sandbox.

import os, requests

API  = "https://fxmacrodata.com/api/v1"
KEY  = os.environ["FXMD_API_KEY"]

def get(path, **params):
    r = requests.get(f"{API}{path}", params={"api_key": KEY, **params}, timeout=15)
    r.raise_for_status()
    return r.json()

actuals    = get("/announcements/usd/inflation")["data"][-12:]
pred_index = {
    g["announcement_id"]: g["predictions"]
    for g in get("/predictions/usd/inflation")["data"]
}

rows = []
for a in actuals:
    preds = pred_index.get(a["announcement_id"], [])
    consensus = next(
        (p["predicted_value"] for p in preds if p["prediction_type"] == "market_consensus"),
        None,
    )
    if consensus is None or a.get("value") is None:
        continue
    surprise = round(a["value"] - consensus, 2)
    rows.append({
        "date":      a["announcement_datetime"][:10],
        "actual":    a["value"],
        "consensus": consensus,
        "surprise":  surprise,
        "direction": "BEAT" if surprise > 0 else "MISS",
    })

rows.sort(key=lambda r: abs(r["surprise"]), reverse=True)
print(f"{'Date':<12} {'Actual':>8} {'Consensus':>10} {'Surprise':>10} {'Dir'}")
print("-" * 50)
for r in rows:
    print(f"{r['date']:<12} {r['actual']:>8.2f} {r['consensus']:>10.2f} {r['surprise']:>+10.2f} {r['direction']}")

O agente executa isto, lê a saída e envia-lhe um resumo formatado através do Telegram sem recolha manual de dados, sem planilha.


Passo 6: Agendar um briefing macro diário

Uma das utilizações mais práticas de um agente NemoClaw sempre ligado é um briefing diário programado.

Every weekday at 07:00 UTC, pull the FXMacroData release calendar for the next
48 hours across USD, EUR, GBP, and JPY. Format it as a morning briefing and send
it to me here on Telegram.

O agente escreverá o código de programação em suas próprias habilidades / configuração e confirmará a configuração. Índice de preços do consumidor do euro- Não . Desemprego no Reino Unido, e quaisquer outros eventos de nível 1 previstos para esse dia, com valores prévios e previsões de consenso já preenchidas.

Um exemplo de informação do agente:

📅 Macro Calendar — Thu 22 May 2026 (next 48h)

UTC 07:00  USD  Initial Jobless Claims     Prior: 228k  Consensus: 225k
UTC 08:30  USD  Philadelphia Fed Mfg       Prior: -26.4  Consensus: -10.0
UTC 09:30  EUR  ECB Meeting Minutes        (qualitative release)
UTC 12:30  GBP  Retail Sales MoM           Prior: -0.1%  Consensus: +0.4%
UTC 14:00  USD  Existing Home Sales        Prior: 4.02M  Consensus: 4.10M

Fri 23 May
UTC 08:30  CAD  Retail Sales MoM           Prior: +0.8%  Consensus: +0.3%
UTC 08:30  USD  PCE Price Index MoM        Prior: +0.0%  Consensus: +0.1%

High-impact watch: USD PCE on Fri — last three prints have missed consensus.

Passo 7: Construir um monitor de posição em tempo real

Um padrão mais avançado é dar ao agente um conjunto de posições de execução e fazê-lo alertá-lo quando os dados macro mudarem a tese.

I'm long AUD/USD targeting the December RBA decision.
Monitor FXMacroData for any new AUD inflation, employment, or trade balance
prints. If the actual comes in more than 0.1 percentage points above consensus,
send me a Telegram alert with the full data and a brief note on what it means
for RBA rate expectations.

O agente cria um script de votação dentro da sandbox que verifica o calendário FXMacroData em uma cadência regular. IPC do AUD Ou ... Emprego em AUD Como o agente é executado dentro da caixa de areia gerenciada do NemoClaw com políticas de rede forçadas, ele só pode alcançar endpoints HTTPS aprovados sua chave de API e pipeline de dados estão isolados do resto da sua máquina.


Usando o servidor FXMacroData MCP

O FXMacroData também expõe um host Servidor MCP - Não . https://fxmacrodata.com/mcp. Se você quiser conectá-lo ao agente diretamente como uma ferramenta nativa em vez de ter o agente escrever Python para chamar a API REST você pode configurar uma habilidade MCP apontando para o servidor FXMacroData. Isso permite que o agente chame indicator_query- Não . release_calendar- Não . forex, e outras ferramentas nativos, sem escrever qualquer código cola.

Consulte o Docs do servidor MCP O modelo de autenticação é o mesmo: chave API query-param ou OAuth/PKCE. Pode ser usado dentro da caixa de areia NemoClaw uma vez que o ponto final do MCP é adicionado à lista de saída aprovada durante a incorporação.

Para consultas de pesquisa ad hoc "qual foi a reação do EUR/USD às últimas cinco decisões do BCE?" o caminho MCP é mais rápido porque o agente não precisa construir um script primeiro.


Modelo de segurança e por que é importante para a negociação

A execução de agentes de IA com acesso a chaves API para dados financeiros apresenta uma superfície de ataque real.

  • Barranco O agente não pode acessar suas chaves SSH, credenciais do navegador ou outros arquivos host sensíveis.
  • seccomp limita as chamadas do sistema que o agente pode fazer, bloqueando categorias de escalada de privilégios e técnicas de fuga de contêineres.
  • Espaços de nomes de rede significa que todas as conexões de saída passam pelo gateway do OpenShell, que aplica sua política de saída aprovada. fxmacrodata.com- Não .
  • Gestão dos segredos - Por aqui . nemoclaw secret set garante que as chaves de API sejam injetadas no tempo de execução em vez de serem armazenadas em arquivos de texto simples ou passadas através do chat.

Para fluxos de trabalho de negociação onde o agente tem autoridade para executar scripts que chamam endpoints de dados financeiros, esse limite é significativo.


Próximos passos

Uma vez que a pilha de base está em execução, algumas direções naturais para estendê-lo:

  • Monitorização em várias moedas: expandir a análise surpresa para cobrir todas as moedas no mercado Calendário de lançamento do FXMacroData O agente pode executar esta varredura a cada hora e só avisa quando algo material imprime.
  • Integração de COT- Puxa . Dados de posicionamento COT para avaliar se uma batida ou falha está a negociar contra ou com a posição especulativa actual.
  • Modelo de roteador: O roteador de modelo experimental da NemoClaw permite especificar um conjunto de modelos e rota automaticamente cada consulta para a mais barata que atenda a um limite de precisão.
  • Painéis de instrumentos específicos para pares- Depois de o agente aparecer com um sinal macro, direcione-o para o seu EUR/USD Ou ... GBP/USD painel de controlo para uma verificação visual das tendências dos indicadores antes de agir.

A referência da API FXMacroData está em fxmacrodata.com/api-data-docsA documentação NemoClaw, incluindo a referência completa do comando CLI, encontra-se em Docs.nvidia.com/nemoclaw/latest. Ambos merecem ser lidos em conjunto com este guia a arquitetura muda rapidamente, uma vez que ambos os projectos estão em desenvolvimento activo.

Blogroll