Scripts Python (moteur Pyodide)
Choisir Python pour un script l'exécute dans un moteur embarqué, sous les mêmes règles de bac à sable que le JavaScript. Le moteur se télécharge une fois, sur un clic, puis tourne entièrement hors ligne.
Senzoukria · Documentation · Mis à jour en septembre 2026
Où le trouver
- Où
- Page Scripting → Langage → Python, puis le bandeau « Moteur Python »
- Téléchargement
- Six fichiers, environ 16,4 Mo au total, récupérés une seule fois
- Inclus
- numpy, dans la version compilée correspondant à l'ABI du moteur
- Budget de démarrage
- 120 s pour l'amorçage ; le téléchargement a son propre budget de 600 s
- Budget du script
- 2 s par exécution, comme en JavaScript
Ce que ça fait
Le langage se choisit par script et se range avec lui. Les deux langages reçoivent les mêmes données et rendent les mêmes formes : un script porté de l'un à l'autre retrouve ses repères — les colonnes des barres sont exposées sous leurs noms, les fonctions de calcul gardent les mêmes noms, et les constructeurs de sortie se correspondent un pour un.
Le démarrage du moteur est un état à part entière, affiché sur son propre bandeau, et n'est jamais confondu avec l'exécution d'un script. La distinction compte : le moteur met plusieurs secondes à démarrer alors qu'une exécution dispose de deux secondes. Confondre les deux ferait passer tout script Python correct pour une boucle infinie.
Rien ne se télécharge tout seul. Installer est un clic ; le démarrage automatique n'a lieu que si les fichiers sont déjà présents.
États du moteur
| État | Par défaut | Ce que ça change |
|---|---|---|
| Non installé | initial | Propose « Installer le moteur Python » et annonce la taille du téléchargement unique. |
| Téléchargement | — | Affiche un pourcentage et propose « Annuler le téléchargement ». |
| Démarrage | — | Le moteur s'amorce ; les scripts attendent au lieu d'échouer. |
| Moteur prêt | — | Affiche la version et le nombre de millisecondes de démarrage, et propose « Retirer le moteur ». |
| Moteur indisponible | — | Indique que le moteur n'a pas démarré, avec le message brut, et propose « Réessayer ». Les scripts JavaScript ne sont pas affectés. |
| Mention hors ligne | toujours | Une fois installé, le moteur tourne entièrement hors ligne — aucun script ni aucune donnée n'est envoyé où que ce soit. |
Langage mal déclaré
Coller un script Python dans un brouillon resté en JavaScript produisait jusqu'ici une erreur de syntaxe pointant une ligne arbitraire, assortie d'un conseil sur console.log adressé à quelqu'un qui écrit du Python. La page vérifie désormais si le code contredit le langage déclaré et le dit, avec un bouton qui bascule vers le langage détecté.
La vérification est volontairement étroite : elle ne cherche que les marques qui sont des erreurs de syntaxe franches dans l'autre langage, et se tait quand un fichier porte les marques des deux — un script à moitié traduit n'a rien d'utile à dire. Rater une détection ne fait que vous ramener à l'ancien message obscur ; en inventer une vous enverrait changer un langage qui était correct.
Limites et pièges
- Changer de langage ne traduit pas votre code : il reste exactement tel qu'écrit et ne tournera pas tant que vous ne l'aurez pas réécrit.
- Les fichiers du moteur sont récupérés depuis le relais du produit, la seule origine distante que la politique de contenu de l'application autorise.
- La version du moteur est figée et vérifiée face au binaire compilé ; un mélange de versions est refusé plutôt que de produire des plantages illisibles.
- Le backtest d'une stratégie Python exécute la boucle côté Python plutôt que de franchir la frontière entre langages à chaque barre, et un test de parité compare ses trades à ceux de la boucle JavaScript, barre par barre. print() part dans le journal, préfixé par la barre en cours.
Pages liées
- Vue d'ensemble de la page Scripting
- Scripting : écrire une stratégie
- Galerie de modèles de scripts
- Backtest
Cette page dans d’autres langues
Questions fréquentes
- Faut-il installer Python sur mon ordinateur ?
- Non. Le moteur est embarqué et téléchargé une fois par l'application. Il n'utilise pas, et ne demande pas, une installation Python du système.
- Quelles bibliothèques sont disponibles ?
- La bibliothèque standard, plus numpy, livré dans la version compilée correspondant à l'ABI du moteur. Il n'y a aucun accès réseau depuis le bac à sable : aucun paquet ne peut être récupéré à l'exécution.
- Pourquoi mon script Python échoue-t-il sur une erreur de syntaxe à une ligne qui n'existe pas ?
- C'est la signature d'un langage mal déclaré : une enveloppe rédigée dans l'autre langage a été ajoutée à votre source. Changez le langage du script et relancez.