Passions d’un développeur indépendant

Un nouveau blog sur Wefrag le blog de DraK.

Algorithme Génétique et Réseau de Neurones : Exemple #3 : Le robot trader

Bonjour à tous,

Nous allons parler ici d’algorithme génétique et de réseau de neurones, si ces concepts ne vous sont pas familiers, 2 articles sont à votre disposition pour palier ce problème : Algorithme génétique et Réseau de neurones.

Introduction Forex

Gérant les cotations des devises, ce marché fait 5000 milliards de dollars d’échanges chaque jour.

Les banques, les états et autres fonds d’investissement se battent dessus en permanence par traders et robots interposés.

Les robots traders sont autorisés, et même encouragés par certains professionnels du milieu.

L’accession au Forex pour les particuliers a été facilitée en 2000, ce qui a amené pas mal de chair fraîche pour tout ce beau monde.

90% des traders particuliers sont perdants, il faut les venger !

Notre stratégie ? C’est simple :

*Retire le cigare de sa bouche* T’achète quand c’est bas, tu vends quand c’est haut, pigé !?

Mais pourquoi j’écris ces conneries ? xD

Mise en pratique

Structure du réseau de neurones

La structure du réseau neuronal est assez classique, il y a 2 neurones :

  • 1 neurone pour ouvrir un trade
  • 1 neurone pour fermer le trade en cours

Les entrées correspondent aux informations fournies par le marché :

  • La tendance du marché (le cours monte ou baisse)
  • La force de la tendance
  • Le volume des transactions du marché
  • Le rapport de force entre les acheteurs et les vendeurs
  • Etc…

Le réseau de neurones est appelé 2 fois de suite, une fois pour prendre une décision d’achat, et une autre pour prendre une décision de vente.

Les informations du marché sont prémâchées 2 fois (achat et vente) par le code pour pouvoir être envoyées dans le réseau.

Voici 2 tableaux récapitulant les décisions prises en fonction de la réponse des neurones :

Tableau des décision pour un achat

Tableau des décisions pour un achat

Tableau des décisions pour la vente

Tableau des décisions pour la vente

Algorithme génétique

L’algorithme génétique paramètre le réseau de neurones, c’est donc lui qui fait l’apprentissage.

Contrairement à l’algorithme avec les voitures, nous ne cherchons pas un idéal pour terminer l’apprentissage. Nous ferons 1000 générations quelque soit le résultat.

Chaque génération se verra composée d’une population de 50 individus (ADN).

Ce qui nous fera 50000 ADN testés, soit autant de robots différents.

Évidemment, 95% de ces robots seront complètement nazes, mais on s’en fout !

Comme d’habitude, la sélection des meilleurs, la reproduction et les mutations seront de la partie !

Fonction d’évaluation

Les robots sont chargés dans une plateforme de trading qui simuler les trades sur 1 année de cours passé.

Le programme qui supervise l’apprentissage récupère les résultats de tous les trades passés sur l’historique et calcule des statistiques dessus.

Le score d’un ADN est basé sur les informations suivantes :

  • Nombre de trades
  • Rendement mensuel
  • Efficacité (ratio <total des gains> / <total des pertes>)
  • Plus grosse chute de capital sur le compte

Résultat en vidéo

YouTube Preview Image

Il est donc possible de faire un robot de trading avec un algorithme génétique et un réseau neuronal, même basique.

Bon week-end à tous :)

Tags: , , , , , , ,

8 commentaires pour “Algorithme Génétique et Réseau de Neurones : Exemple #3 : Le robot trader”

  1. neFAST dit :

    Les tableaux sont bien en Comic Sans ? (je repasse quand j’aurai lu jusqu’au bout)

    (d’ailleurs je vois que tu ne m’as jamais répondu ici : http://blogs.wefrag.com/drak/2015/11/20/algorithme-genetique-exemple-2-voiture-2d-et-reseau-de-neurones/#comment-12 )

  2. DraK dit :

    Ouais, désolé pour le blasphème…

  3. neFAST dit :

    Assez intéressant mais on reste sur sa faim. Faut que je regarde tes autres vidéos je pense.
    Tu as développé quels outils ? (l’interface web qu’on voit dans la vidéo, la partie entrainement, la partie qui permet de tester un des robots retenus ?)

  4. DraK dit :

    J’ai développé l’outil Web qui contient la base de données et supervise tout, le robot d’apprentissage (sur plateforme MT4) qui se connecte à la partie Web pour donner les résultats, et le robot qui trade en temps réel (sur MT4).
    La plateforme MT4 permet de gérer des robots codés dans son langage, j’ai codé que le robot, pas la plateforme.

  5. neFAST dit :

    Ok, du coup si on veut s’amuser à expérimenter comme toi, le chemin est long, c’est ça ?

  6. DraK dit :

    Pas tant que ça, c’est l’optimisation qui est longue, j’avais un truc qui tournait au bout d’une semaine environ, mais il manquait pleins de fonctionnalités, et les calculs étaient longs. Je n’avais pas le site web, je stockais en fichier. Mais je pouvais déjà trouver des ADN et les tester en temps réel.

    Bon courage si tu t’y mets ^^

  7. gordonf_69 dit :

    Super intéressant ! D’autre articles sont les bienvenues !
    C’est 100% Java ?

  8. DraK dit :

    @gordonf_69
    Merci beaucoup :)
    Contrairement à mes autres articles, il n’y a pas de Java dans ce projet. Le site est en PHP, et le robot est en MQL4 (proche du C++, c’est le langage de MetaTrader 4, la plateforme de trading utilisée).

Laisser un commentaire

Vous devez être connecté avec votre compte Wefrag pour publier un commentaire.