Indicateur WBR de Flux Charts

Forums ProRealTime forum Français Support ProBuilder Indicateur WBR de Flux Charts

Viewing 3 posts - 1 through 3 (of 3 total)
  • #252468

    bonjour a tous, j ai visionné la video jointe de Flux Charts et j ai commencé le travail pour créer l indicateur compatible chez nous. Mais je ne parviens pas a terminer. Je joins mon travail si un passionné veux aider, cordialement. https://www.youtube.com/watch?v=8XpPaTWhnLA&t=129s

     

    // Wick to Body Ratio Trend Forecast
    // Traduit et adapté pour ProRealTime par Grok (basé sur Flux Charts)
    // Version 1.8.2 – 10:45 AM CEST, 11 Oct 2025 – Correction ligne 137

    // PARAMÈTRES
    maxMatches = 9 // Nombre max de matchs (fixe à 9 pour tester)
    loopbackPeriod = 200 // Réduit pour éviter surcharge
    toleranceRatio = 0.1 // Tolérance pour les matchs de ratio
    forecastLength = 15 // Nombre de bougies futures à prévoir

    // Variables globales
    ratioActuel = 0
    matchRatio0 = 0
    matchRatio1 = 0
    matchRatio2 = 0
    matchRatio3 = 0
    matchRatio4 = 0
    matchRatio5 = 0
    matchRatio6 = 0
    matchRatio7 = 0
    matchRatio8 = 0 // 9 variables
    matchDebut0 = 0
    matchDebut1 = 0
    matchDebut2 = 0
    matchDebut3 = 0
    matchDebut4 = 0
    matchDebut5 = 0
    matchDebut6 = 0
    matchDebut7 = 0
    matchDebut8 = 0 // 9 variables
    nombreMatches = 0
    deviationMouv = 0
    couleurLigne = 0 // 0 pour rouge (faible dev), 1 pour bleu (haute dev)

    // CALCUL DU RATIO WICK-TO-BODY
    bodyCandle = abs(Close – Open)
    totalWick = (High – Low) – bodyCandle
    IF bodyCandle > 0 THEN
    ratioActuel = totalWick / bodyCandle
    ELSE
    ratioActuel = 0 // Éviter division par zéro (doji)
    ENDIF

    // RECHERCHE DE MATCHS HISTORIQUES (sur la dernière barre close)
    IF BarIndex > loopbackPeriod THEN
    nombreMatches = 0
    FOR i = 1 TO loopbackPeriod DO
    IF i < BarIndex THEN
    bodyHist = abs(Close[i] – Open[i])
    totalWickHist = (High[i] – Low[i]) – bodyHist
    IF bodyHist > 0 THEN
    ratioHist = totalWickHist / bodyHist
    tolAdapt = toleranceRatio
    IF nombreMatches < 3 AND toleranceRatio < 0.3 THEN
    tolAdapt = toleranceRatio + 0.05
    ENDIF
    IF abs(ratioHist – ratioActuel) <= tolAdapt AND nombreMatches < maxMatches THEN
    IF nombreMatches = 0 THEN
    matchRatio0 = ratioHist
    ELSE
    IF nombreMatches = 1 THEN
    matchRatio1 = ratioHist
    ELSE
    IF nombreMatches = 2 THEN
    matchRatio2 = ratioHist
    ELSE
    IF nombreMatches = 3 THEN
    matchRatio3 = ratioHist
    ELSE
    IF nombreMatches = 4 THEN
    matchRatio4 = ratioHist
    ELSE
    IF nombreMatches = 5 THEN
    matchRatio5 = ratioHist
    ELSE
    IF nombreMatches = 6 THEN
    matchRatio6 = ratioHist
    ELSE
    IF nombreMatches = 7 THEN
    matchRatio7 = ratioHist
    ELSE
    IF nombreMatches = 8 THEN
    matchRatio8 = ratioHist
    ENDIF
    ENDIF
    ENDIF
    ENDIF
    ENDIF
    ENDIF
    ENDIF
    ENDIF
    ENDIF

    IF nombreMatches = 0 THEN
    matchDebut0 = Close[i]
    ELSE
    IF nombreMatches = 1 THEN
    matchDebut1 = Close[i]
    ELSE
    IF nombreMatches = 2 THEN
    matchDebut2 = Close[i]
    ELSE
    IF nombreMatches = 3 THEN
    matchDebut3 = Close[i]
    ELSE
    IF nombreMatches = 4 THEN
    matchDebut4 = Close[i]
    ELSE
    IF nombreMatches = 5 THEN
    matchDebut5 = Close[i]
    ELSE
    IF nombreMatches = 6 THEN
    matchDebut6 = Close[i]
    ELSE
    IF nombreMatches = 7 THEN
    matchDebut7 = Close[i]
    ELSE
    IF nombreMatches = 8 THEN
    matchDebut8 = Close[i]
    ENDIF
    ENDIF
    ENDIF
    ENDIF
    ENDIF
    ENDIF
    ENDIF
    ENDIF
    ENDIF
    nombreMatches = nombreMatches + 1
    ENDIF
    ENDIF // Fermeture IF bodyHist > 0
    ENDIF
    NEXT

    // Calcul de la prévision si assez de matchs
    IF nombreMatches >= 3 THEN
    DIM forecastValues(0 TO 14) // Taille fixe à 15 éléments (0 à 14)
    FOR offset = 1 TO forecastLength DO
    sommeMouvs = 0
    FOR j = 0 TO nombreMatches – 1 DO
    IF BarIndex – i – offset > 0 THEN
    IF j = 0 THEN
    mouvement = (Close[i + offset] – Close[i]) / Close[i] * 100
    ELSE
    IF j = 1 THEN
    mouvement = (Close[i + offset] – Close[i]) / Close[i] * 100
    ELSE
    IF j = 2 THEN
    mouvement = (Close[i + offset] – Close[i]) / Close[i] * 100
    ELSE
    IF j = 3 THEN
    mouvement = (Close[i + offset] – Close[i]) / Close[i] * 100
    ELSE
    IF j = 4 THEN
    mouvement = (Close[i + offset] – Close[i]) / Close[i] * 100
    ELSE
    IF j = 5 THEN
    mouvement = (Close[i + offset] – Close[i]) / Close[i] * 100
    ELSE
    IF j = 6 THEN
    mouvement = (Close[i + offset] – Close[i]) / Close[i] * 100
    ELSE
    IF j = 7 THEN
    mouvement = (Close[i + offset] – Close[i]) / Close[i] * 100
    ELSE
    IF j = 8 THEN
    mouvement = (Close[i + offset] – Close[i]) / Close[i] * 100
    ENDIF
    ENDIF
    ENDIF
    ENDIF
    ENDIF
    ENDIF
    ENDIF
    ENDIF
    ENDIF
    sommeMouvs = sommeMouvs + mouvement
    ENDIF
    NEXT
    IF nombreMatches > 0 THEN
    forecastValues[offset-1] = Close + (sommeMouvs / nombreMatches) * Close / 100
    ENDIF
    NEXT

    // Approximation simple de la déviation
    deviationMouv = 0
    FOR j = 0 TO nombreMatches – 1 DO
    IF j = 0 THEN
    mouvement = (Close[BarIndex – 1] – matchDebut0) / matchDebut0 * 100
    ELSE
    IF j = 1 THEN
    mouvement = (Close[BarIndex – 1] – matchDebut1) / matchDebut1 * 100
    ELSE
    IF j = 2 THEN
    mouvement = (Close[BarIndex – 1] – matchDebut2) / matchDebut2 * 100
    ELSE
    IF j = 3 THEN
    mouvement = (Close[BarIndex – 1] – matchDebut3) / matchDebut3 * 100
    ELSE
    IF j = 4 THEN
    mouvement = (Close[BarIndex – 1] – matchDebut4) / matchDebut4 * 100
    ELSE
    IF j = 5 THEN
    mouvement = (Close[BarIndex – 1] – matchDebut5) / matchDebut5 * 100
    ELSE
    IF j = 6 THEN
    mouvement = (Close[BarIndex – 1] – matchDebut6) / matchDebut6 * 100
    ELSE
    IF j = 7 THEN
    mouvement = (Close[BarIndex – 1] – matchDebut7) / matchDebut7 * 100
    ELSE
    IF j = 8 THEN
    mouvement = (Close[BarIndex – 1] – matchDebut8) / matchDebut8 * 100
    ENDIF
    ENDIF
    ENDIF
    ENDIF
    ENDIF
    ENDIF
    ENDIF
    ENDIF
    ENDIF
    deviationMouv = deviationMouv + abs(mouvement – (sommeMouvs / nombreMatches))
    NEXT
    IF nombreMatches > 0 THEN
    deviationMouv = deviationMouv / nombreMatches
    ENDIF

    // Couleur : faible dev -> rouge, haute -> bleu
    IF deviationMouv < 2 THEN
    couleurLigne = 0 // Rouge
    ELSE
    couleurLigne = 1 // Bleu
    ENDIF

    // TRACÉ DE LA LIGNE DE PRÉVISION
    FOR k = 1 TO forecastLength DO
    IF Time > LastBarTime THEN
    IF couleurLigne = 0 THEN
    DRAWLINE(LastBarIndex + k, forecastValues[k-1], LastBarIndex + forecastLength, forecastValues[forecastLength-1]) COLOURED(RGB(255,0,0)) STYLE(line)
    ELSE
    DRAWLINE(LastBarIndex + k, forecastValues[k-1], LastBarIndex + forecastLength, forecastValues[forecastLength-1]) COLOURED(RGB(0,0,255)) STYLE(line)
    ENDIF
    ENDIF
    NEXT
    ENDIF // Fermeture IF nombreMatches >= 3
    ENDIF // Fermeture IF BarIndex > loopbackPeriod

    // Affichage du ratio actuel
    RETURN ratioActuel AS “WBR Ratio”

    #252592

    voici:

    #252599

    Vous êtes vraiment très fort! merci beaucoup.

Viewing 3 posts - 1 through 3 (of 3 total)

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