[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 354

 
Il y a un travail de N. Staritsky. Il existe un film basé sur cette histoire, intitulé "Beyond Two Hares". Je veux lire ce brillant auteur. Je n'arrive pas à trouver son texte. Aidez-moi à le trouver. Et désolé si j'ai demandé dans le mauvais fil ;)
 

Comment fonctionne ArrayMaximum?

int ArrayMaximum( double array[], int count=WHOLE_ARRAY, int start=0)

Recherche l'élément avec la valeur maximale. La fonction renvoie la position de l'élément maximal dans le tableau.
Paramètres : array[] - Le tableau numérique dans lequel effectuer la recherche.
count - Le nombre d'éléments à rechercher.
start - L'indice de départ de la recherche.

Exemple :
double num_array[15]={4,1,6,3,9,4,1,6,3,9,4,1,6,3,9} ;
int maxValueIdx=ArrayMaximum(num_array) ;
Print("Max value = ", num_array[maxValueIdx]) ;

donc ce n'est pas clair pour moi... Comment puis-je l'écrire, de sorte que le conseiller expert recherche, disons, le deuxième numéro de tableau ?

int MinArray[7] = {1,2,3,4,5,6,7}

int ArrayMaximum (MinArray[7], "What about here ?", 2) ; ce n'est pas clair pour moi

 
splxgf:

Par exemple, le problème était de savoir combien de fois le prix avait franchi les niveaux donnés au cours des deux dernières années.

1. Vous pourriez prendre chaque niveau et examiner les données sur deux ans. Coût : nombre de barres multiplié par le nombre de niveaux.

2. Vous pouvez créer un tableau séparé de niveaux. Il suffit de passer en revue toutes les barres en vérifiant et en incrémentant les éléments requis du tableau. Dans ce cas, les calculs seront plus rapides.

Je suis intéressé par un exemple similaire à celui-ci :

for(a=0;a<=100;a++){

for (b=0;b<=100;b++){

for (c=0;c<=100;c++){

for(d=0;d<=100;d++){

for(e=0;e<=100;e++){

for (f=0;f<=100;f++){

for(g=0;g<=100000;g++){

jaw_val1=iAlligator(NULL, 0, a, b, c, d, f, e, MODE_SMMA, PRICE_MEDIAN, MODE_GATORJAW, g) ;

jaw_val2=iAlligator(NULL, 0, a, b, c, d, f, e, MODE_SMMA, PRICE_MEDIAN, MODE_GATORTEETH, g);

jaw_val3=iAlligator(NULL, 0, a, b, c, d, f, e, MODE_SMMA, PRICE_MEDIAN, MODE_GATORLIPS, g);

si (jaw_val1>Close[g] && jaw_val2>Close[g] && jaw_val3>Close[g]) sum=sum+(High[g]-Low[g])

}}}}}}}


Mais alors le tableau doit être à 7 dimensions ?

 
CLAIN:

Pouvez-vous me dire comment fonctionne ArrayMaximum ?

int ArrayMaximum( double array[], int count=WHOLE_ARRAY, int start=0)

Recherche de l'élément ayant la valeur maximale. La fonction renvoie la position de l'élément maximal dans le tableau.
Paramètres:array[] - Tableau numérique, qui est recherché.
count - Le nombre d'éléments à rechercher.
start - L'index de départ pour la recherche.

Exemple :
double num_array[15]={4,1,6,3,9,4,1,6,3,9,4,1,6,3,9};
int maxValueIdx=ArrayMaximum(num_array) ;
Print("Valeur maximale = ", num_array[maxValueIdx]) ;

C'est donc là que je ne comprends pas le compte... Comment puis-je écrire mon conseiller expert pour rechercher, disons, le deuxième numéro de tableau ?

int MinArray[7] = {1,2,3,4,5,6,7}

int ArrayMaximum (MinArray[7], "What about here ?", 2) ; ce n'est pas clair pour moi

Supposons que vous ayez un tableau DataMass[] contenant certaines valeurs. Le type de valeurs qu'il contient est double.

Vous devez trouver la plus grande valeur contenue dans ce tableau, en partant de l'élément zéro du tableau :

int IndexMaxValue=ArrayMaximum(DataMass, WHOLE_ARRAY, 0) ; // trouver l'index de l'élément avec la valeur la plus élevée.

double MaxValue=DataMass[IndexMaxValue] ; // trouve la valeur maximale dans le tableau par son index

La ligne de recherche de l'élément ayant la valeur maximale peut être écrite sous une forme plus courte :

int IndexMaxValue=ArrayMaximum(DataMass) ; // Les deux derniers arguments de la fonction ont des valeurs par défaut, ils peuvent donc être omis lorsque la fonction est appelée, car nous recherchons le tableau entier (WHOLE_ARRAY) et commençons à partir de la cellule zéro (0), et ces valeurs sont transmises à la fonction par défaut.

Tout ceci peut être écrit en une seule ligne

double MaxValue=DataMass[ArrayMaximum (DataMass)] ; // trouver la valeur maximale dans le tableau par son index.

La variable MaxValue contiendra la valeur maximale du tableau DataMass[].


Si vous souhaitez effectuer une recherche non pas dans tout le tableau et non pas à partir de l'élément zéro, ces valeurs doivent être spécifiées explicitement dans les paramètres passés :

int IndexMaxValue=ArrayMaximum(DataMass, WHOLE_ARRAY, 2) ; // trouver l'index de l'élément avec la plus grande valeur. La recherche est effectuée sur l'ensemble du tableau (WHOLE_ARRAY), en commençant par la deuxième cellule (2).

int IndexMaxValue=ArrayMaximum(DataMass, 10, 3) ; // trouver l'index de l'élément avec la plus grande valeur. La recherche est effectuée pour dix éléments du tableau (10), à partir de la troisième cellule (3).


J'espère l'avoir expliqué clairement :)

 
artmedia70:
Supposons que vous ayez un tableau DataMass[] contenant certaines valeurs. Le type de valeurs qu'il contient est double.

Vous devez trouver la plus grande valeur contenue dans ce tableau, en partant de l'élément zéro du tableau :

int IndexMaxValue=ArrayMaximum(DataMass, WHOLE_ARRAY, 0) ; // trouver l'index de l'élément avec la valeur la plus élevée.

double MaxValue=DataMass[IndexMaxValue] ; // trouve la valeur maximale dans le tableau par son index

La ligne de recherche de l'élément ayant la valeur maximale peut être écrite sous une forme plus courte :

int IndexMaxValue=ArrayMaximum(DataMass) ; // Les deux derniers arguments de la fonction ont des valeurs par défaut, ils peuvent donc être omis lorsque la fonction est appelée, car nous recherchons le tableau entier (WHOLE_ARRAY) et commençons à partir de la cellule zéro (0), et ces valeurs sont transmises à la fonction par défaut.

Maintenant, nous pouvons écrire tout cela en une seule ligne

double MaxValue=DataMass[ArrayMaximum (DataMass)] ; // trouve la valeur maximale dans le tableau par son index

Si vous souhaitez effectuer une recherche non pas dans l'ensemble du tableau et non pas à partir de l'élément zéro, vous devez spécifier ces valeurs explicitement dans les paramètres passés.

int IndexMaxValue=ArrayMaximum(DataMass, WHOLE_ARRAY, 2) ; // trouver l'index de l'élément avec la plus grande valeur. La recherche est effectuée sur l'ensemble du tableau (WHOLE_ARRAY), en commençant par la deuxième cellule.

int IndexMaxValue=ArrayMaximum(DataMass, 10, 3) ; // trouver l'index de l'élément avec la plus grande valeur. La recherche est effectuée sur dix éléments du tableau (10), en commençant par la troisième cellule

J'espère l'avoir expliqué clairement :)



plus que =) merci, mais une question demeure.... Si j'ai deux valeurs maximales identiques, laquelle choisira-t-elle ? celle de gauche ?
 
CLAIN:

plus que ça =) merci, mais une question demeure.... Si j'ai deux valeurs maximales identiques, laquelle choisira-t-elle ? celle de gauche ?

Vérifiez-le :)

Ecrivez un court script, qui donnera la valeur maximale trouvée dans le tableau et son index. Initialiser explicitement le tableau avec des valeurs, dont deux seront les mêmes et seront plus grandes que les autres valeurs.

Utilisez l'indice pour déterminer laquelle des deux valeurs les plus élevées il sort pour vous.

 

Donne l'indice de celui qui est le plus proche du début de la recherche :

//+------------------------------------------------------------------+
//|                                                         Test.mq4 |
//|                             Copyright © 2011, Trishkin Artyom A. |
//|                                           support@goldsuccess.ru |
//|                                           Skype: artmedia70      |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2011, Trishkin Artyom A."
#property link      "support@goldsuccess.ru"
//                   Skype: artmedia70
//+------------------------------------------------------------------+
//| script program start function                                    |
//+------------------------------------------------------------------+
double DataMass[15]={4,1,6,3,19,4,1,6,3,19,4,1,6,3,9}; // индекс первого = 4, индекс второго = 9

int start()
  {
//----
   int IndexMaxValue=ArrayMaximum(DataMass); 
   double MaxValue=DataMass[IndexMaxValue]; // находим максимальное значение в массиве по его индексу
   Alert("Индекс максимального элемента массива = "+IndexMaxValue+", его значение = "+MaxValue);
//----
   return(0);
  }
//+------------------------------------------------------------------+

Devinez l'indice qu'il produit :)

 
drknn:
Il y a un travail de N. Staritsky. Il existe un film basé sur cette histoire, intitulé "Beyond Two Hares". Je veux lire ce brillant auteur. Je n'arrive pas à trouver son texte. Aidez-moi à le trouver. Et désolé si j'ai demandé dans le mauvais fil ;)
Vladimir, c'est une pièce de théâtre. Voici le texte.
 

Bonjour, j'ai deux questions (je n'arrive pas à trouver une réponse digeste nulle part) :

1. l'indicateur dessine deux rangées de lignes de tendance verticales dans la sous-fenêtre. Comment puis-je obtenir les numéros de barre qui correspondent à ces lignes ?

2. Dans le même indicateur, je dois tracer des lignes dans le futur pour environ 24 heures à venir. Mais je ne sais pas comment le mettre en œuvre de la meilleure façon.

J'espère beaucoup de l'aide des utilisateurs du forum).

 
Aide pour ajouter une fonction pour supprimer les commandes s'il vous plaît !