Aujourd’hui, je vais partager avec vous comment récupérer les cours  via l’API IG Market en PYTHON, étape nécessaire pour backtester ensuite ses stratégies de trading.

API IG Market
API IG Market: un site dédié pour son utilisation

Pourquoi une infrastructure dédiée?

Il est vrai que prorealtime offre de larges possibilités pour backtester et optimiser ses stratégies avec un historique de cours assez profond. Mais il n’a jamais répondu à mes attentes sur plusieurs points:

  • Je maîtrise personnellement le perl et le python
  • Je ne me limite pas seulement aux chandeliers sur des UT minutes mais trade surtout en kagi ou en ticks.
  • J’aime bien le multi-timeframe (analyses de plusieurs UT pour les setups). Avec PRT, c’est compliqué, mais alors compliqué!!
  • Bien souvent, je ne trouve pas du tout les mêmes résultats que prt. Je sais pourquoi mes programmes bugguent, j’ignore pourquoi ceux de prt bugguent…
  • Mes setups programmés sont parfois ignorés avec prt, j’ignore encore une fois pourquoi.
  • Enfin, on ne peut pas créer d’automate réel sur prt en tick ou en kagi, donc la seule possibilité est de passer par l’API IG Market avec un robot homemade. Le backtest est donc la première brique de programmation du futur robot en temps réel.

Donc voilà, je fais mes backtests maison avec les données enregistrées via l’api d’IG. Nous allons voir ici comment les récupérer.

Le vps: outil indispensable

A moins que vous comptiez laisser votre pc ouvert 24h/24h chez vous avec générateur de secours et pc en double pour prendre le relai en cas de panne, l’unique solution fiable pour aspirer les cours via l’API IG Market est de passer par un VPS (virtual private serveur).

Pour 3eur/mois, vous avez un ordinateur qui tourne 24/24 pour vous, sans bruit ni risque d’incendie. Faites un tour chez OVH, la référence pour ce service:

https://www.ovh.com/fr/vps/vps-ssd.xml

Prenez le systeme d’exploitation Ubuntu, c’est gratuit et absolument nécessaire pour la suite.

A cette étape, vous serez déjà dans les moins de 1% de geek de la planète, bravo!

Python et API d’IG

C’est la partie technique. Si vous ne connaissez rien en informatique, alors passez des heures incalculables sur le web à vous former. Je suis un pur autodidacte en programmation, et cela ne sert à rien que je vous donne tout directement car vous ne saurez pas réparer au premier petit bug. Et je ne suis pas là non plus pour faire le pompier!

Tout d’abord, un grand détour sur ce site vous sera nécessaire pour commencer:

https://python.developpez.com/

Ensuite, rendez vous sur cette page pour récupérer les librairies (python pour ma part) de l’API IG Market:

https://labs.ig.com/

Il vous faut enfin MySQL et python d’installés sur votre vps, et toutes les librairies qui seront nécessaires à faire tourner le petit programme ci dessous (notamment celle d’IG of course)

Ce petit programme vous permet donc d’enregistrer les cours du DOW, DAX et NQ dans une table SQL avec 4 colonnes: Marché, Date, BID, ASK.

Il se déconnecte/reconnecte s’il n’y a pas de flux pendant 60 secondes.

Il n’entre pas les datas en temps réel dans la base de donnée, mais stocke dans une variable les commandes d’insertion. Il exécute l’ensemble de ces commandes en bloc toutes les secondes. C’est une subtilité pour éviter de planter SQL si plusieurs requêtes sont faites en même temps.

Le programme tourne tous les jours de la semaine jusqu’à 23h16, et un cron le redémarre tous les jours à 23h45.

Par sécurité, un clone de ce programme tourne également en même temps, au cas ou l’un des deux plantes. Pendant que le premier se reconnecte (après 60 secondes si bug), l’autre programme prend alors le relai.

Conclusion

Vous savez tout maintenant. Quand je posterai des codes de backtests, ils se baseront donc sur les cours stockés dans la table « IG_HISTO ». Commencez rapidement afin de vous faire un historique de plusieurs mois et pouvoir faire des backtests avec assez de profondeur.

Je ferai bientôt le même tutoriel sur l’API d’interactive broker pour récupérer les cours futures.

Bon geek à tous!