Ce matin, motivé par la découverte de la plateforme PRT, j'ai créé un petit indicateur pour mettre à l'épreuve ProBuilder...
Premier ressenti:
- autant vous dire que l'inexistence des tableaux multidimensionnels me pose vraiment problème...
- en dehors des fonctions natives au builder, il faut faire pas mal de pirouettes pour obtenir le résultat escompté même pour des choses simples, l'optimisation est donc vraiment limitée.
- impossible de créer des sous-fonctions, c'est aussi un gros problème car si l'on complexifie le code, cela peut rapidement devenir illisible, à voir...
Si ça vous intéresse et que vous voulez effectuer un petit test, il s'agit d'un indicateur simple pouvant généré une moyenne ou médiane mobile en fonction de différents types de prix:
Il vous faudra créer les variables ci-dessous:
- "TypeMA1" (type de la moyenne mobile):
 0 = SIMPLE
 1 = EXPONENTIELLE
 2 = LISSEE
 3 = PONDEREE
 4 = MEDIANE
 
 "TypePRIX1" (type de prix):
 0 = FERMETURE (Close)
 1 = OUVERTURE (Open)
 2 = PLUS HAUT (High)
 3 = PLUS BAS (Low)
 4 = MEDIAN (High+Low/2)
 5 = TYPIQUE ((High+Low+Close)/3)
 6 = PONDERE ((High+Low+Close*2)/4)
 
 "Periode1" (entier représentant le nombre de bougies pour la période de calcul)
Code : #
REM ---- Calcul du prix en fonction de la configuration choisie
IF TypePRIX1 = 0 THEN
       PRIX1 = Close
ELSIF TypePRIX1 = 1 THEN
       PRIX1 = Open
ELSIF TypePRIX1 = 2 THEN
       PRIX1 = High
ELSIF TypePRIX1 = 3 THEN
       PRIX1 = Low
ELSIF TypePRIX1 = 4 THEN
       PRIX1 = MedianPrice
ELSIF TypePRIX1 = 5 THEN
       PRIX1 = TypicalPrice
ELSIF TypePRIX1 = 6 THEN
       PRIX1 = WeightedClose
ENDIF
REM ---- Calcul de la MA1 en fonction de la configuration choisie
IF BARINDEX < Periode1 THEN
       MA1 = UNDEFINED
ELSIF TypeMA1 = 0    THEN
       MA1 = Average[Periode1](PRIX1)
ELSIF TypeMA1 = 1 THEN
       MA1 = ExponentialAverage[Periode1](PRIX1)
ELSIF TypeMA1 = 2 THEN
       MA1 = WilderAverage[Periode1](PRIX1)
ELSIF TypeMA1 = 3 THEN
       MA1 = WeightedAverage[Periode1](PRIX1)
ELSIF TypeMA1 = 4 THEN
       Periode1 = (Periode1 MOD 2 = 0) + Periode1
       FOR i = 0 TO Periode1 - 1
              Inf = 0
              Egal = 0
              FOR j = 0 to Periode1 - 1
                     IF PRIX1[j] < PRIX1[i] THEN
                            Inf = Inf + 1
                     ELSIF PRIX1[j] = PRIX1[i] THEN
                            Egal = Egal + 1
                     ENDIF
              NEXT
              Sup = Periode1 - Inf - Egal
              IF MIN(Inf,Sup) + Egal > MAX(Inf,Sup) THEN
                     MA1 = PRIX1[i]
                     BREAK
              ENDIF
       NEXT
ENDIF
RETURN MA1
A votre écoute, koub. :roll:
Ci-dessous deux exemples:
- moyenne mobile exponentielle sur un prix médian (période 20)
- médiane mobile calculée sur un prix médian (période 20)





 et donc tu me dit que MQL4 ressemble plus à du C que
 et donc tu me dit que MQL4 ressemble plus à du C que 
