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

 
ANDREY:

Ai-je bien compris que maintenant, dans mql4, les tableaux doivent être initialisés uniquement à l'aide de la fonction

Pas nécessairement, mais il est préférable de vérifier ces questions à l'aide de scripts de test :

void OnStart()
{
   int arr_1[10] = {123};
   int arr_2[10] = {0,1,2,3,4,5,6,7,8,9};
   int arr_3[10];
   ArrayInitialize(arr_3,777);
   ArrayPrint(arr_1);   // 123   0   0   0   0   0   0   0   0   0
   ArrayPrint(arr_2);   // 0 1 2 3 4 5 6 7 8 9
   ArrayPrint(arr_3);   // 777 777 777 777 777 777 777 777 777 777
}
ANDREY:

Le tutoriel de Kovalev dit que vous pouvez initialiser un tableau en même temps que sa déclaration (comme je l'ai fait), sans aucune fonction spéciale.

Votre variante dans mon exemple arr_1 - donc vous pouvez l'initialiser avec une valeur nulle ! - et si c'est un autre, alors le premier élément du tableau sera une valeur d'initialisation, et tous les autres seront nuls.

Je pense que le tutoriel vous conseille d'initialiser comme dans mon exemple arr_2

 

Après-midi.

Vous devez visualiser dans votre EA les valeurs de l'indicateur utilisé dans celui-ci. Vous n'êtes pas obligé de le dessiner exactement comme il se présente. Il suffit de marquer la valeur du point de l'indicateur sur chaque bougie. J'ai essayé de le faire par le biais de l'objet OBJ_ARROW et j'ai découvert que le point d'ancrage ne peut pas être au centre de l'objet. Il est soit plus haut, soit plus bas que l'objet. Par conséquent, les points ne coïncident pas avec les valeurs réelles de l'indicateur. Pouvez-vous suggérer une solution à ce problème ?

affichage de l'indicateur via OBJ_ARROW

 
Oleg Remizov:

Après-midi.

Vous devez visualiser dans votre EA les valeurs de l'indicateur utilisé dans celui-ci. Vous n'êtes pas obligé de le dessiner exactement comme il se présente. Il suffit de marquer la valeur du point de l'indicateur sur chaque bougie. J'ai essayé de le faire par le biais de l'objet OBJ_ARROW et j'ai découvert que le point d'ancrage ne peut pas être au centre de l'objet. Il est soit plus haut, soit plus bas que l'objet. Par conséquent, les points ne coïncident pas avec les valeurs réelles de l'indicateur. Suggérez une solution à ce problème.

Créez un modèle avec tous les indicateurs requis et enregistrez-le sous le nom de testeur ou sous le nom du conseiller expert.

 
Alexey Viktorov:

Créez un modèle avec tous les indicateurs que vous voulez et sauvegardez-le avec le nom tester ou avec le nom de l'EA.

Malheureusement, le modèle ne fonctionne pas pour moi. Il est nécessaire d'activer/désactiver la fonction d'affichage des indicateurs dans les paramètres, et le dessin doit être effectué directement à partir de l'EA. L'EE doit pouvoir être transférée dans un seul fichier.

 
Oleg Remizov:

Malheureusement, le modèle ne fonctionne pas pour moi. La fonction d'affichage de l'indicateur doit être activée/désactivée dans les réglages, et le dessin doit être effectué directement à partir de l'EA. Je veux pouvoir transférer l'EA dans un seul fichier.

Ce sont des souhaits étranges. Si vous voulez que votre EA fonctionne, juste fonctionner, alors il suffit de l'attacher comme ressource et il n'aura pas besoin d'affichage et fonctionnera sans le fichier de l'indicateur. Et si vous voulez exactement l'affichage, quel est l'intérêt de ne pas donner le fichier indicateur ?

 
Alexey Viktorov:

C'est une demande étrange. Si vous voulez que l'EA fonctionne, juste fonctionner, alors il suffit de l'attacher comme ressource et il fonctionnera sans le fichier indicateur. Si vous voulez voir la cartographie exacte, quel est l'intérêt de ne pas donner le fichier indicateur ?

Ce n'est pas que je ne veuille pas donner un fichier indicateur. Un conseiller expert qui nécessite des fichiers supplémentaires ne peut pas être publié sur le marché. En fait, il est pratique d'avoir tout ce dont vous avez besoin pour votre travail dans un seul fichier.

De plus, je n'ai pas toujours besoin de montrer tous les tampons indicateurs s'il y en a peu. Par exemple, j'ai un indicateur pour Ishimoku. Il possède 5 lignes mais une seule d'entre elles doit être sélectionnée pour être utilisée dans un Expert Advisor. Je veux afficher un seul d'entre eux au lieu de l'indicateur entier.

 
Igor Makanu:

pas nécessairement, mais il est préférable de vérifier ces questions avec des scripts de test :

Votre variante dans mon exemple arr_1 - donc vous pouvez initialiser avec une valeur nulle ! - et s'il est différent, alors le premier élément du tableau sera une valeur d'initialisation et tous les autres seront nuls.

Je pense que le tutoriel vous conseille d'initialiser comme dans mon exemple arr_2

Merci pour ces informations précieuses pour moi.

 
Oleg Remizov:

Ce n'est pas que je ne veuille pas donner un fichier indicateur. Un conseiller expert qui nécessite des fichiers supplémentaires ne peut pas être publié sur le marché. Et en général, il est pratique d'avoir tout ce dont vous avez besoin pour travailler dans un seul fichier.

De plus, je n'ai pas toujours besoin de montrer tous les tampons indicateurs s'il y en a peu. Par exemple, j'ai un indicateur pour Ishimoku. Il possède 5 lignes mais une seule d'entre elles doit être sélectionnée pour être utilisée dans un Expert Advisor. C'est le seul que nous voulons afficher et non l'indicateur entier.

Eh bien, les indicateurs sont utilisés comme une ressource pour le marché. Mais pourquoi l'utilisateur en a-t-il besoin ? Personne ne s'intéresse aux principes selon lesquels les postes sont ouverts. Si vous le souhaitez, vous pouvez décrire l'ensemble de la stratégie dans la description. Quelqu'un en a besoin ?

 
Igor Makanu:


Je pense que le manuel vous conseille d'initialiser comme dans mon exemple arr_2

Voici ce que dit le manuel Kovalev à propos de l'initialisation d'un tableau en même temps que sa déclaration

8.4.4 Initialisation du tableau

Un tableau ne peut être initialisé qu'avec des constantes du type approprié. Les tableaux unidimensionnels et multidimensionnels sont initialisés avec une séquence unidimensionnelle de constantes séparées par des virgules. La séquence est entourée d'accolades :

int Mas_i[3][4] = { 0, 1, 2, 3, 10, 11, 12, 13, 20, 21, 22, 23 }

double Mas_d[2][3] = { 0,1, 0,2, -0,3, -10,2, 1,5, 7,0 } ;

bool Mas_b[5] = { false, true, false, true, true }

Une ou plusieurs constantes peuvent être sautées dans la séquence d'initialisation.

Il me semble, d'après le manuel, que lorsqu'un tableau est déclaré, le tableau complet est initialisé avec toutes les données, et pas seulement le premier élément du tableau.
Si j'ai mal compris le tutoriel, j'apprécierais que vous me disiez ce que j'ai mal compris.

 
Alexey Viktorov:

Eh bien, c'est ce qu'ils utilisent les indicateurs comme une ressource pour le marché. Mais à quoi sert-il à l'utilisateur ? Personne ne s'intéresse aux principes selon lesquels les postes sont ouverts. Si vous le souhaitez, vous pouvez décrire l'ensemble de la stratégie dans la description. Quelqu'un en a besoin ?

Et selon mes observations, les utilisateurs apprécient que l'Expert Advisor affiche diverses informations à l'écran : il dessine des flèches, des lignes, des canaux, etc. pour démontrer l'activité vigoureuse de l'"intelligence artificielle").

Selon les indicateurs, le conseiller expert fournit un suivi. Je veux visualiser ce processus pour que l'utilisateur puisse voir la ligne en pointillés avec StopLoss.