Les meilleurs développeurs Python freelances sont sur Codeur.com

Développer une API en python - interface Bloomberg

 Fermé·1 000 € à 10 000 €·9 offres·1123 vues·13 interactions


Ce dont nous disposons
Un PC Win10 avec le logiciel Bloomberg qui permet, via son API documentée (en Python asynchrone), de :
- retirer des données (pull)
- envoyer des ordres d'exécution (push)

Besoin
Ecrire une surcouche "programme OMS" pour :
(1) simplifier cette API pour les clients
(2) permettre d'ajouter ultérieurement de la logique
(3) gérer le multi-client sous forme de portefeuille virtuel
Ecrire des méthodes simples (callback bloquants dans Jupyter Notebook) pour accéder à ce programme OMS depuis les clients.

Description
Le logiciel Bloomberg offre une API trop sophistiquée pour certains clients.
Pour le pull, l'API est event-driven et mélange plusieurs sources (data) selon qu'on souhaite faire une query historique et avec quelle résolution (le cours du CAC40 hier) ou une query temps réel (streaming).
Pour le push, cela fonctionne également en event-driven, car une exécution est par définition event-driven (partielle, temporairement en attente, etc..).
L'objectif est de fournir un programme serveur OMS qui tourne sur le PC, et qui offre des méthodes simples bloquantes aux clients pour masquer la complexité event-driven, et le module Python sur les clients qui permet de communiquer avec le programme OMS.

Plus en détails
(1) Simplifier
Un client pourrait simplement envoyer des requetes simples à cet OMS. Combien vaut XXX ? Quelle est la position sur le XXX ? Achete n XXX au prix limite de [...].
Sans se soucier de l'aspect asynchrone derrière, ni de la source de données (database histo 1 ou 2, ou streaming).
(2) Permettre de transférer la logique ailleurs que dans l'API. Par exemple, pour un algorithme d'exécution comme une moyenne (VWAP), celle-ci pourrait avoir lieu dans le programme OMS au lieu de demander à l'API d'exécuter sur un cours moyen
(3) Le programme doit gérer un portefeuille virtuel, c'est-à-dire connaître les positions, les impacter, ceci afin de gérer par exemple le multi-client dans le cadre du push. De même en cas de crash/bugs, le programme OMS doit être en mesure de recalculer les positions en redémarrant (en repartant d'une position connue avec certitude, et en redéroulant l'historique des ordres qui a suivi, et en interrogeant l'API pour connaître le statut des ordres, puisque ces derniers sont event-driven, ils continuent en effet d'être exécutés après un crash).

Le projet est éventuellement découpable en plusieurs étapes progressives afin de mieux évaluer le temps de développement et assurer l'évolution des spécifications.
Dans un premier temps, l'objectif possible est de comprendre l'API et de développer des méthodes bloquantes de query et de push directement depuis un client sur le même PC, en ouvrant et en fermant une session à la fin.

Contrainte : le logiciel Bloomberg n'est pas délocalisable, il est souhaitable de pouvoir accéder à nos bureaux à Londres ou à Paris pour les tests, sachant que l'accès à distance n'est actuellement pas offert pour des raisons de sécurité informatique. Toutefois, si le développeur dispose de compétences sysadmin sous windows (bloomberg ne pouvant tourner sur un autre OS), il serait éventuellement envisageable de d'organiser des sessions de connexion distantes. La durée nécessaire d'accès au logiciel live (connecté devra être spécifiée afin d'assurer le développement)

Budget indicatif : 1 000 € à 10 000 €

Publication : 08 juin 2020 à 14h43

Profils recherchés : Développeur Python freelance, Développeur API freelance

Le profil du client est reservé aux prestataires abonnés

Créer un compte

9 freelances ont répondu à ce projet

4 propositions de devis en moins de 2h

+2

Montant moyen des devis proposés : 2 200 €

Estimation du délai : 20 jours

Publier un projet similaire

Chaque jour, des centaines de clients utilisent Codeur.com pour trouver un prestataire. Créez votre compte dès maintenant, remplissez votre profil et trouvez de nouveaux clients.

Trouver des nouveaux clients

Votre navigateur Web n’est plus à jour. Il ne permet pas d’afficher correctement le site Codeur.com.
Nous vous invitons à mettre à jour votre navigateur ou à utiliser un autre navigateur plus récent.