[ARCHIVE] Toute question de débutant, afin de ne pas encombrer le forum. Professionnels, ne passez pas à côté. Nulle part sans toi - 3. - page 366

 

Bonjour !

Pouvez-vous me dire comment trouver 3 maxima (ou minima) sur un graphique pour une période donnée, les mémoriser et les utiliser pour d'autres calculs ?

Ou donnez-moi un lien vers le code.

J'ai cherché le code sur le forum, mais la recherche n'a rien donné.

Merci.

 
LOA:

Bonjour !

Pouvez-vous me dire comment trouver 3 maxima (ou minima) sur un graphique pour une période donnée, les mémoriser et les utiliser pour d'autres calculs ?

Ou donnez-moi un lien vers le code.

J'ai cherché le code sur le forum, mais la recherche n'a rien donné.

Merci.


Par exemple, j'ai fixé une période d'un jour sur les Eurobucks. Ouvert M15. Jetez un coup d'œil à la capture d'écran ci-dessous. Les limites de la journée sont indiquées par des lignes verticales rouges. L'indicateur fractal montre qu'il y a plus de trois minimums et maximums dans cet intervalle. Alors, comment le code que vous recherchez peut-il déterminer lequel de ces extrema vous recherchez ?

 
LOA:

Bonjour !

Pouvez-vous me dire comment trouver 3 maxima (ou minima) sur un graphique pour une période donnée, les mémoriser et les utiliser pour d'autres calculs ?

Ou donnez-moi un lien vers le code.

J'ai cherché le code sur le forum, mais la recherche n'a rien donné.

Merci.

https://docs.mql4.com/ru/series/iHighest

https://docs.mql4.com/ru/series/iLowest
 

Vladimir et Vadim, merci beaucoup pour votre réponse !

Un maximum que je trouve...

1.

mas_UP[]//réseau d'extrema supérieurs.

int index = iHighest(NULL,0,2,MODE_HIGH,20,i);
      double MAX = mas_UP[index];//первый максимум

2. ou comme ceci (avec des fractales)

int size_up=ArrayRange(mas_UP,0);
      for (s=i;s<=size_up;s++);
      int index=ArrayMaximum(mas_UP);
      double MAX = UP[s];

Mais comment procéder ? Je trouve cela difficile (j'apprends encore).

Je peux penser à un moyen de mettre à zéro l'élément qui a été trouvé comme un maximum et ensuite de faire défiler à nouveau le même tableau - nous trouverons le deuxième maximum et ensuite le troisième......

if (MAX>0)
      int n=n+1; //счётчик экстремумов
      mas_UP[index]=0;

Mais je ne suis pas sûr que ce soit le cas.

 
LOA:

Vladimir et Vadim, merci beaucoup pour votre réponse !

Un maximum que je trouve...

1.

2. ou plus (avec fractales)

Mais comment procéder ? Je suis perdu (j'apprends encore).

Je peux penser à un moyen de se concentrer sur un élément qui a été trouvé comme un maximum, et ensuite faire défiler à nouveau le même tableau - trouver le deuxième maximum, puis le troisième......

Mais je ne suis pas sûr que ce soit le cas.


Voulez-vous donc les trois derniers maxima sur un intervalle donné, ou d'autres maxima ?
 
drknn:

Donc, voulez-vous les trois derniers maxima dans un intervalle donné, ou n'importe quel autre maxima ?


Trois sommets sur la période, pas le dernier. Ou plutôt, pas nécessairement le plus récent.

 
LOA:


Trois maxima dans une période, pas le dernier. Ou plutôt, pas nécessairement les derniers.


Oh. Eh bien, je vais vous donner le défi complet.

Il y a un intervalle de temps donné. Trois maxima d'échantillon de cet intervalle sont nécessaires.

Pour résoudre ce problème, vous aurez besoin des éléments suivants :

- Un algorithme pour reconnaître les limites d'un intervalle donné

- Un algorithme pour trouver les maxima

- Un algorithme pour reconnaître les maxima souhaités à partir des maxima trouvés.

P.S.

Puisque vous ne savez pas à l'avance quels maxima seront nécessaires et comment les maxima seront identifiés exactement, vous ne trouverez pas de code tout fait. Cela signifie que la résolution des problèmes ci-dessus dans l'ordre vous donnera exactement le code dont vous avez besoin.

 
drknn:


Oh, mon garçon. Eh bien, je vais vous donner tout le problème.

Il y a un intervalle de temps donné. Vous avez besoin de trois maxima d'échantillon de cet intervalle.

Pour résoudre ce problème, vous aurez besoin des éléments suivants :

- Un algorithme pour reconnaître les limites d'un intervalle donné

- Un algorithme pour trouver les maxima

- Un algorithme pour reconnaître les maxima appropriés à partir des maxima trouvés.


Un problème correctement formulé est presque une solution. Merci.

Le premier, je peux le gérer, le second - aussi. Mais le dernier point - honnêtement, je ne sais pas, mais je vais réfléchir.

int n=0;//счётчик максимумов
      if (MAX>0)
      int n=n+1;
      mas_UP[index]=0;

Est-ce que cette option est la bonne, ou dois-je creuser dans une autre direction, à savoir

pour remettre à zéro l'élément du tableau qui a été trouvé comme un maximum, et ensuite faire défiler à nouveau le même tableau - nous trouverons le deuxième maximum, puis le troisième......

 
LOA:


Un problème correctement formulé est presque une solution. Merci.

Je peux gérer le premier, le second aussi. Le dernier point - honnêtement, je ne sais pas, mais je vais y réfléchir.

Est-ce que c'est la bonne idée, ou dois-je creuser dans une autre direction, à savoir

Remettre à zéro l'élément du tableau qui a été trouvé comme maximum, puis faire défiler à nouveau le même tableau - nous trouverons le deuxième maximum, puis le troisième......


Ne vous intéressez pas du tout au code pour l'instant - faites un algorithme - comment le programme doit-il exactement se dérouler ? Sinon, vous allez stagner. Tout programme est un abruti - il a besoin d'instructions précises. Pour ce faire, nous devons savoir exactement ce que le programme est censé faire. Et ce n'est qu'ensuite que nous pouvons choisir comment l'intégrer dans le code du programme.
 
drknn:

Il se peut que le code ne vous intéresse plus du tout maintenant - faites un algorithme - exactement comment le programme doit être fait. Sinon, vous allez stagner sur place. Tout programme est un abruti - il a besoin d'instructions précises. Pour ce faire, nous devons savoir exactement ce que le programme est censé faire. Et ce n'est qu'ensuite que nous pouvons choisir comment l'intégrer dans le code du programme.

Ok. Nous aurons l'algorithme demain, car il est déjà deux heures et demie du matin à Saint-Pétersbourg et nous sommes à court d'énergie.
Raison: