ProRealTime
Pour partager sur le trading automatique, nos algorithmes, nos backtests

Plateforme de trading auto avec IG

par Alex44 » 27 Mai 2017 15:21

Bonjour,

Après quelques mois passés sur PRT et le trading auto avec ProBuilder, j'ai décidé de créer une plateforme de trading auto en passant directement par l'API IG. Cette API est découpée en deux parties, une partie RESTful pour l'envoi de commandes (récupération des marchés, historiques, prise et fermeture de positions...) et une partie en Streaming principalement pour récupérer les cotations en temps réel.

Plusieurs langages sont proposés en exemple, je suis donc parti des exemples fournis en Java (mon domaine). L'implémentation en exemple s'appuie sur le framework Spring qui traduit les requêtes RESTful en classes Java. Après une étude détaillée des exemples, j'en suis venu à abandonner l'usage jugé trop brouillonne en terme d'organisation objet et pas assez performante... J'ai donc refait tous les accès RESTful sans passer par leur exemple en effectuant des tests au cas par cas, cela n'a pas posé de problème.

Pour la partie Streaming, une API est imposée, les ticks sont reçus sans problème une fois que l'on a bien choisi le code epic du marché. La plateforme que j'ai développé les traduit automatiquement en bougie selon différentes tailles déterminées par le demandeur. Point négatif côté IG, l'historique n'est pas disponible en ticks, il faut donc stocker les ticks en permanence.

La plateforme n'est pas encore opérationnelle, elle permet actuellement de :

- Choisir un ou plusieurs marchés (un robot par exemple pourrait parfaitement switcher d'un marché à l'autre)
- Recevoir les ticks avec conversion en chandeliers selon la dimension voulue (plusieurs dimensions simultanées possibles)
- Calculer le RSI selon différentes périodes
- Prendre une position au marché à l'achat/vente et clôturer la position
- Toutes les positions se font avec un stop garanti et une limite.

Cela paraît bien pauvre en comparaison de ProBuilder mais c'est déjà pas mal de chose en plus : tick, multi-dimensions, stop garanti...

A suivre ...

Re: Plateforme de trading auto avec IG

par plataxis » 28 Mai 2017 23:37

Le SLG et le multidimension c'est très bien, par contre les ticks sont pris en compte dans la dernière version de PRT. Bon courage pour la suite !

Re: Plateforme de trading auto avec IG

par falex » 29 Mai 2017 10:03

Je te rejoins : Les requetes REST n'ont pas besoin d'êter transformé par un outil. La "simplicité" des requetes est assez facile à interpreter et à la mettre dans des fonctionns spéciques voir pas du tout.

Pour le lightstream, là il est plus aisé de s'appuyer sur une biblio déjà existante, le boulot pour tout ré-écrire étant plus conséquent.

Mis à part les ticks qui ne sont pas dispo dans l'historique, je trouve les API bien plus "fine" dans la gestions des tickets que PRT.

Nor-mal la population visée n'est pas la même.

Avantage à PRT, le flux de données est de bien meilleurs qualité.

Donc tout dépend de quelle vitesse tu as besoin pour tes trades.

Re: Plateforme de trading auto avec IG

par Alex44 » 29 Mai 2017 12:33

Bonjour à tous,

@plataxis merci pour l'info concernant les ticks, bizarre car on les a bien en backtest, mais je n'ai pas vu qu'il était aussi dispo en réel. Merci pour l'encouragement cela fait plaisir.

@falex, oui l'exemple est un piège à débutant selon moi car l'auteur ne s'est concentré que sur l'aspect technique des accès en générant tout un bazard de classes parfaitement inutiles. Par contre ce que tu me dis sur les flux de données sous PRT plus rapide m'étonne (sauf si cela tourne sur leur serveur à priori), je n'ai pas comparé avec PRT mais j'ai fait tourné en parallèle le site IG et les ticks reçus, à l'oeil nu c'est beaucoup trop rapide pour que je puisse voir de la latence donc on est largement sous la seconde en réactivité déjà. Si j'arrive à construire quelque chose qui tienne la route ;) , je ferais en sorte que le code tourne proche de leur serveur de toute manière...

A suivre !

Re: Plateforme de trading auto avec IG

par Alex44 » 03 Juin 2017 17:56

Bonjour,

Quelques évolutions de la plateforme réalisées ;

- TP/Stop en discrétionnaire avec contrôle de la fiabilité en positions aléatoires avec IG
- Robots coopérants par marché à N états
- Un premier robot fonctionnant via un biais statistique, il est très bête dans son fonctionnement mais il est tout même assez original par rapport au codage sous ProBuilder
- Backtests avec étude combinatoire des paramètres de robot

Je n'ai pas fait de gros efforts sur le robot qui fonctionne à des fins d'étude de la plateforme, malgré tout il donne des résultats pas si mauvais... Le test n'a été effectué que sur le mois de mai avec étude d'une limite idéale. Le backtest donne également un retour sur les positions perdantes qui auraient pu devenir gagnantes en coupant plus tôt. Le prochain objectif va être de faire tourner le tout en continu et voir si la plateforme est assez robuste.

Le robot de test à un taux de réussite de 65% et gagne 46 points en mai. Ce n'est bien sûr pas significatif sur un backtest aussi court mais cela donne un aperçu. Les avantages par rapport à PRT commencent à se dessiner :

- Les backtests en ticks ne se limitent plus à quelques jours
- Le combinatoire reste possible pour évaluer les meilleurs paramètres des robots en tick sur une période assez vaste sans prendre trop de ressource, mais là aussi il existe très certainement des systèmes pour converger vers des solutions plus optimales
- Les backtests sont très rapides de l'ordre de quelques secondes par mois.
- Le codage hors du langage ProBuilder offre beaucoup plus de souplesse.

A suivre...
Fichiers joints

Re: Plateforme de trading auto avec IG

par Alex44 » 09 Juin 2017 18:11

Bonjour,

Petites évolutions de la plateforme :

- Backtests journaliers,mensuels et annuels
- DD disponible
- Mode "bad result" pour créer un backtest dérivé de toutes les erreurs, les erreurs se cumulent et se suppriment automatiquement selon les résultats / améliorations.
- Système de monitoring pour l'instant console mais des graphiques sont prévus pour mieux comprendre ce qui se passe.

J'ai continué à améliorer les réglages du robot témoin :

BACKTEST YEAR 2016
TOTAL=-26,40Pts WIN=180 LOST=23 DD=29,50Pts RATE=88,67%

BACKTEST YEAR 2017
TOTAL=82,10Pts WIN=72 LOST=4 DD=79,80Pts RATE=94,74%

BACKTEST BAD 2017
TOTAL=-76,80Pts WIN=0 LOST=4 DD=0,00Pts RATE=0,00%

Le BAD 2017 correspond à la construction d'un backtest avec toutes les erreurs, il ne reste plus qu'à relancer le backtest dans ce mode pour essayer de filtrer le plus d'erreur possible sans impacter avec les bonnes positions ce qui est finalement compliqué. Il faut de toute manière s'attendre à ce que le robot échoue à certains moments.

Après quelques réglages dans les "Bad result" délicats le robot semble plus fiable...

BACKTEST YEAR 2016
TOTAL=147,80Pts WIN=103 LOST=10 DD=144,80Pts RATE=91,15%

BACKTEST YEAR 2017
TOTAL=77,00Pts WIN=24 LOST=0 DD=74,30Pts RATE=100,00%

A noter que même en cas de coupure internet, ou autre après une prise de position, cela n'impacte pas les performances.

Il ne prend pas beaucoup de positions mais s'il arrive à conserver ce niveau de réussite je serais déjà content et pourrait passer au développement de nouveaux robots.

Prochaines étapes :

- Location d'un serveur
- Exécution en autonome de la plateforme
- Suivi en démo pendant 1 mois

A bientôt

Re: Plateforme de trading auto avec IG

par Alex44 » 18 Juin 2017 11:29

Bonjour,

Quelques évolutions de la plateforme selon le temps dispo (soupir) :

- Backtests en micro et macro mode pour distinguer un robot d'un panel de robots
- Système de premier niveau pour détecter des anomalies de ticks et arrêter les robots
- Chaque robot est indépendant de la plateforme et paramétré en XML, ils sont "pluggables" dans la plateforme qui se charge de l'assemblage final.

Il reste encore pas mal de travail pour en faire une plateforme solide et n'ayant encore jamais fait de fonctionnement en démo/réel, le résultat à suivre est encore incertain. Pour l'instant je me concentre uniquement sur la plateforme plutôt que sur les robots qui suivront, tant que je ne suis pas sûr d'avoir quelque chose qui résiste "aux chocs" et qui me donne un bon suivi, je reste en test.

Concernant le passage de PRT à l'API IG, le sentiment de liberté est vraiment appréciable par contre je dirais si vous n'avez pas un bon niveau en développement, il vaut mieux se concentrer sur PRT/MT4.... ou bien se former sérieusement surtout en terme objet (c'est un développeur avec 20 ans de dev. en back et font office qui le dit...), réaliser une plateforme solide et facilement évolutive ne s'improvise pas.

A suivre

Re: Plateforme de trading auto avec IG

par Alex44 » 24 Juin 2017 18:01

Quelques améliorations de la plateforme :

- Arrêt automatique à heure fixe ou bien en cas de problème
- Si une perte maximale est atteinte, la plateforme s'arrête
- Monitoring étendu à tous les marchés, tous les robots et toutes les positions, la plateforme stocke toutes ces informations sur le disque dès qu'elle s'arrête chaque jour.
- la plateforme est maintenant autonome et exécutable via un simple batch, un répertoire de travail avec sa configuration et les marchés/robots autorisés sont alors pris en compte au démarrage, comme tous les répertoires sont relatifs cela marche n'importe où.

Comme la plateforme dispose de suffisamment d'éléments pour tourner, j'ai créé un compte aws chez amazon, puis j'ai choisi une instance ec2 à dublin pour l'instant gratuite mais je ne connais pas le délais avant paiement.

Pour l'installation de la plateforme, j'ai choisi un accès FTP sécurisé (pas envi qu'on me pique mon code sur le net), il faut définir un groupe de sécurité côté AWS, l'associer à l'instance, autoriser les ports 20/21 en entrée/sorties. Pour le service FTP je suis passé par IIS, j'ai associé le serveur à un répertoire en autorisant un compte utilisateur windows dédié. Cette partie d'administration m'a demandé quelques heures avant de fonctionner.

La transfert de la plateforme s'est faite par filezilla mais j'espère pouvoir tout automatiser en ligne de commande.
Pour l'exécution de la plateforme j'avais deux choix :
- La faire tourner 100% du temps,
- Ne l'activer qu'en début de journée et la laisser se fermer toute seule. J'ai choisi cette configuration qui semble la plus fiable même en cas de crash. Il suffit de créer une tâche planifiée en précisant bien les horaires d'exécution et faire une exécution hors connexion utilisateur et les priorités.

Voilà la plateforme est maintenant autonome, il n y a que le robot témoin qui tourne..., y a plus qu'à voir si tout cela tient la route en démo.

A suivre !

Re: Plateforme de trading auto avec IG

par Anewa » 24 Juin 2017 18:11

Que de chemin parcouru depuis tes premiers robots sur PRT ^^`

J'ai hâte de voir la suite de tes expérimentations

Re: Plateforme de trading auto avec IG

par Alex44 » 24 Juin 2017 19:37

Merci anewa pour le clin d'œil, c sympa de te recroiser :). Oui je suis passé à l'étape 2 mais bon pour l'instant je ne suis sûr de rien ! Comme je disais sous PRT advienne que pourra :D

Articles en relation
Pro order trading auto débutant
par Xtremriders » 26 Juil 2017 20:55 (3 Réponses)
Expérimentation Trading Auto en Réel
Fichier(s) joint(s) par BillyRayValentine » 11 Oct 2017 12:52 (27 Réponses)
Création d'un algorythme de trading auto scalp + backtest
Fichier(s) joint(s) par ticktack » 18 Aoû 2015 07:53 (145 Réponses)
TP partiel en discrétionnaire et\ou auto
par Benoist » 22 Mai 2017 18:58 (5 Réponses)
Optimisation stratégie auto
par trappiste73 » 25 Mai 2017 23:00 (2 Réponses)
Expériences de traders algo et/ou auto.
Fichier(s) joint(s) par swingwin » 09 Nov 2015 22:44 (11 Réponses)
difficile de battre l'indice en swing auto
par BillyRayValentine » 19 Mai 2017 18:01 (8 Réponses)
système auto qui fait +de 10 points nets par trade ?
par ticktack » 26 Nov 2016 18:35 (38 Réponses)
utilisation algorithme sur plateforme cmcmarket ?
par Benoist » 18 Déc 2016 04:13 (7 Réponses)
Programme avec différentes UT
par Topitop » 28 Fév 2017 22:13 (16 Réponses)

ProRealTime

Alors partagez-le 5 fois c'est bon pour la santé