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.

Également disponible en English

Pourquoi NemoClaw et FXMacroData sont liés

NVIDIA NemoClaw est une plateforme de jeu vidéo. est une pile de référence open-source qui tourne Je suis désolé . un agent d'IA auto-hébergé, toujours activé dans un runtime durci et sandboxé soutenu par l'infrastructure d'inférence de NVIDIA. OpenClaw vous donne une IA qui fonctionne 24 heures sur 24 sur votre machine, se connecte à des applications de chat comme Telegram et WhatsApp, et peut exécuter du code, appeler des API et agir sur les informations de manière autonome. NemoClaw enveloppe cet agent dans un sandbox sécurisé (Landlock + seccomp + espace de noms réseau), gère le point de terminaison du modèle et ajoute une intégration guidée qui vous permet de passer de zéro à exécutoire en une seule commande de terminal.

Pour le trading de devises et la macro recherche, cette combinaison est convaincante. La plupart des flux de travail des agents d'IA se divisent en deux modes: vous posez une question, vous obtenez une réponse. les empreintes d'inflationJe suis désolé . décisions de politique de la banque centrale, et les mouvements de taux au comptant en fonction de vos critères, et vous prévient lorsque quelque chose se produit qui correspond à un bord prédéfini. Serveur MCP Il couvre 18 devises avec les taux directeurs, l'IPC, le PIB, l"emploi, les soldes commerciaux, le positionnement des COT, etc.

Ce guide vous explique comment configurer NemoClaw, donner à votre agent un accès à FXMacroData, écrire une compétence de surveillance réutilisable et exécuter la première alerte surprise macro de bout en bout sur USD/JPYJe suis désolé .

- Un avis alpha
NemoClaw est disponible en prévisualisation dès mars 2026. Les interfaces et le comportement peuvent changer sans préavis. Documents de NemoClaw pour les dernières étapes d'intégration.

Comment la pile s'intègre

Avant de plonger dans la configuration, il est utile de comprendre ce que chaque couche fait:

  • Je suis désolé . est l'agent lui-même un assistant d'IA auto-hébergé qui fonctionne en continu, se connecte à vos canaux de chat, et peut exécuter des commandes de shell, écrire et exécoter du code, appeler des API et mémoriser le contexte entre les sessions.
  • Une griffe de Nemo Il installe NVIDIA OpenShell, crée un conteneur sandboxé pour OpenClaw, configure l'inférence gérée via l'API de NVIDia (modèles Nemotron) et fournit le nemoclaw CLI pour gérer l'ensemble de l'environnement.
  • FXMacroData est une société est le niveau de données. Votre agent appelle l'API REST FXMacroData pour lire l'historique des annonces macro, les prévisions, les taux de change au comptant, les données COT et les événements de calendrier de sortie. L'API est structurée, versionnée et renvoie toujours des données prises en charge par Firestore sans grattage, sans volatilité de tierce partie au moment de la demande.

Le flux typique une fois que vous avez la pile en cours d' exécution:

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

Votre agent vit dans un bac à sable. Il appelle FXMacroData via HTTPS via la politique de réseau gérée du bac à sables. Vous interagissez avec lui depuis votre téléphone ou votre bureau via Telegram. La couche de sécurité NemoClaw signifie que même si l'agent est compromis ou alimenté avec une mauvaise invite, il ne peut pas atteindre des destinations de réseau arbitraires ou accéder à votre système de fichiers hôte seulement les règles de sortie que vous avez approuvées lors de l'intégration.


Pré-requis

  • Linux, macOS (Apple Silicon) ou Windows WSL2 avec Docker installé et en cours d'exécution.
  • Node.js 22.16+ et npm 10+ (l'installateur NemoClaw les définit automatiquement en cas de défaut).
  • Un compte Telegram (le canal le plus rapide à tester avec un jeton bot prend environ deux minutes à créer via @BotFather) et de la
  • Une clé API NVIDIA de Je suis un peu déçu. pour l'inférence du modèle Nemotron, ou une clé Anthropic/OpenAI si vous préférez fournir votre propre modèle.
  • Une clé d'API FXMacroData du Gestion des API Les données en USD sont disponibles sur le niveau gratuit; l'accès à plusieurs devises nécessite un forfait payant.

Étape 1: Installez NemoClaw et intégrez OpenClaw

Exécutez l'installateur NemoClaw. Il tire Node.js via nvm si vous ne l'avez pas, installe le CLI NemoCrow, et lance l'assistant interactif embarqué:

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

L'assistant vous demande de nommer votre assistant, de choisir un fournisseur d'inférence (sélectionnez NVIDIA Endpoints for Nemotron), et collez votre clé API NVIDia. Il crée ensuite le conteneur de bac à sable et imprime un résumé:

──────────────────────────────────────────────────────
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

Connectez-vous au bac à sable pour vérifier que l'agent est en cours d' exécution:

nemoclaw fx-agent connect

À l'intérieur du bac à sable, ouvrez l'interface utilisateur du terminal OpenClaw et envoyez un rapide bonjour:

openclaw tui

Étape 2: Connectez une chaîne Telegram

En restant à l'intérieur du coffre-fort, configurez Telegram pour pouvoir envoyer des messages à l"agent depuis votre téléphone. @BotFather Il est mort sur Telegram, alors:

# Inside the nemoclaw sandbox shell
openclaw channel add telegram

Suivez les instructions pour coller votre jeton bot et votre identifiant d'utilisateur personnel de Telegram (l'agent restreint les messages entrants à la liste d'autorisation que vous fournissez). Une fois connecté, envoyez hello à l'agent du Telegram vous devriez obtenir une réponse de l'agence dans quelques secondes.


Étape 3: Exposer FXMacroData à l'agent

Le bac à sable a un accès réseau sortant par défaut à HTTPS sur le port 443. https://fxmacrodata.com/api/v1Ce dont vous avez besoin, c'est de rendre votre clé API disponible dans le sandbox sans qu'elle apparaisse dans les scripts vérifiés dans le contrôle de version.

De l'extérieur du bac à sable, définissez le secret en utilisant le gestionnaire de secrets NemoClaw:

nemoclaw fx-agent secret set FXMD_API_KEY your_api_key_here

Le sandbox injecte ceci comme une variable d'environnement au démarrage. Tout script que l'agent exécute à l'intérieur du conteneur peut le lire avec os.environ["FXMD_API_KEY"], et il n'est jamais écrit sur disque ou enregistré.

Pour vérifier que la clé est correctement câblée, demandez à l'agent de 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.

L'agent écrira le script, l'exécutera dans le bac à sable, et renverra le dernier Indice de consommation des États-Unis la lecture confirmant la connectivité de bout en bout.


Étape 4: Écrivez la compétence de surveillance des changes

Le système de compétences d'OpenClaw vous permet de regrouper les capacités d'agents réutilisables sous forme de fichiers YAML. Une compétence est une description que l'agent lit au démarrage; lorsque vous lui demandez de faire quelque chose qui correspond à la compétence, il sait comment procéder sans que vous ne réexpliquiez le flux de travail à chaque fois.

Créer un nouveau fichier de compétence à l'intérieur du sandbox.

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

L' agent lit tous les fichiers de compétences . ~/.openclaw/skills/ après avoir ajouté le fichier, redémarrez la session dans le bac à sable:

openclaw session restart

Étape 5: Construire et exécuter la analyse surprise de l'inflation

Maintenant, testez la compétence de bout en bout.

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.

L'agent écrira et exécutera un script Python à l'intérieur du bac à sable.

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']}")

L'agent exécute ceci, lit la sortie, et vous envoie un résumé formaté sur Telegram pas de collecte de données manuelle, pas de feuille de calcul.


Étape 6: Prévoyez une macro-information quotidienne

L'une des utilisations les plus pratiques d'un agent NemoClaw toujours activé est un briefing quotidien planifié.

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.

L'agent écrira le code de planification dans ses propres compétences/config et confirmera la configuration. Indice des prix à la consommation en eurosJe suis désolé . Chômage au Royaume-Uni, et tout autre événement de niveau 1 prévu ce jour-là, avec des valeurs et des prévisions de consensus préalables déjà remplies.

Un échantillon de la production de l'information de l ' agent:

📅 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.

Étape 7: Construire un moniteur de position en direct

Un modèle plus avancé consiste à donner à l'agent un ensemble de positions en cours d'exécution et à vous alerter lorsque les données macro changent la thèse.

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.

L'agent crée un script de sondage à l'intérieur du bac à sable qui vérifie le calendrier FXMacroData à une cadence régulière. Indice de consommation par habitant ou ... Emploi au titre de l'AUD Comme l'agent s'exécute à l'intérieur de la zone de contrôle gérée par NemoClaw avec des politiques de réseau imposées, il ne peut atteindre que les terminaux HTTPS approuvés votre clé API et votre pipeline de données sont isolés du reste de votre machine.


Utiliser le serveur MCP FXMacroData

FXMacroData expose également un Serveur MCP À https://fxmacrodata.com/mcp. Si vous voulez le connecter à l'agent directement comme un outil natif plutôt que d'avoir l'agent écrit Python pour appeler l'API REST vous pouvez configurer une compétence MCP pointant vers le serveur FXMacroData. Cela permet à l 'agent appeler indicator_queryJe suis désolé . release_calendarJe suis désolé . forex, et d'autres outils nativement, sans écrire de code de colle.

Consultez le Documents du serveur MCP pour les détails de connexion. Le modèle d'authentification est le même: clé API par paramètres de requête ou OAuth/PKCE. L'un ou l'autre peut être utilisé à partir du bac à sable NemoClaw une fois que le point final MCP est ajouté à la liste de sortie approuvée lors de l'intégration.

Pour les requêtes de recherche ad hoc " quelle a été la réaction de l'EUR/USD aux cinq dernières décisions de la BCE ? " le chemin MCP est plus rapide car l'agent n'a pas besoin d'établir un script en premier.


Modèle de sécurité et pourquoi il importe pour le commerce

L'exécution d'agents d'IA avec accès à la clé API aux données financières fait apparaître une véritable surface d'attaque.

  • Encastrement Le processus de sandboxing ne peut pas accéder à vos clés SSH, vos informations de navigateur ou à d'autres fichiers d'hôte sensibles.
  • séccomp Limite les appels que le système peut faire à l'agent, bloquant les catégories d'escalade de privilège et les techniques d'évasion de conteneur.
  • Espace de noms réseau signifie que toutes les connexions sortantes passent par la passerelle OpenShell, qui applique votre politique de sortie approuvée. fxmacrodata.comJe suis désolé .
  • Gestion des secrets par la voie nemoclaw secret set assure que les clés API sont injectées au moment de l'exécution plutôt que stockées dans des fichiers en texte brut ou transmises via le chat.

Pour les flux de travail de trading où l'agent a autorité pour exécuter des scripts qui appellent des points d'extrémité de données financières, cette limite est significative.


Les prochaines étapes

Une fois la pile de base en cours d'exécution, quelques directions naturelles pour l'étendre:

  • Surveillance en plusieurs devises: étendre l'analyse surprise à toutes les monnaies du marché Calendrier de sortie de FXMacroData L'agent peut exécuter cette analyse toutes les heures et ne vous alerter que lorsque quelque chose d'important est imprimé.
  • Intégration des TCOJe tire . Données de positionnement COT Les résultats de l'analyse de la position de marché sont comparés aux résultats de la surveillance de la situation de marché.
  • Modèle de routeur: Le routeur de modèle expérimental de NemoClaw vous permet de spécifier un pool de modèles et de rediriger automatiquement chaque requête vers la plus bon marché qui répond à un seuil de précision.
  • Tableaux de bord spécifiques à une paire: après que l'agent ait fait surface un signal macro, dirigez-le vers votre Le taux de change ou ... Le taux de change tableau de bord permettant une vérification visuelle croisée des tendances des indicateurs avant d'agir.

La référence de l'API FXMacroData est à Les données sont fournies par les autorités compétentes.La documentation NemoClaw, y compris la référence complète de la commande CLI, est disponible à Je suis désolé, mais je ne peux pas vous aider.Les deux sont à lire en même temps que ce guide l'architecture change rapidement car les deux projets sont en développement actif.

Blogroll