detection swing

Viewing 2 posts - 1 through 2 (of 2 total)
  • #247718

    // — Déclaration des variables d’entrée (Inputs) —
    // Ces variables seront modifiables via l’interface ProRealTime
    input LookbackLeft = 5 // Nombre de bougies à gauche à comparer (X)
    input LookbackRight = 5 // Nombre de bougies à droite à comparer (Y)

    // — Définition des Swing Highs et Swing Lows —

    // Swing High (SH): Le plus haut de la bougie actuelle est le plus haut des ‘LookbackLeft’ bougies précédentes
    // ET le plus haut des ‘LookbackRight’ bougies suivantes.
    // Nous utilisons des bougies décalées pour les bougies “suivantes” pour une logique de backtesting.
    // high[LookbackRight] : plus haut de la bougie LookbackRight périodes DANS LE FUTUR par rapport à la bougie actuelle.
    // high[0] : plus haut de la bougie actuelle.
    // high[1] : plus haut de la bougie précédente.

    // Pour la détection d’un Swing High *passé*, on regarde si la bougie à l’indice ‘i’
    // est la plus haute dans une fenêtre définie.

    SwingHighDetected = 1 // Initialisation à VRAI. Deviendra FAUX si la condition n’est pas remplie.
    FOR i = 1 TO LookbackLeft
    IF high[0] <= high[i] THEN SwingHighDetected = 0 // Si une bougie précédente est plus haute ou égale, ce n'est pas un SH BREAK ENDIF NEXT IF SwingHighDetected THEN FOR i = 1 TO LookbackRight IF high[0] <= high[-i] THEN // -i pour les bougies *futures* (quand on regarde en temps réel) SwingHighDetected = 0 // Si une bougie future est plus haute ou égale, ce n'est pas un SH BREAK ENDIF NEXT ENDIF // Swing Low (SL): Le plus bas de la bougie actuelle est le plus bas des 'LookbackLeft' bougies précédentes // ET le plus bas des 'LookbackRight' bougies suivantes. SwingLowDetected = 1 // Initialisation à VRAI FOR i = 1 TO LookbackLeft IF low[0] >= low[i] THEN
    SwingLowDetected = 0 // Si une bougie précédente est plus basse ou égale, ce n’est pas un SL
    BREAK
    ENDIF
    NEXT

    IF SwingLowDetected THEN
    FOR i = 1 TO LookbackRight
    IF low[0] >= low[-i] THEN // -i pour les bougies *futures*
    SwingLowDetected = 0 // Si une bougie future est plus basse ou égale, ce n’est pas un SL
    BREAK
    ENDIF
    NEXT
    ENDIF

    // — Affichage sur le graphique —

    // Dessiner des marqueurs aux points de Swing High et Swing Low
    IF SwingHighDetected THEN
    // Dessine un petit carré rouge au-dessus de la bougie du Swing High
    DRAWSHAPE (high + 0.0005) AS “Square” AT BARINDEX COLOUR (255,0,0) // Rouge
    ENDIF

    IF SwingLowDetected THEN
    // Dessine un petit carré vert en dessous de la bougie du Swing Low
    DRAWSHAPE (low – 0.0005) AS “Square” AT BARINDEX COLOUR (0,255,0) // Vert
    ENDIF

    // Vous pouvez également ajouter des labels pour voir les valeurs
    // DRAWTEXT (“SH”) AT BARINDEX ON SwingHighDetected
    // DRAWTEXT (“SL”) AT BARINDEX ON SwingLowDetected

    #247789
Viewing 2 posts - 1 through 2 (of 2 total)

Create your free account now and post your request to benefit from the help of the community
Register or Login