Etat du projet « Capture des cours »
Cela fait plus de deux ans que je travaille sur la capture des cours IG (de façon irrégulière).
Il y a 10 ans, je capturais les cours de ProRealTime et de WHSelfinvest avec une méthode artisanale : des milliers de captures d’écrans, et de la reconnaissance de chiffres dans les images capturées. C’était une grosse galère.
Heureusement, avec l’API IG, ce temps est révolu. On a directement les valeurs des cours en temps réel. Par contre, il faut toujours capturer en temps réel, et on court toujours le risque de louper des données en cas de panne quelconque (coupure internet, panne de réveil qui fait qu’on n’a pas lancé le logiciel à temps, redémarrage intempestif de Windows et j’en passe). IG offre bien la possibilité de télécharger après coup des données historiques, mais la quantité de données autorisées au téléchargement est très limitée.
Depuis avril 2016, j’ai un logiciel de capture des cours à peu près fonctionnel. En voici une capture d’écran prise ce matin:
-
- Capture.PNG (26.21 Kio) Vu 1180 fois
Les gros défauts du logiciel sont :
• Les cours sont sauvegardés avec l’heure correspondante mais pas la date. La date est sauvegardée dans le nom du fichier, qui est créé à l’ouverture du logiciel. Ainsi, il faut fermer manuellement le logiciel chaque soir et l’ouvrir chaque matin. En général, je sauvegarde les cours de 8h à 23h (donc pas la nuit). Et il est arrivé 3 ou 4 fois que j’oublie d’ouvrir le logiciel, ou que je me lève un peu tard le matin.
• Les redémarrages de Windows posent problème. Il faudrait que le logiciel redémarre automatiquement au démarrage de Windows, et il faudrait supprimer le mot de passe Windows. J’ai ainsi loupé trois fois une semaine de capture quand je suis parti en vacances.
• Le programme utilise mon compte IG démo et non réel. J’ai remarqué que dans certains cas, les cours du CAC en démo étaient différents des cours du CAC en réel (probablement un retard de quelques minutes). Mes données sont donc parfois erronées. Ce problème est facile à régler : il suffit de se connecter avec le compte réel.
• Le logiciel utilise le vieux framework graphique de Java : Java Swing. Il faudrait moderniser tout ça et utiliser le nouveau framework graphique plus performant : JavaFX.
• Le logiciel crée chaque jour un fichier log censé enregistrer les événements qui se produisent, notamment les coupures de connexion. Ce système de fichier log est mal fait et doit être revu.
• La gestion des événements exceptionnels doit être revue, elle est trop rudimentaire pour le moment. En cas de coupure de connexion internet ou perte de connexion IG, le logiciel tente de se reconnecter au bout d’une seconde, puis 2 secondes, puis 4 secondes, puis 8 secondes etc…
• Le programme n’est pas portable. Si je pars en vacances avec mon ordi, et que je veux faire tourner pendant ce temps-là le programme sur l’ordi de quelqu’un d’autre, il risque d’y avoir des problèmes : java doit être installé, et les noms des répertoires ne vont probablement pas coller.
Voilà les problèmes que j’aimerais régler rapidement, pour avoir un logiciel complètement automatisé et plus sûr.
L’idéal serait de repérer les données manquantes en cas de coupure de connexion, puis de les re-télécharger automatiquement. Il faudrait aussi passer par un VPN. Je verrai ces raffinements plus tard.