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

 
trader781:
Je ne comprends pas comment, j'ai corrigé les noms, la ligne est toujours rouge quel que soit le type de commande, elle est juste appelée différemment. (ensuite je dois trouver un moyen de le réduire à 10 mesures), j'ai besoin exactement de la façon dont
Essayez-le maintenant
Dossiers :
 
Sergey Gritsay:
Essayez-le maintenant.

C'est une bonne chose qu'il y ait un livre de référence qui traîne).

Lorsque vous appuyez sur le bouton de compilation, le robot meurt en même temps que le terminal, et après avoir ouvert EX, il ne s'ouvre pas et ce fichier est vide.

Ça ressemble à ça.

Aussi regardé, si vous mettez le bleu, le vert, l'or, le blanc, ces couleurs changent, mais le gris foncé et l'azur ne met pas, il devient blanc.

Dossiers :
 
trader781:

C'est une bonne chose qu'il y ait un livre de référence qui traîne).

Lorsque vous appuyez sur le bouton de compilation, le robot meurt en même temps que le terminal, et après avoir ouvert EX, il ne s'ouvre pas et ce fichier est vide.

Ça ressemble à ça.

J'ai aussi regardé, si je mets du bleu, du vert, de l'or, du blanc, ces couleurs changent, mais le gris foncé et l'azur ne mettent pas, il devient blanc.

Je compile bien.
 
Sergey Gritsay:
string  StringSubstr(
   string  string_value,     // строка
   int     start_pos,        // с какой позиции начать
   int     length=0          // длина извлекаемой строки
   );
...

Merci !

J'ai également besoin d'aide - je dois trouver le nombre de caractères d'une chaîne de caractères - comment faire ?

 
Bon après-midi.
J'utilise StringSplit pour diviser une chaîne de caractères lue dans un fichier. Mais la sortie du tableau perd des chaînes, toutes sauf la première chaîne. Sur la sortie, tout sauf la première chaîne est vide, bien que la taille du tableau soit correcte.

J'ai également rencontré un comportement incompréhensible avec des tableaux de chaînes de caractères. Je dois faire des tableaux à deux dimensions pour enregistrer des chaînes de caractères dans un tableau.

Quelqu'un a-t-il rencontré ce comportement ?

while( idx < size ) {
    if( StringFind( fileBuffer[idx][0], "[Main]" ) >= 0 ) {
        idx++;
        Print( "Buffer(main) = " + fileBuffer[idx][0] ); // debug
        if( StringFind( fileBuffer[idx][0], "Kit_Names=" ) >= 0 ) {
            Print( "check1 - " + fileBuffer[idx][0] ); // debug
            string tmp = StringSubstr( fileBuffer[idx][0], 10 );
            Print( tmp );                              // debug
            StringReplace( tmp, "\"", "" );
            Print( tmp );                              // debug
            Print( StringSplit( tmp, sep, list ) );
            Print( "check22 - " + tmp );               // debug
            for(int i = 0; i < ArrayRange(list,0); i++) Print(list[i][0]);  // debug
        }
    }
    idx++;
}
 
-Aleks-:

Merci !

J'ai également besoin d'aide - je dois trouver le nombre de caractères d'une chaîne de caractères - comment faire ?

Renvoie le nombre de caractères de la chaîne.

int  StringLen(
   string  string_value      // строка
   );

 
terentjew23:

Renvoie le nombre de caractères d'une chaîne de caractères.

int  StringLen(
   string  string_value      // строка
   );

Merci !

 
Un conseil, s'il vous plaît.

Je déclare un tableau au niveau de l'EA globale. Ensuite, dans la fonction spéciale init(), j'appelle la fonction utilisateur qui remplit le tableau avec des constantes de type chaîne.

Ensuite, dans la fonction spéciale start(), j'utilise le tableau uniquement pour lire les données.

Quelque temps plus tard, d'autres données viendront remplir le tableau. C'est-à-dire que lorsque je lance l'EA, je m'attends à ce que le tableau reste inchangé pendant que l'EA fonctionne, mais les données arrivent d'une manière ou d'une autre dans le tableau, et seulement après un certain temps (plus de 10 minutes). Lorsque je redémarre le conseiller expert, le tableau sera rempli comme il se doit, mais quelque temps plus tard, pour des raisons que je ne comprends pas, le tableau contiendra à nouveau les mauvaises valeurs.

La seule solution consiste à recharger constamment le tableau dans la fonction start(), mais je n'aime pas vraiment cela, car le tableau ne devrait être rempli que pendant l'initialisation.

Quel pourrait être le problème ? Comment protéger le tableau contre les modifications ?
 
Maksym Mudrakov:
Pouvez-vous me donner un indice, s'il vous plaît ?
...
Qu'est-ce que ça peut être ? Comment empêcher la modification d'un tableau ?
Vérifiez bien le code.
 
Maksym Mudrakov:
Un conseil, s'il vous plaît.

Je déclare un tableau au niveau de l'EA globale. Ensuite, dans la fonction spéciale init(), j'appelle la fonction utilisateur qui remplit le tableau avec des constantes de type chaîne.

Ensuite, dans la fonction spéciale start(), j'utilise le tableau uniquement pour lire les données.

Quelque temps plus tard, d'autres données viendront remplir le tableau. C'est-à-dire que lorsque je lance l'EA, je m'attends à ce que le tableau reste inchangé pendant que l'EA fonctionne, mais les données arrivent d'une manière ou d'une autre dans le tableau, et seulement après un certain temps (plus de 10 minutes). Lorsque je redémarre le conseiller expert, le tableau sera rempli comme il se doit, mais quelque temps plus tard, pour des raisons que je ne comprends pas, le tableau contiendra à nouveau les mauvaises valeurs.

La seule solution consiste à recharger constamment le tableau dans la fonction start(), mais je n'aime pas vraiment cela, car le tableau ne devrait être rempli que pendant l'initialisation.

Quel pourrait être le problème ? Comment protéger le tableau contre les modifications ?
Je peux voir le code ?
Raison: