IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Algorithmes et structures de données Discussion :

Détection de vagues de Wolfe


Sujet :

Algorithmes et structures de données

  1. #1
    Membre régulier
    Homme Profil pro
    sans
    Inscrit en
    Mars 2020
    Messages
    182
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : sans

    Informations forums :
    Inscription : Mars 2020
    Messages : 182
    Points : 117
    Points
    117
    Par défaut Détection de vagues de Wolfe
    Bonjour

    Je développé un petit simulateur boursier afin de détecter des vagues de Wolfe sur une courbe de prix. (http://www.broker-forex.fr/trading-vagues-de-wolfe.php)

    Une petite image valant souvent mieux qu un long discours :
    Nom : de4e4d0d8e2942849aaf587aac9f183f-fcc83e932ca3457da8dc0262a6fd432e.gif
Affichages : 2106
Taille : 11,1 Ko
    Pour y parvenir je parcours le fichier des prix et stocke les 5 derniers pics/creux dans une collection d objets et ensuite procède ainsi
    pour un Bullish :
    Si 3 < 5 et 1 <3 je calcule l équation de la droite passant par 1 & 3, je vérifie si 5 < la droite calculée, je vérifie que 4 < 2. Si toutes ces conditions sont remplies, j ai un signal pour un achat . Je procède de la même façon pour un signal à la vente.

    Je précise que je mets dans une bdd SQLIte tous les pics et creux successif (date de début, de fin, prix d ouverture, de clôture, sens et l'amplitude du mouvement). Peut être certaines de ces informations son inutiles ou redondantes comme les prix et l évolution du prix qui est la différence entre prix de début et de fin du mouvement mais je ne sais pas ce dont j aurais besoin, je préféré plus que moins.

    J arrive donc à détecter ce type de figure si elle est construite par 5 pics/creux successifs.

    Le pb est que l’évolution des prix entre chaque point est rarement aussi parfaite, rectiligne... Cela correspond plus souvent à ça Nom : 5.png
Affichages : 2731
Taille : 42,9 Ko

    Je cherche donc à identifier ce type de figure dans un 'environnement' complexe .
    Je m'initie à la programmation en Delphi depuis près d un mois et j avoue que là je suis totalement perdu bien en amont du codage mais bel et bien dans le raisonnement.

    Tous vos conseils, vos avis (même sur ma façon de procéder) sot les bienvenus.

    D avance merci

  2. #2
    Membre actif
    Homme Profil pro
    Développeur de jeux vidéo
    Inscrit en
    Février 2013
    Messages
    317
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Développeur de jeux vidéo

    Informations forums :
    Inscription : Février 2013
    Messages : 317
    Points : 233
    Points
    233
    Par défaut
    Ton problème de raisonnement, est dû à deux choses: l'incertitude sur la prise de décision et l'aléatoire des données.
    Le problème n'est pas dans la méthode, mais dans la décision, il est donc insoluble par le raisonnement
    Savoir pour comprendre et vice versa.

  3. #3
    Rédacteur/Modérateur

    Homme Profil pro
    Ingénieur qualité méthodes
    Inscrit en
    Décembre 2013
    Messages
    4 057
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur qualité méthodes
    Secteur : Conseil

    Informations forums :
    Inscription : Décembre 2013
    Messages : 4 057
    Points : 9 396
    Points
    9 396
    Par défaut
    Tu as une BDD SQLLite ; je ne connais pas précisément SQLLIte, mais je vois SQL, donc c'est une bonne base.

    Supposons que ta table avec toutes les données brutes s'appelle BDD , avec comme colonnes IDValeur, NUMJOUR, VAL_MINI et VAL_MAXI

    Je considère que numjour est un entier, c'est beaucoup plus facile à manipuler qu'une date. Et ça permet de 'by-passer' facilement les jours fériés et les week-ends.

    Voici une requete qui peut donner pas mal de choses :
    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    select A1.IDValeur, A1.Numjour,  A1.val_mini as mini1 ,  A2.numjour  ,   A2.val_maxi as maxi2, A3.numjour,  A3.val_mini as mini3,  A4.numjour, a4.val_maxi as maxi4 ,  a5.numjour , a5.val_mini as mini5 
     from BDD A1 , BDD A2, BDD A3, BDD A4, BDD A5
    where A2.IDValeur = A1.IDValeur and A2.NUMJour > A1.Numjour 
    and  A3.IDValeur = A1.IDValeur and A3.NUMJour > A2.Numjour 
    and  A4.IDValeur = A1.IDValeur and A4.NUMJour > A3.Numjour 
    and  A5.IDValeur = A1.IDValeur and A5.NUMJour > A4.Numjour 
    and A3.VAL_MINI < A1.VAL_MINI
    and (A5.Val_mini-A1.val_mini)/(A5.num_jour-A1.num_jour) <  (A3.Val_mini-A1.val_mini)/(A3.num_jour-A1.num_jour) 
    and a4.val_maxi < A2.val_maxi
    and (A4.Val_maxi-A2.val_maxi)/(A4.num_jour-A2.num_jour) <  (A3.Val_mini-A1.val_mini)/(A3.num_jour-A1.num_jour) 
    and not exists 
    ( select * from BDD A0 
      where a0.idvaleur= A1.idvaleur 
       and a0.numjour between a1.numjour +1 and a5.numjour-1
    and  (A0.Val_mini-A1.val_mini)/(A0.num_jour-A1.num_jour) <  (A0.Val_mini-A1.val_mini)/(A3.num_jour-A1.num_jour) 
    )


    Ca veut dire quoi tout ça ?
    On cherche une action (identifiée par idValeur), on cherche 5 jours pas forcément consécutifs ,
    - on veut que le min du jour 5 soit en dessous de la droite passant par min(jour1) et min(jour3) ... c'est la restriction : and (A5.Val_mini-A1.val_mini)/(A5.num_jour-A1.num_jour) < (A3.Val_mini-A1.val_mini)/(A3.num_jour-A1.num_jour)
    - on veut que la droite passant par les points 2 et 4 descende, et on veut qu'elle descende plus vite que la droite passant par les points 1 et 3, pour que ces 2 droite se croisent dans un point qu'on va appeler ETA.
    - et on veut qu'il n'y ait pas d'autre point entre le jour 1 et le jour 5, qui soit en-dessous de la droite 1-3 : ( toute la partie qui commence par and not exists ...) Toute cette dernière partie a une syntaxe qui n'est peut-être pas acceptée par SQLLite ; tu peux commencer à t'amuser sans cette condition.

    Cette requête nous donne l'identifiant des actions qui ont cette configuration et les numéros des 5 jours qui conviennent, et les valeurs mini ou maxi qui nous intéressent, pour ces 5 jours ;
    On peut ajouter une colonne, avec le n° du jour où les 2 droites se rejoignent, et une autre colonne avec la valeur correspondante (le point ETA dans ton dernier graphique)

    Voilà une bonne base pour travailler.
    A toi de jouer.
    N'oubliez pas le bouton Résolu si vous avez obtenu une réponse à votre question.

  4. #4
    Membre régulier
    Homme Profil pro
    sans
    Inscrit en
    Mars 2020
    Messages
    182
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : sans

    Informations forums :
    Inscription : Mars 2020
    Messages : 182
    Points : 117
    Points
    117
    Par défaut
    Merci.

    C est tellement clair que j ai tout compris à la première lecture.

    J avoue ne pas avoir envisagé les pentes dans mon raisonnement alors que c est d une logique implacable.

    Merci. Je vais potasser tout cela

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Détection de vagues dans un cour boursier
    Par Stef784ever dans le forum Mathématiques
    Réponses: 9
    Dernier message: 13/08/2011, 21h50
  2. détection de player
    Par mat10000 dans le forum Flash
    Réponses: 8
    Dernier message: 23/10/2003, 16h36
  3. Détection MySql
    Par gjullien dans le forum Bases de données
    Réponses: 5
    Dernier message: 20/08/2003, 18h15
  4. Détections avec WebBrowser
    Par Wazo_Sportive dans le forum Composants VCL
    Réponses: 4
    Dernier message: 11/08/2002, 19h32
  5. Détection de 2 touches appuyées
    Par cyrose dans le forum C++Builder
    Réponses: 2
    Dernier message: 26/07/2002, 16h25

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo