Pourquoi associer le code OpenAI à FXMacroData
Le codex OpenAI est l'agent de codage d'OpenAI disponible en tant que terminal CLI et en tant qu'agent cloud à l'intérieur de ChatGPT. Il est conçu pour planifier, écrire et exécuter du code en votre nom, ce qui est un flux de travail très différent d'une boîte de discussion. Une fois que vous lui donnez un objectif, il peut exécoter des commandes de shell, modifier des fichiers, appeler des API et vérifier son propre travail en boucle.
Au lieu d'écrire chaque extraction de données, chaque joint, chaque graphique et chaque backtest vous-même, vous décrivez ce que vous voulez "comparer les douze derniers Inflation en dollars américains Il y a un codex qui est écrit sur un support de texte, et le codex est un code qui est imprimé sur un consensus et qui me dit où la surprise a été la plus grande.
FXMacroData comble cette lacune avec une API REST propre plus une API hébergée Serveur MCP. Codex peut soit appeler l'API directement à partir des scripts qu'il écrit, soit parler à FXMacroData comme un outil MCP natif sans aucun code de colle.
Pré-requis
- Une Compte OpenAI avec accès à l'API et l'interface utilisateur du Codex CLI installée (
npm install -g @openai/codexou l'installateur de la plateforme). - Node.js 18+ sur votre machine (nécessaire uniquement pour l'étape de pont MCP).
- Une clé d'API FXMacroData du Gestion des API Les données en USD sont gratuites; la couverture multivalutaire nécessite un forfait payant.
- Un environnement Python fonctionnel si vous voulez exécuter l'exemple backtests Codex produit.
Deux façons de transférer le Codex vers FXMacroData
Vous avez le choix entre les modèles d'intégration, et ils ne s'excluent pas mutuellement:
- API REST directe Codex écrit Python (ou Node, Go, R) qui appelle les terminaux FXMacroData.
- Serveur MCP Codex utilise FXMacroData comme outil, idéal pour des recherches rapides et par conversation et des analyses ad hoc sans imposer un projet.
La plupart des flux de travail quantiques finissent par utiliser les deux: MCP pour l'exploration, REST pour le script de production.
Option 1: utiliser le codex avec l'API REST
C'est le chemin le plus simple. Vous remettez à Codex votre clé API dans l'environnement de travail, vous la pointez sur les documents, et vous laissez générer des scripts qui appellent les terminaux directement.
Étape 1. Exporter votre clé API une fois par session
export FXMD_API_KEY="YOUR_API_KEY"
Le mettre dans l'environnement (plutôt que de le coller dans le chat) empêche la clé de figurer dans la fenêtre contextuelle du Codex et de ne pas entrer dans le code qu'il commande.
Étape 2. Commencez une session de codex dans votre projet
codex
Ensuite, demandez à l'agent la tâche et le contrat de point final qu'il doit utiliser.
Write a Python script that pulls the last 24 USD inflation announcements
from the FXMacroData REST API, joins each release to the matching
consensus forecast from the predictions endpoint, computes the surprise
in basis points, and prints the five largest absolute surprises with
their announcement_datetime.
API base: https://fxmacrodata.com/api/v1
Auth: query param ?api_key=$FXMD_API_KEY
Endpoints to use:
/announcements/usd/inflation
/predictions/usd/inflation
Use the `requests` library. Read the API key from FXMD_API_KEY.
Codex rédige le script, l'exécute dans votre shell, lit la sortie et itère si la forme de réponse le surprend.
import os
import requests
API = "https://fxmacrodata.com/api/v1"
KEY = os.environ["FXMD_API_KEY"]
def get(path):
r = requests.get(f"{API}{path}", params={"api_key": KEY}, timeout=15)
r.raise_for_status()
return r.json()
actuals = get("/announcements/usd/inflation")["data"][-24:]
forecasts = {
g["announcement_id"]: g["predictions"]
for g in get("/predictions/usd/inflation")["data"]
}
surprises = []
for a in actuals:
preds = forecasts.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
surprises.append({
"datetime": a["announcement_datetime"],
"actual": a["value"],
"consensus": consensus,
"surprise_bps": round((a["value"] - consensus) * 100, 1),
})
surprises.sort(key=lambda r: abs(r["surprise_bps"]), reverse=True)
for row in surprises[:5]:
print(row)
Deux choses à noter. Premièrement, le Codex recueille le announcement_id Deuxièmement, le script est reproductible: la même invite et les mêmes données renvoient les mêmes cinq lignes, vous pouvez donc le commettre.
Étape 3. Laissez le Codex élargir le texte
Une fois que le petit script fonctionne, vous pouvez demander à Codex de le développer.
- "Ploter la série réelle par rapport au consensus avec matplotlib et enregistrer à
cpi_surprise.png. " - "Apportez USD/JPY - Je suis à la recherche de ...
/forex/USDJPYet superposer un retour de 60 minutes après chaque date de sortie. " - "Ajouter un drapeau CLI pour que je puisse échanger l'inflation pour les effectifs non agricoles ou ... taux de réglementation sans modifier le fichier. "
Parce que le Codex est un agent de codage plutôt qu'un chatbot, chacun d'eux devient un vrai différent par rapport au script généralement en un seul tour.
Option 2: Connecter le Codex au serveur MCP FXMacroData
Le codex CLI prend en charge le Protocole de contexte typeAvec MCP branché, vous sautez l'étape "écrire un script qui appelle l'API" entièrement pour les questions ad-hoc l'agent appelle indicator_queryJe suis désolé . release_calendarJe suis désolé . cot_dataJe suis désolé . commodities Je suis désolé . forex Je vous en prie.
Étape 1. Ajouter le serveur FXMacroData à votre configuration Codex
Le Codex lit les définitions des serveurs MCP à partir de ~/.codex/config.toml. Ouvrez ce fichier et ajoutez une entrée pour FXMacroData. Le serveur MCP hébergé est un point d'extrémité HTTP distant, nous le relions donc à stdio avec le standard mcp-remote aide:
[mcp_servers.fxmacrodata]
command = "npx"
args = [
"-y",
"mcp-remote",
"https://fxmacrodata.com/mcp?api_key=YOUR_API_KEY"
]
Si vous voulez OAuth au lieu d'une clé de requête-param, point mcp-remote à l'adresse URL nue https://fxmacrodata.com/mcp et compléter le flux de connexion basé sur le navigateur la première fois que le serveur démarre.
Étape 2. Vérifiez la charge des outils
Redémarrez le Codex et demandez-lui de répertorier ses outils:
What MCP tools do you have available?
Vous devriez voir les outils FXMacroData à côté des intégrations:
data_catalogueliste de toutes les monnaies et indicateurs pris en charge.indicator_queryséries chronologiques d'annonce de pull pour une paire de devises + indicateur.release_calendarles prochaines éditions prévues d'une monnaie.cot_dataEngagement de la CFTC pour le positionnement des traders.commoditiesprix de l'or, de l"argent et du platine.forextaux au comptant courants pour les paires de devises.indicator_visual_artifactgénérer un graphique de tout indicateur.market_sessionsl'état actuel des quatre séances sur les changes.
Étape 3: Demandez dans un langage naturel
Le but de MCP est que les invites deviennent plus courtes.
Pull the last 12 EUR policy rate decisions and the last 12 USD policy
rate decisions, and tell me whether the ECB-Fed differential is widening
or narrowing right now. Then show me the current EUR/USD spot.
Codex vous appellera . indicator_query Deux fois pour le Banque centrale européenne Je suis désolé . Réserve fédérale série de taux, alors forex Pour Le taux de change, et répond en un tour pas besoin de script.
Exemple pratique: construction d'un scanner commercial basé sur la libération
Voici une invite réaliste qui utilise les deux chemins d'intégration. L'objectif est un petit scanner qui fonctionne avant l'ouverture de Londres et signale les paires avec une sortie à fort impact dans les prochaines 24 heures, plus le biais de positionnement prévalant.
Build a Python module called release_scanner.py that:
1. Pulls the upcoming 24 hours of releases for USD, EUR, GBP, JPY, AUD,
CAD and CHF from /api/v1/calendar/{currency}.
2. Filters to releases tagged high impact.
3. For each release, looks up the most recent CFTC positioning for the
corresponding currency from /api/v1/cot/{currency} and reports net
non-commercial position and weekly change.
4. Prints a markdown table sorted by release datetime with columns:
datetime, currency, indicator, consensus, prior, net positioning,
weekly change.
Use FXMDAPIKEY from the environment. Use requests. Add type hints.
Le Codex génère le module, l'exécute, et imprime quelque chose comme:
| datetime (UTC) | ccy | indicator | consensus | prior | net pos | wk Δ |
|---------------------|-----|------------------|-----------|-------|------------|---------|
| 2026-05-21 12:30:00 | USD | non_farm_payrolls| 185k | 175k | +120,430 | +8,210 |
| 2026-05-21 06:00:00 | GBP | inflation | 3.2% | 3.4% | -42,180 | -2,940 |
| 2026-05-21 01:30:00 | AUD | unemployment | 4.1% | 4.1% | -68,920 | -5,110 |
Vous pouvez maintenant plier dans MCP pour la couche interactive.
From the release_scanner.py output, which release is the most asymmetric
trade if it surprises in the consensus direction? Use COT positioning,
the indicator's average surprise impact on the matching pair (use
/announcements and join to /forex spot at announcement_datetime), and
suggest the cleanest pair to express it.
Codex appellera FXMacroData via MCP pour les joints, exécutera l'analyse et produira une thèse d'un paragraphe avec les chiffres d'appui. scripts pour la reproductibilité, MCP pour la réflexionJe suis désolé .
Conseils pour obtenir de bons résultats
- Fixez les chemins des terminaux dans votre prompt. Le Codex hallucine moins quand on lui donne les itinéraires exacts.
- Gardez les clés API dans l'environnement. Ne collez jamais une clé dans le chat; sinon, Codex la mettra volontiers dans un fichier.
- Utiliser
announcement_idpour chaque joint. Il s'agit de la clé stable qui relie les données réelles, les prévisions et les révisions entre les points de départ. - Laissez le Codex vérifier contre l'API elle-même. Si vous n'êtes pas sûr d'un nom de champ, terminez votre invite avec "d'abord appeler le point final avec une petite plage et imprimer le JSON, puis construire l'analyseur" la boucle de fonctionnement de l'agent utilisera le schéma en direct plutôt que de deviner.
- Rattez le MCP pour l'exploration, REST pour la production. MCP est merveilleux quand vous pensez; une fois que vous savez ce que vous voulez, demandez à Codex de le faire sous forme de script.
En fin de compte
Avec une entrée TOML et une clé API dans l'environnement, OpenAI Codex devient un assistant compétent de recherche FX. Il peut extraire des taux de politique en direct, des impressions d'inflation, le positionnement COT, les taux au comptant et les matières premières, et il peut écrire puis refacteur le Python qui les lie à un flux de travail de trading.
À partir de là, les prochaines étapes sont: brancher le même serveur MCP à Je suis Claude . ou ... Le curseur donc différents agents partagent la même surface de données, planifier le scanner de sortie avec cron ou un exécuteur de flux de travail et ajouter le prévisions point final Le Codex peut donc raisonner sur la surprise plutôt que sur l'impression elle-même.