[ARCHIVE]Toute question de débutant, afin de ne pas encombrer le forum. Professionnels, ne passez pas à côté. Je ne peux aller nulle part sans toi - 5. - page 246

 
gyfto:

Le journal indique que l'appel de la fonction 'GetModuleFileNameA' depuis la dll 'kernel32.dll' présente une erreur critique c0000005 à 7C902128 en cas de déclaration par chaîne de caractères. Je ne comprends toujours pas pourquoi. En apparence, le terminal se bloque environ 3 à 7 secondes après son ouverture, sans avoir le temps d'écrire quoi que ce soit dans les journaux, c'est-à-dire que le terminal ne se ferme pas tout seul.

La chaîne de caractères doit être initialisée :

string sBuf = "                           "; // Примерно так.

Dimass90:


Bonjour à tous, Je voudrais poser cette question. Il existe une paire comme eur\usd/ mais peut-on faire la paire opposée. usd\ur/ ?

Can :

USDEUR = 1 / EURUSD

 
Zhunko:

La chaîne de caractères doit être initialisée :

Il est resté comme ça :

...
nSize=255;
string lpFileName;

int init()
  {
   for(int i=0; i<nSize; i++){
      lpFileName = lpFileName + " ";
    }
   return(0);
  }

int start(){
   ...//после получения sizeFileName
   lpFilename = StringSubstr(lpFileName, 0, sizeFileName-1);
//дальше Print

Le journal a reçu au mieux "lpFileName=_255 spaces_"...

 
Zhunko:

La chaîne de caractères doit être initialisée :

Can :

USDEUR = 1 / EURUSD

Est-ce un script qui doit être modifié ? Je ne comprends pas(

 
Aide J'ai rencontré une situation où il y a deux fractales sur la même bougie - à la hausse et à la baisse. Est-ce un pépin ou est-ce normal ?
 
gyfto:

Il est resté comme ça :

Le journal obtenait au mieux "lpFileName=_255 spaces_"...

Faux. Correct, comme indiqué ci-dessus.
 
Dimass90:


Bonjour à tous, j'aimerais poser cette question : il existe une paire comme eur/usd/ mais peut-on faire la paire opposée ? usd/usd/ ? J'aimerais en avoir un.

Non, tu ne peux pas. C'est aux chefs des banques mondiales de fixer les symboles des devises.
 
Dimass90:

Est-ce un script qui doit être modifié ?


Si vous utilisez un indicateur, divisez alors un par tout ce qui a une valeur pour le prix dans les variables prédéfinies : ouverture, fermeture, haut, bas, offre, demande. Si c'est sur les chandeliers, ce sera similaire aux rangebars sur une fenêtre séparée (M2, etc.).

Usual_Trader:
Pouvez-vous me conseiller, j'ai rencontré une situation où il y a deux fractales à la hausse et à la baisse sur la même bougie. Est-ce un pépin ou est-ce normal ?

C'est normal, ça arrive, regardez l'histoire. Quelque part ici, il a même été expliqué pourquoi. Pourquoi s'inquiéter, le prix ne va pas aller dans deux directions au même moment, à moins bien sûr qu'il y ait une bougie externe qui pénètre simultanément deux fractales))).

 

Aide avec le script. La fonction Bars renvoie un nombre aléatoire à chaque tic. Le code est le suivant

void start()
        {
        LastBar = Bars;
        Print(LastBar, " ", Bars);
        
        while(LastBar >= 1)
                {       
                Print(LastBar);
                LastBar--;
                }
        }

J'ai exactement 517 barres sur le graphique.

Lorsque j'exécute le conseiller expert sur le graphique, il renvoie des nombres aléatoires dans le journal et saute la première fonction Print en commençant par celle de la boucle. Cependant, le journal montre que la boucle n'atteint pas la fin, c'est-à-dire que jusqu'au numéro 1, elle peut écrire des nombres autour de 180 et commence immédiatement à écrire des nombres supérieurs à 250. Et ça ressemble à ça

217 - 216 - 215 - 214 - 213 - 212 - 211 - 243 - 242 - 241 - 240 - 227 - 226 - 225 - 224...

Si nous supprimons la boucle while de la fonction, la première fonction Print produit toujours le nombre exact de barres. Elle écrit toujours 517. Comme ceci

void start()
        {
        LastBar = Bars;
        Print(LastBar, " ", Bars);
        
        }
 
sss2019:

Aide avec le script. La fonction Bars renvoie un nombre aléatoire à chaque tic. Le code est le suivant

Il y a exactement 517 barres sur le graphique.

Lorsque je lance le conseiller expert sur le graphique, il renvoie des nombres aléatoires dans le journal et saute la première fonction Print en commençant par celle de la boucle. Cependant, le journal montre que la boucle n'atteint pas la fin, c'est-à-dire que jusqu'au numéro 1, elle peut écrire des nombres autour de 180 et commence immédiatement à écrire des nombres supérieurs à 250. Et ça ressemble à ça

217 - 216 - 215 - 214 - 213 - 212 - 211 - 243 - 242 - 241 - 240 - 227 - 226 - 225 - 224...

Si nous supprimons la boucle while de la fonction, la première fonction Print produit toujours le nombre exact de barres. Elle écrit toujours 517. Comme ceci

Ne regardez pas le journal dans Metatrader, mais cliquez avec le bouton droit de la souris sur "Log-Open" et utilisez ensuite Notepad ou quelque chose de similaire.

 

sss2019, pas le temps de s'en occuper maintenant, désolé.

Zhunko:
Faux. Correct, comme indiqué ci-dessus.

Dès que j'en aurai le temps, je le corrigerai et modifierai le code dans le message.

Question. Comment obtenir un pointeur sur une chaîne de caractères ? La chaîne MQL4 est C++ lpsz, d'après ce que j'ai compris. Mais comment obtenir l'adresse de la chaîne elle-même ?