89 lines
4.0 KiB
Markdown
89 lines
4.0 KiB
Markdown
# 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.
|
||
|
||
```bash
|
||
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
|
||
|
||
```bash
|
||
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.
|
||
|
||
---
|
||
|