API en Python
  • Back to Main Website
  • Home
  • Introduction aux API
    • Introduction aux API
    • API - Définition
    • Utiliser une API
    • Créer une API
    • Sécuriser une API
    • Concepts élargis

    • Travaux Pratiques
    • TP - Premiere requêtes
  • Consommation avancée d’API
    • Consommation avancée d’API
    • Protocols de communication
    • Authentification et sécurité des API
    • Optimisation des ressources et de la performance des API

    • Travaux Pratiques
    • TP : Comparaison des performances des appels en tant qu’utilisateur
  • Communication entre Processus (IPC)
    • Communication entre Processus (IPC)
    • Introduction à l’IPC
    • Sockets
    • Fichiers et IPC
    • Shared Memory
    • Pipes
    • gRPC
    • Conclusions

    • Travaux Pratiques
    • TP3 Option 1 Service gRPC pour indicateurs de marché
    • TP3 Option 2 Serveur de Données de Marché via Socket et Mémoire Partagée
  • Conception d’APIs
    • Conception d’APIs
    • Introduction à la Conception d’APIs
    • Les principaux Frameworks d’APIs en Python
    • Fast API
    • Django REST Framework
    • Tester et documenter une API
    • Bonne pratique générale
    • Conclusion

    • Travaux Pratiques
    • TP 4 : API d’Indicateurs Financiers avec Gestion des Niveaux d’Accès
  • Déploiement d’API - Principes Généraux et Mise en Pratique avec Heroku
    • Déploiement d’API - Principes Généraux et Mise en Pratique avec Heroku
    • Introduction au Déploiement d’API
    • Heroku - Présentation du service
    • Meilleurs Pratiques avant un déploiement
    • Deploiement sur Heroku
    • Déploiement avancé
    • Bonus - Nom de Domaine
    • Conclusion
  • Sujets de Projets possibles
    • Projets
    • M2EIF Quant 2023/2024
    • M2EIF Quant 2024/2025
  • Code source
  1. Travaux Pratiques
  2. TP : Comparaison des performances des appels en tant qu’utilisateur
  • Consommation avancée d’API
  • Protocols de communication
  • Authentification et sécurité des API
  • Optimisation des ressources et de la performance des API
  • Travaux Pratiques
    • TP : Comparaison des performances des appels en tant qu’utilisateur

On this page

  • TP : Interaction avec l’API Binance pour la récupération de données de marché et l’utilisation de Websockets
    • Objectif :
    • Partie 1 : Asynchronie, Multithreading et Multiprocessing appliqués à la récupération de données de marché
    • Partie 2 : Utilisation des Websockets

Code Links

  • Launch Binder
  1. Travaux Pratiques
  2. TP : Comparaison des performances des appels en tant qu’utilisateur

TP : Comparaison des performances des appels en tant qu’utilisateur

Cours
Fondamentaux
Dans ce chapitre, nous explorons les principes fondamentaux de la Programmation Orientée Objet (POO) en Python. Les étudiants découvriront comment Python applique les concepts de la POO tels que l’encapsulation, l’héritage et le polymorphisme pour créer des modèles financiers complexes. Avec une emphase sur les applications pratiques en finance de marché, ce chapitre vise à doter les étudiants d’une compréhension robuste de la POO pour le développement de solutions logicielles sophistiquées et efficaces en Python.
Author

Remi Genet

Published

2024-12-10

TP : Interaction avec l’API Binance pour la récupération de données de marché et l’utilisation de Websockets


Objectif :

  • Apprendre à interagir avec l’API Binance pour récupérer les données de marché des cryptomonnaies et à comprendre les différences entre les appels API séquentiels, asynchrones, multithreads et multiprocessus.
  • Apprendre à utiliser un WebSocket.

Prérequis : - Python 3.x - Compréhension de base des requêtes HTTP, de l’asynchronisme, des threads, des processus et des WebSockets. - Installation des packages nécessaires (requests, aiohttp, asyncio, websockets, threading, multiprocessing si nécessaire).

Partie 1 : Asynchronie, Multithreading et Multiprocessing appliqués à la récupération de données de marché

  1. Liste des symboles : Commencez par récupérer la liste de tous les symboles spot disponibles sur Binance via l’API.

  2. Récupération des données : Pour chaque symbole, récupérez les données des 60 dernières bougies à la minute.

  3. Méthodes d’exécution :

    • Séquentielle : Utilisez des requêtes HTTP séquentielles pour récupérer les données.
    • Asynchrone : Modifiez le script pour utiliser asyncio et aiohttp afin de récupérer les données de manière asynchrone.
    • Multithreading : Utilisez le module threading pour récupérer les données à l’aide de threads.
    • Multiprocessing : Expérimentez avec le module multiprocessing pour récupérer les données à l’aide de processus.
  4. Comparaison des performances : Comparez les performances de chacune des méthodes d’exécution en termes de temps nécessaire pour récupérer toutes les données. Documentez vos observations.

Partie 2 : Utilisation des Websockets

  1. Établissement de la connexion : Connectez-vous aux streams WebSocket pour btcusdt et btceth en utilisant le stream @depth1@100ms pour recevoir les mises à jour du carnet d’ordres de niveau 1 toutes les 100 ms.

  2. Traitement des données : À chaque mise à jour du carnet d’ordres, affichez un bid/ask synthétique et comparez-le avec les données du WebSocket pour ethusdt.

  3. Analyse : Selon les prix de vos bid-ask synthétiques et les prix de la paire ethusdt, des opportunités d’arbitrage triangulaire sont-elles possibles ? Si oui, expliquez les facteurs non pris en compte qui pourraient expliquer pourquoi il semble possible de réaliser un arbitrage.

Ressources : - Documentation de l’API Binance pour les points d’accès des données de marché : Documentation de l’API Binance - Documentation de l’API Binance pour les Websockets : Documentation des Websockets Binance - Toute la documentation de l’API Binance est également disponible directement sur GitHub : Documentation de l’API Binance sur GitHub

Back to top
Optimisation des ressources et de la performance des API

Python API, Rémi Genet.
Licence
Code source disponible sur Github

 

Site construit avec et Quarto
Inspiration pour la mise en forme du site ici
Code source disponible sur GitHub