Docs - Algo Trading
L'outil de Algo Trading est une plateforme avancée qui permet aux utilisateurs d'écrire, de tester et de simuler des algorithmes de trading personnalisés en utilisant JavaScript. Il fournit un environnement flexible et basé sur les événements où les utilisateurs peuvent implémenter des stratégies de trading complexes et effectuer des backtests sur des données historiques de marché.
Champs :
- Symboles - Un tableau de symboles d'actifs que l'algorithme négociera. Ceux-ci peuvent inclure n'importe lequel des types de symboles décrits dans la section Symboles.
- Solde - Le solde initial en espèces disponible pour le trading, libellé dans la devise de base. Cela représente le capital initial pour l'algorithme de trading.
- Date - Un tuple de dates de début et de fin définissant la période historique sur laquelle l'algorithme sera simulé.
- Effet de levier - Lorsqu'il est défini sur vrai, permet le trading avec effet de levier, permettant à l'algorithme de prendre des positions plus importantes que le solde en espèces disponible. Cela doit être utilisé avec prudence car cela augmente à la fois les rendements potentiels et les risques.
- Marge Initiale - L'exigence de marge initiale, représentée sous forme de décimal entre 0 et 1. Ceci n'est applicable que lorsque l'Effet de levier est activé. Il définit la proportion de la valeur de la position qui doit être couverte par les espèces disponibles.
- Marge Minimale - L'exigence de marge minimale, également représentée sous forme de décimal entre 0 et 1. C'est le seuil en dessous duquel un appel de marge serait déclenché. Applicable uniquement lorsque l'Effet de levier est activé.
- Code - Le code JavaScript qui définit l'algorithme de trading. C'est ici que les utilisateurs implémentent leur logique de trading, en utilisant l'environnement AlgoWorkspace fourni.
Code (AlgoWorkspace) :
L'AlgoWorkspace fournit un environnement basé sur les événements pour l'exécution de l'algorithme. Il offre un ensemble d'événements, de propriétés et de méthodes qui permettent aux utilisateurs d'interagir avec l'environnement de simulation et d'implémenter leur logique de trading.
Événements disponibles :
this.on('start', async (next, timeseries) => { ... })- Déclenché au début de la simulation. Le paramètre timeseries donne accès à l'ensemble complet des données historiques pour tous les actifs.this.on('data', async (next) => { ... })- Déclenché pour chaque point de données (généralement chaque jour de trading) dans la simulation. C'est ici que la logique principale de trading est généralement implémentée.this.on('end', async (next, result) => { ... })- Déclenché à la fin de la simulation. Le paramètre result donne accès aux résultats finaux de la simulation.this.on('error', async (next, errors) => { ... })- Déclenché lorsqu'une erreur se produit pendant la simulation. Le paramètre errors contient des détails sur la ou les erreurs rencontrées.
Propriétés et méthodes :
this.date- La date actuelle dans la simulation.this.assets- Un tableau contenant le prix actuel et d'autres données pertinentes pour chaque actif négocié.this.portfolio- Représente l'état actuel du portefeuille, y compris le solde en espèces et les positions sur les actifs.this.index- L'indice d'itération actuel dans la simulation.this.length- Le nombre total d'itérations dans la simulation.this.inputs- Contient les paramètres d'entrée initiaux pour la simulation.this.state- Un objet défini par l'utilisateur pour stocker des données d'état personnalisées tout au long de la simulation.this.buy(assetCode: string, quantity: number): void- Exécute un ordre d'achat pour l'actif et la quantité spécifiés.this.sell(assetCode: string, quantity: number): void- Exécute un ordre de vente pour l'actif et la quantité spécifiés.this.print(...msgs: string[]): void- Enregistre des messages dans la sortie de la simulation.this.depositCash(amount: number): void- Ajoute le montant spécifié d'espèces au portefeuille.this.loadScript(path: string): Promise- Charge un fichier JavaScript externe, permettant l'utilisation de bibliothèques ou de modules supplémentaires.this.download(obj: any, name?: string): void- Génère un fichier téléchargeable contenant les données de l'objet spécifié.
Ces outils et méthodes fournissent un environnement complet pour implémenter et tester des stratégies de trading complexes. Les utilisateurs peuvent accéder aux données de marché, gérer un portefeuille, exécuter des trades et analyser les résultats, le tout au sein de l'AlgoWorkspace.