calculer nombre d'occurence à la suite d'une valeur

juju83700

XLDnaute Nouveau
Bonjour à tous,


Je suis en train de concevoir un modèle d'analyse de tendances (sous Excel 2010) sur du court terme sur le marché des devises qui me permettra par la suite de backtester ma stratégie sur du long terme et d'y adjoindre un modèle de distribution de probabilité gràce a RISK 5.5. Bref, malgré tout mes connaissances rudimentaire en Excel ne sont malheureusement pas suffisante pour trouver réponse à mon problème. Je veux pouvoir avoir une macro ou une fonction qui pourrait comptabiliser et classer le nombre de "suites" (c'est à dire le nombre de cases qui se suivent, qui sont de la même couleur, en l'occurence verte ou rouge) d'une même valeur (en l'occurence ici "bearish" ou "bullish", tendance baissière ou haussière) par ordre croissant dans un tableau. Il faudrait en fait que la fonction soit capable de déterminer le nombre de suites de la même occurence (cad si la case suivante est similaire à la case précedente et ainsi de suite) dans une plage comprise entre 2 et 20 (20 = 20 cases à la suite ayant la même valeur). J'imagine que mon explication telle qu'elle ne parle pas trop, j'ai donc joint mon fichier sur lequel je travail actuellement. Votre aide serait vivement appréciable !
 

Pièces jointes

  • DATA M15 EURUSD.xlsx
    12.8 KB · Affichages: 84

eriiic

XLDnaute Barbatruc
Re : calculer nombre d'occurence à la suite d'une valeur

Bonsoir,

Une proposition avec une fonction personnalisée :
Code:
Function maxOccurence(chaine As String, plage As Range) As Long
    Dim c As Range, nb As Long
    For Each c In plage
        If c.Value <> chaine Then
            nb = 0
        Else
            nb = nb + 1
            If nb > maxOccurence Then maxOccurence = nb
        End If
    Next c
End Function
exemple de syntaxe :
=maxOccurence("BULLISH";$J$3:$J$24)

eric

edit : à lire le fichier de Laurent je crois que j'ai lu un peu trop en diagonale...
 

Pièces jointes

  • DATA M15 EURUSD.xlsm
    20.2 KB · Affichages: 67
  • DATA M15 EURUSD.xlsm
    20.2 KB · Affichages: 79
  • DATA M15 EURUSD.xlsm
    20.2 KB · Affichages: 79
  • DATA M15 EURUSD.xls
    46 KB · Affichages: 98
Dernière édition:

phlaurent55

Nous a quittés en 2020
Repose en paix
Re : calculer nombre d'occurence à la suite d'une valeur

Bonjour juju, et bienvenue sur le forum


ton fichier en retour

à+
Philippe


Edit: Bonjour Eric
 

Pièces jointes

  • 111.xls
    30 KB · Affichages: 141
  • 111.xls
    30 KB · Affichages: 133
  • 111.xls
    30 KB · Affichages: 129

eriiic

XLDnaute Barbatruc
Re : calculer nombre d'occurence à la suite d'une valeur

Re,

nouvelle fonction personnalisée plus adaptée :
Code:
Function nbOccurence(nb, plage As Range) As Long
    Dim c As Range, nbr As Long, s As String, i As Long
    For Each c In plage
        i = i + 1
        If c.Value <> s Then
            If nbr = nb Then nbOccurence = nbOccurence + 1
            nbr = 1
        Else
            nbr = nbr + 1
        End If
        If i = plage.Cells.Count And nbr = nb Then
            nbOccurence = nbOccurence + 1
        End If
        s = c.Value
    Next c
End Function
exemple de syntaxe :
=nbOccurence(2;$J$3:$J$24)
fourni le nombre de fois où une valeur est présente 2 fois consécutivement dans la plage.

eric
 

Pièces jointes

  • DATA M15 EURUSD.xlsm
    21.2 KB · Affichages: 84
  • DATA M15 EURUSD.xlsm
    21.2 KB · Affichages: 84
  • DATA M15 EURUSD.xlsm
    21.2 KB · Affichages: 87
Dernière édition:

Discussions similaires