reconnaissance euclidienne Marteau vert

Viewing 5 posts - 1 through 5 (of 5 total)
  • Author
    Posts
  • #228019 quote
    Fabien3838
    Participant
    New

    Bonjour à tous,

    Mon objectif est de créer dans un premier temps un code permettant la détection de marteau vert “sur le marché des actions” avec la méthode de distance euclidienne puis réaliser une détection avec le screener . ma première étape a été de créer un data set de 3 Marteaux vert (académique , bien joli) que j’ai pris sur une action (Bouygues). Mon indicateur fonctionne très bien sur l’action Bouygues mais en revanche et la est le problème il est inopérant sur les autres action ou passe au dessus de mon indicateur de détection “marteau vert”. Ma déduction est que la comparaison des marteaux du data set (de l’action Bouygues) à la bougie courante d’une autre action est trop importante ce qui se caractérise par une distance trop grande. EX prix Bouygues 30 Euros et prix LVMH 700 Euros. Existe il une solution ce problème ? faut il créer un data set sur toutes les actions ? 🙁

    merci à vous

     

    // indicateur reconnaissance marteau vert methode Euclidienne
    
    signal=0
    detection=0
    NumberOfItem=3
    Majority= ROUND(NumberOfItem /3)
    
    
    ///DATA SET X2 //................................
    
    // Marteau 1
    
    low1=27.14
    open1=27.48 -low1
    close1=27.61 -low1
    hight1=27.61 -low1
    low1=0 // remise à zero du low
    
    // Marteau 2
    
    low2=31.17
    open2=31.54 -low2
    close2=31.63 -low2
    hight2=31.65 -low2
    low2=0 // remise à zero du low
    
    // Marteau 3
    
    low3=27.47
    open3=27.93 -low3
    close3=28.09 -low3
    hight3=28.08 -low3
    low3=0 // remise à zero du low
    
    //.............................................
    //COMPARAISON BOUGIE DU JOUR
    openjj=open-Low
    hightjj=high - Low
    closejj=close-Low
    lowjj=low-Low
    //............................................
    //........... application formaule distance Euclidiene ................
    //* Distance Euclidiene d(X1,X2) *//
    
    // distance Marteau 1
    
    Distance1= SQRT(SQUARE(open1-openjj)+SQUARE(close1-closejj)+SQUARE(hight1 - hightjj ) )
    
    // distance Marteau 2
    
    Distance2= SQRT(SQUARE(open2 -openjj)+SQUARE(close2-closejj)+SQUARE(hight2 - hightjj ) )
    
    
    // distance Marteau 3
    
    Distance3= SQRT(SQUARE(open3 -openjj)+SQUARE(close3-closejj)+SQUARE(hight3 - hightjj ) )
    
    //......................................................................................
    // Seuil de detection
    Sdetection=Seuil
    
    //Vote Marteau 1
    If Distance1 <=Sdetection THEN
    detection=detection+1
    ENDIF
    
    //Vote Marteau 2
    If Distance2  <=Sdetection THEN
    detection=detection+1
    ENDIF
    
    //Vote Marteau 3
    If Distance3  <=Sdetection THEN
    detection=detection+1
    ENDIF
    //.....................................................................................
    
    // vote de majorité
    if detection >= majority THEN
    signal=1
    ENDIF
    
    RETURN signal, Distance1
    
    #228030 quote
    Nicolas
    Keymaster
    Master

    Si tu utilises des valeurs prix pour les calculs de la détection d’une figure de chandelier, il est fort probable que la détection soit inopérante d’une action à l’autre. Je te conseille de réévaluer ton code pour créer une détection de distance “dynamique” et ainsi compatible pour tous les instruments.

    #228031 quote
    Fabien3838
    Participant
    New

    Bonjour Nicolas,

    Humm il me semblait… Pourrais tu me donner le principe d’une détection “dynamique “? faut il utiliser une fonction ? des pourcentages entre le corps et les ombres ?..

    #228079 quote
    Iván González
    Moderator
    Master

    Bonjour
    Voici un exemple de détection de bougies marteau et marteau inversé.
    Vous pouvez jouer sur les proportions en fonction de ce que vous recherchez.

     

    if close > open then
    wickinf = open - low
    wicksup = high - close
    body = close - open
    else
    wickinf = close - low
    wicksup = high - open
    body = open - close
    endif
    
    hammer = wickinf >= (2/3)*range and body >= (1/10)*range
    hammerinv = wicksup >= (2/3)*range AND body >= (1/10)*range
    
    RETURN hammer AS "hammer", hammerinv AS "hammerinv"
    #228088 quote
    Fabien3838
    Participant
    New

    Beaucoup plus simple et efficace.

     

    Merci pour votre retour Iván

Viewing 5 posts - 1 through 5 (of 5 total)
  • You must be logged in to reply to this topic.

reconnaissance euclidienne Marteau vert


ProBuilder : Indicateurs & Outils Personnalisés

New Reply
Author
author-avatar
Fabien3838 @fabien3838 Participant
Summary

This topic contains 4 replies,
has 3 voices, and was last updated by Fabien3838
1 year, 11 months ago.

Topic Details
Forum: ProBuilder : Indicateurs & Outils Personnalisés
Language: French
Started: 02/12/2024
Status: Active
Attachments: No files
Logo Logo
Loading...