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

 

Bonjour à tous, j'ai une question sur MQL4

Par défaut, le tableau est indexé à partir de 0 et dans l'ordre croissant.

QUESTIONS ET RÉPONSES

Avec quelle fonction, ou construction de langage, le tableau ci-dessus peut-il être indexé par 10 valeurs avec des valeurs entières arbitraires et dans n'importe quel ordre ? Par exemple, comme ci-dessous. Je vous serais très reconnaissant si vous pouviez démontrer cette méthode avec un code approprié.

Merci.

 
ANDREY:

Bonjour à tous, j'ai une question sur MQL4

Par défaut, le tableau est indexé à partir de 0 et dans l'ordre croissant.

Q :

Avec quelle fonction, ou construction de langage, puis-je indexer le tableau ci-dessus à 10 valeurs avec des valeurs entières arbitraires et dans n'importe quel ordre ? Par exemple, comme ci-dessous. Je vous serais très reconnaissant si vous pouviez démontrer cette méthode avec un code approprié.

Merci.

Mélange aléatoire, tampon ou index(MathRand)

 
Valeriy Yastremskiy:

Dans l'indicateur de la structure d'alerte. La 5e ligne à partir du bas estAlert(b) ;

Cela semble être le nombre de millisecondes depuis le démarrage du système)

Merci !
 
Taras Slobodyanik:

Mélange aléatoire, tampon ou index (MathRand)

En ce qui concerne la disposition des index dans un ordre aléatoire, je crois savoir que cela se fait à l'aide de la fonction MathRand().

Ma question est de savoir quelle fonction peut m'aider à remplacer les valeurs d'index, qui sont par défaut (0,1,2,3,4,5,6...9) par les valeurs d'index nécessaires pour moi, par exemple ( 45,90,119,120,234,336,338,564,607,901). Je n'ai pas besoin de cette opération pour écrire un indicateur.

Merci.

 
ANDREY:

En ce qui concerne l'arrangement des index dans une séquence arbitraire, je comprends que cela est fait avec la fonction MathRand().

La question Et à l'aide de quelle fonction je peux remplacer les valeurs d'index, qui sont par défaut (0,1,2,3,4,5,6...9) par des valeurs d'index nécessaires pour moi, par exemple ( 45,90,119,120,234,336,338,564,607,901). Je n'ai pas besoin de cette opération pour écrire un indicateur.

Merci.

Créez un deuxième tampon - le tampon d'index.
Remplissez-le avec des valeurs mixtes, de 0 à size_buffer - ce sont les index)

...ou simplement prendre un nombre aléatoire et l'utiliser pour obtenir la valeur du tampon.
 
Taras Slobodyanik:

Créez un deuxième tampon - un tampon d'index.
Remplissez-le avec des valeurs mélangées, de 0 à size_buffer - ce sont les index)

...ou simplement prendre un nombre aléatoire et l'utiliser pour obtenir la valeur du tampon.

Merci pour votre aide.

Voici un code simple

double MaX[10];
int a;
void OnTick()
{
if (Minute()!=Min)
{
if (a==9)
{
a=0;
}
a++;
MaX[a]=Bid;
Min=Minute();
}
}

Dans 10 minutes, le tableau sera rempli de valeurs de prix avec des index de 0 à 9.
Si cela ne vous dérange pas, veuillez modifier le code de sorte que le tableau soit rempli avec les mêmes valeurs, mais que les index de ce tableau soient dans l'ordre suivant 45,90,119,120,234,336,338,564,607,901

Il n'est pas encore nécessaire de mélanger les valeurs d'index.
Merci pour votre aide.

Je n'ai simplement pas d'indicateurs dans mes stratégies. Je ne suis pas familier avec les tampons. D'après ce que je comprends, le tampon est un élément d'un indicateur.

 
ANDREY:

Merci pour votre aide.

Voici un code simple

Dans 10 minutes, le tableau sera rempli de valeurs de prix avec des indices de 0 à 9.
Si cela ne vous dérange pas, veuillez modifier le code de sorte que le tableau soit rempli avec les mêmes valeurs, mais les indices de ce tableau sont les suivants : 45,90,119,120,234,336,338,564,607,901

Il n'est pas encore nécessaire de mélanger les valeurs d'index.
Merci pour votre aide.

Je n'ai simplement pas d'indicateurs dans mes stratégies. Je ne suis pas familier avec les tampons. D'après ce que je comprends, le tampon est un élément d'un indicateur.

L'indice 901 signifie qu'il y a 902 éléments dans le tableau.
Mass[45]=Max[0].....Mass[901]=Max[9]
 
Valeriy Yastremskiy:
L'indice 901 signifie qu'il y a 902 éléments dans le tableau.
Mass[45]=Max[0].....Mass[901]=Max[9]

Non ... Il y a 10 éléments dans le tableau. Et ces 10 indices de ces 10 éléments doivent être dénotés par ces valeurs dans cette séquence (0)45, (1) 90, (2) 119, (3) 120, (4) 234, (5) 336, (6) 338, (7) 564, (8) 607, (9) 901

Entre parenthèses figurent les anciennes valeurs des indices. Elles doivent être remplacées par de nouvelles valeurs sans parenthèses.

d'éléments du tableau peut être indexé par n'importe quelle séquence de chiffres, et non dans l'ordre 0,1,2,3,4........100.

Документация по MQL5: Основы языка / Переменные
Документация по MQL5: Основы языка / Переменные
  • www.mql5.com
Переменные должны быть объявлены перед их использованием. Для идентификации переменных используются уникальные имена. Описания переменных используются для их определения и объявления типов. Описание не является оператором. Индексом массива может быть только целое число. Допускаются не более чем четырехмерные массивы. Нумерация элементов массива...
 
ANDREY:

Non ... il y a 10 éléments dans le tableau. Et ces 10 indices de ces 10 éléments doivent être dénotés par ces valeurs dans cette séquence (0)45, (1) 90, (2) 119, (3) 120, (4) 234, (5) 336, (6) 338, (7) 564, (8) 607, (9) 901

Entre parenthèses figurent les anciennes valeurs des indices. Elles doivent être remplacées par de nouvelles valeurs sans parenthèses.


C'est-à-dire que je peux indexer n'importe quel nombre d'éléments d'un tableau par une séquence arbitraire de nombres, pas dans l'ordre 0,1,2,3,4........100.

Unindex(lat.index signifie une liste, un registre, un indexeur ou un index) est un nombre, une lettre ou une autre combinaison de symboles qui indique où se trouve un élément dans un tableau.

L'indice 45 indique le 45ème élément de la liste, l'indice 90 indique le 90ème élément.

 
ANDREY:

Non ... il y a 10 éléments dans le tableau. Et ces 10 indices de ces 10 éléments doivent être dénotés par ces valeurs dans cette séquence (0)45, (1) 90, (2) 119, (3) 120, (4) 234, (5) 336, (6) 338, (7) 564, (8) 607, (9) 901

Entre parenthèses figurent les anciennes valeurs des indices. Elles doivent être remplacées par de nouvelles valeurs sans parenthèses.


C'est-à-dire que je peux indexer n'importe quel nombre d'éléments du tableau par n'importe quelle séquence de chiffres, et pas dans l'ordre 0, 1, 2, 3, 4........100.

Je ne comprends pas, l'indice du tableau est un indice de 0 à N. Et ce que vous voulez ressemble plus à un dictionnaire avec des hachages. Je ne sais pas comment le faire dans un tableau et je ne pense pas que vous puissiez le faire dans un tableau ordinaire. Il y a une bibliothèque de classes génériques avec des dictionnaires dans MT. Cela devrait aider.

Библиотека Generic классов - ошибки, описание, вопросы, особенности использования и предложения
Библиотека Generic классов - ошибки, описание, вопросы, особенности использования и предложения
  • 2017.12.07
  • www.mql5.com
С 6 декабря 2017 года в стандартную поставку MetaTrader 5 стали входить так называемые Generic-классы, реализующие эффективные алгоритмы для хранен...
Raison: