Dans le dernier article, j'ai discuté des meilleures pratiques pour développer des logiciels de trading, telles que l'utilisation d'événements, le stockage de données ou des configurations séparées. Cette fois, approfondissons la partie stratégique, plus précisément comment l'organiser efficacement d'un point de vue architectural.
L'approche la plus simple consiste à supposer que cette partie du système reçoit des données d'entrée, telles que les changements de prix, et génère des événements, des signaux. Toute la logique peut être encapsulée dans ce module. Voici un exemple :
def run(self, event): signal = self.calc_rsi(event) if signal != 'FLAT': self.create_event(event, signal)
Dans cet exemple, nous calculons le RSI et générons des événements comme ACHETER ou VENDRE en fonction de celui-ci. Il s’agit d’une illustration basique, mais le concept est clair. Le signal peut inclure le prix d’achat/vente souhaité. Bien sûr, un véritable algorithme de trading est plus complexe, mais vous le savez déjà !
Il est avantageux de regrouper toutes les données sur les soldes ou les positions ouvertes en un seul endroit. De cette façon, vous connaissez le total de vos avoirs en USD ou BTC. Cette connaissance est essentielle pour déterminer la taille de vos commandes lorsque le système génère des signaux.
def run(self, event): # Calculate USD values # Calculate targets # Check targets # Generate orders
Ce pseudocode décrit les étapes suivantes :
Vous obtenez toutes les données de solde, les signaux, vérifiez si les positions s'alignent avec celles souhaitées et générez des commandes si ce n'est pas le cas.
Ce module est étroitement lié au module Portfolio. Parfois, une logique de gestion des risques peut être mise en œuvre directement au sein de celui-ci, surtout si vous gérez une petite somme et que vous venez de démarrer. Pour les grandes entreprises, cela pourrait être l’élément du système le plus complexe, et chaque entreprise définit son algorithme précis. Voici quelques tâches qui peuvent être abordées dans le cadre de la gestion des risques :
Plus vous restez longtemps sur le marché, plus cette partie de l'algorithme de trading devient critique.
Après avoir obtenu toutes les données de prix et de solde, généré des signaux, calculé la taille optimale du portefeuille et pris en compte tous les risques possibles, il n'y a aucune raison de ne pas envoyer un ordre à la bourse. Cela peut sembler la partie la plus simple, à moins que vous n'implémentiez le routage des commandes sur plusieurs bourses. Habituellement, vous formatez correctement la commande et l'envoyez à la bourse sur laquelle vous négociez.
Nous avons discuté des fonctions de quatre modules, dont chacun est utile dans 90 % des algorithmes de trading. Structurez votre code, choisissez une bonne architecture, et la maintenance et la mise à jour de votre système de trading seront beaucoup moins pénibles.
Le code complet sera disponible sous forme d'algorithme de trading open source pour aspis.finance. Il comprendra quelques stratégies de trading simples, mais la caractéristique clé est la possibilité de créer du stockage via des contrats intelligents Aspis, d'attirer des fonds d'investisseurs et d'assurer un partage transparent des bénéfices. Vous pouvez développer votre stratégie, la connecter à Aspis, votre algorithme négociera sur les DEX et les investisseurs et gestionnaires (vous) réaliseront des bénéfices grâce à un contrat intelligent. Restez à l'écoute !
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!