Toute question des nouveaux arrivants sur MQL4 et MQL5, aide et discussion sur les algorithmes et les codes. - page 277

 
mila.com:
Bonjour.
Veuillez m'aider à comparer le prix MA de la première barre avec les prix MA des quatre barres précédentes. Si le prix a augmenté et que la différence est supérieure à N, remplissez le tampon. J'essaie de cette façon

Quel prix a augmenté - le MA ? A-t-il augmenté par rapport à chaque barre successive (valeur sur la barre) ou par rapport à l'une des quatre barres ?

 
Aleksey Vyazmikin:

Quel prix a augmenté - le MA ? A-t-il augmenté par rapport à chaque barre suivante (valeur sur la barre) ou par rapport à l'une des quatre barres ?

Oui, à n'importe quel bar.

Condition : Si la valeur de la MA de la première barre a augmenté de N par rapport à la valeur de la MA de l'une des quatre barres précédentes, alors le tampon.

J'ai besoin de savoir que la valeur de la MA a augmenté de "N" pips, et peu importe pour quelle période de temps, mais je ne peux pas penser à autre chose qu'à une comparaison sur un nombre limité de barres.

 
mila.com:

Oui, à n'importe qui.

Condition : Si la valeur de la ligne MA de la première barre a augmenté de N par rapport à la valeur MA de n'importe laquelle des quatre barres précédentes, alors le tampon.

J'ai besoin de savoir que la valeur de la MA a augmenté de "N" pips, et ce quelle que soit l'heure, mais à part la comparaison sur un nombre limité de barres, je ne trouve rien.


Alors pourquoi ne pas soustraire une valeur MA de l'autre et regarder le delta - le comparer au bas, pourquoi ces cycles ?

 
Aleksey Vyazmikin:

Alors pourquoi ne pas soustraire une valeur MA de l'autre et regarder le delta - le comparer avec le minimum, pourquoi ces cycles ?

Le prix peut changer lentement sur plusieurs barres, un pip à la fois (théoriquement), le cinquième sera le changement que vous recherchez.

 
mila.com:

Le prix peut varier lentement sur plusieurs barres


Prenez donc la valeur de l'indicateur il y a 4 barres et la valeur actuelle et comparez - si la période de calcul de la moyenne n'est pas très courte, alors l'augmentation est régulière...

 

Ou avez-vous des indicateurs avec des réglages différents ?

 
Aleksey Vyazmikin:

Prenez donc la valeur de l'indicateur il y a 4 barres et la valeur actuelle et comparez - si la période de calcul de la moyenne n'est pas très courte, alors l'augmentation est régulière...

La différence que vous recherchez se trouve peut-être sur la deuxième mesure, mais vous suggérez de comparer la première et la quatrième.

 
mila.com:

La différence que vous recherchez se trouve peut-être sur la deuxième mesure, mais vous suggérez de comparer la première et la quatrième.


Quelle est la période de moyenne de la MA - je me demandais simplement - avez-vous besoin d'une pause ?

 
mila.com:

Un indicateur MA. Pouvez-vous nous aider avec la boucle ?


Si je comprends bien ce que vous voulez, voici le script - faites-le.

#property version   "1.00"
#property strict
#property script_show_inputs
//--- input parameters
input int period_iMA=16;
input double N_=0.005;
//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart()
  {
   double DeltaMA=0.0;
   int Nbar=0;
   for(int i=1;i<5;i++)
     {
      DeltaMA=iMAf(1)-iMAf(i);
      if(DeltaMA<0)DeltaMA=DeltaMA*(-1);
      if(N_-DeltaMA<0) {Nbar=i; break;}
     }
   Print("Бар привышения - ",Nbar);

  }
//+------------------------------------------------------------------+
double iMAf(int index)
  {
   return NormalizeDouble(iMA(Symbol(),0,period_iMA,0,0,0,index),Digits);
  }
//+------------------------------------------------------------------+

Je fais le delta en valeur positive, si vous avez besoin de déterminer avec + ou -, alors enlevez la ligneif(DeltaMA<0)DeltaMA=DeltaMA*(-1) ; et prenez en compte séparément une constante pour la comparaison (avec - et +)

 
Aleksey Vyazmikin: alors voici le script - fais avec.
Merci.