Files
OPENCLAW_ARCHIVE3_17/workspace/reference-bourse.md

4.0 KiB
Raw Permalink Blame History

Référence — Bourse

⚠️ OBSOLÈTE depuis le 10/10/2026 : la bourse est passée à l'agent bourse (workspace-bourse/AGENTS.md, scripts/bourse.py). Ne plus lire ce fichier.

(Déplacé d’AGENTS.md le 26/09/2026 pour tenir sous le plafond de la fiche. Contenu identique, lu à la demande.)

3. Bourse

⚠️ OBSOLÈTES, ne plus jamais utiliser : generate_chart.py, get_quote.py, clean_bourse_md.py, orange-bourse.md. Toute la bourse passe par N8N.

3.1 Principe

Tu es l'INTERLOCUTEUR, N8N est l'EXÉCUTANT. Demande humaine → appel du webhook → PNG en retour → tu l'envoies. Aucune donnée n'est stockée à la main : N8N récupère les cours en direct de Yahoo Finance.

3.2 Source de vérité : bourse-config.json

/home/node/.openclaw/workspace/bourse-config.json contient la watchlist, les options par défaut, et la liste close_bilan.images du bilan de clôture. Tu PEUX et tu DOIS éditer ce fichier quand l'humain demande d'ajouter ou de retirer une valeur ou un graphe. C'est le seul endroit où cette liste existe.

3.3 Webhook graphe — le seul outil bourse autorisé

  • URL : https://n8n.airtria.pro/webhook/bourse-graphe — POST uniquement (un GET renvoie 404).
  • Workflow N8N id : 4bluZIeN3TnbzIrv (« Bourse — Graphe multi-tickers (v3) »).
  • Retour : un PNG prêt à envoyer.
curl -s -X POST "https://n8n.airtria.pro/webhook/bourse-graphe" \
  -H "Content-Type: application/json" \
  -d '{"tickers":["ORA.PA","TTE.PA"],"range":"5d","interval":"60m","beginAtZero":true}' \
  -o /home/node/.openclaw/workspace/charts/bourse.png

Body JSON, tous les champs optionnels :

  • tickers : symboles Yahoo (défaut : lus dans bourse-config.json)
  • range : 1d,5d,1mo,3mo,6mo,1y (défaut 5d)
  • interval : 15m,60m,1d (défaut 60m)
  • beginAtZero : true = axe Y depuis 0 ; false = zoom sur les variations
  • title : titre du graphe

⚠️ Il n'existe aucun paramètre de normalisation/rebase. Tracer deux titres de prix très différents (ex. NVDA ~250 $ et ORA.PA ~18 €) sur un même graphe donne une courbe écrasée et illisible : faire un graphe par titre.

3.4 Prix chiffré rapide, sans graphe

curl -fs "https://query1.finance.yahoo.com/v8/finance/chart/SYMBOLE?interval=1d&range=1d" \
  | jq '.chart.result[0].meta | {price: .regularMarketPrice, prev: .chartPreviousClose, currency}'

3.5 Mapping demande → action

Demande Action
« montre-moi Orange » POST webhook avec tickers=["ORA.PA"]
« ajoute Total / Nvidia » éditer bourse-config.json, puis POST avec la nouvelle liste
« retire tel graphe du bilan » éditer close_bilan.images dans bourse-config.json
« fais commencer le graphe à 0 » POST avec beginAtZero:true (+ mettre à jour les defaults)
« zoome sur les variations » POST avec beginAtZero:false
« le cours d'Orange aujourd'hui » POST avec range="1d", interval="15m"
« Anthropic » non cotée en bourse → le dire, ne pas inventer de ticker

3.6 Règles

  1. Ne pas réinventer un script Python de graphe : le webhook fait tout.
  2. Tickers Yahoo : actions FR = suffixe .PA (ORA.PA, TTE.PA) ; US = sans suffixe (NVDA, AAPL).
  3. PNG « Aucune donnée » = marché fermé ou ticker invalide → le dire, ne jamais inventer un cours.
  4. Réponse bourse : 3 lignes maximum + le PNG en pièce jointe. Format : ORA.PA : 16,89€ (-0,68%). Pas de tableau, pas de description longue.
  5. Nouveau comportement de graphe impossible avec le workflow actuel → il peut être modifié via le MCP n8n-mcp (update_workflow), workflow id 4bluZIeN3TnbzIrv. Node JS « Fetch + Build QuickChart » = logique fetch + rendu (QuickChart version:"4").

3.7 Cron de clôture

orange-cloture, 40 17 * * 1-5 Europe/Paris. Il lit close_bilan.images, appelle le webhook une fois par entrée, valide par du -b et envoie sur WhatsApp. Son prompt est stocké dans le job cron, pas ici : pour changer son comportement, c'est openclaw cron edit, pas ce fichier.