Toute question de débutant, afin de ne pas encombrer le forum. Professionnels, ne passez pas à côté. Nulle part sans toi - 6. - page 648

 
Le problème semble être que lorsque vous changez d'horizon temporel, le conseiller expert est pré-initialisé, ce qui entraîne un grand nombre de variables vides. Et s'ils sont vides, cela signifie qu'il n'y a soi-disant pas de commerce et que nous devons en ouvrir de nouveaux.
 
intrade:
Le problème semble être que lorsque vous changez d'horizon temporel, le conseiller expert est pré-initialisé, ce qui entraîne un grand nombre de variables vides. Et s'ils sont vides, cela signifie qu'il n'y a soi-disant pas de commerce et que nous devons en ouvrir de nouveaux.

Ne créez donc pas de variables vides. Et vérifiez ce qui a déjà été ouvert par le symbole, par le magicien, et si nécessaire - par le temps. Mais il n'y a pas de télépathes ici, il n'y a rien à dire sans le code.
 
intrade:
Le problème semble être que lorsque vous changez d'horizon temporel, le conseiller expert est pré-initialisé, ce qui entraîne un grand nombre de variables vides. Et s'ils sont vides, cela signifie qu'il n'y a soi-disant pas de commerce et que nous devons en ouvrir de nouveaux.

La question est de savoir pourquoi il faut changer l'horizon temporel lorsque le conseiller expert est en cours d'exécution. Vous devez établir un tabou - mettez l'EA, oubliez le graphique, si vous avez besoin de voir quelque chose, ouvrez un nouveau graphique et faites-en ce que vous voulez.
 
intrade:
Le problème semble être que lorsque vous changez d'horizon temporel, le conseiller expert se pré-initialise, ce qui entraîne un grand nombre de variables vides. Et s'ils sont vides, cela signifie qu'il n'y a soi-disant pas de commerce et que nous devons en ouvrir de nouveaux.


Utilisez des minuteurs comme, par exemple :

iClose

Renvoie le prix de clôture de la barre (spécifiée par le paramètre shift) du graphique correspondant.

doubleiClose(
symbole de chaîne de caractères,// symbole
inttimeframe,// période
intshift// shift
) ;

Et modifiez le calendrier autant que vous le souhaitez ! Regardez dans le Doku, tout est là pour vous !

 
Les empreintes ralentissent-elles l'optimisation de l'EA ou ne sont-elles pas traitées ?
 
ClanVi:
Les empreintes ralentissent-elles l'optimisation de l'EA ou ne sont-elles pas traitées ?

Oui, toute ligne de code prend du temps au processeur, et le code qui produit des messages ou travaille avec des objets graphiques ralentit considérablement l'exécution du programme...
 
ClanVi:
Les empreintes ralentissent-elles l'optimisation de l'EA ou ne sont-elles pas traitées ?


C'est très facile à éviter ! Lorsque le code a été testé dans le testeur, mettez-le avant Print ou Comment.

  if(!IsOptimization() || !IsTesting()) 

Et il n'y a pas de points de suture !

 
VOLDEMAR:

Oui, toute ligne de code prend du temps au processeur et le code qui produit des messages ou travaille avec des objets graphiques ralentit considérablement l'exécution du programme...
Les objets graphiques sont ignorés dans l'optimiseur et le testeur s'ils ne sont pas en mode visuel, mais les impressions sont intéressantes pour moi...
 
Bonjour à tous. Messieurs conseillez ce qu'il faut faire avec l'erreur "Error 6" pas de connexion avec le serveur, mais les tics vont et tout est comme il devrait.... hiboux sur le test ... aujourd'hui je me suis levé et vous êtes ici..... il ya 4 hiboux 5M 15M 30M 1H une telle erreur a jeté dans les journaux sur M5 M15 M30 tous à des moments différents et les prix.... Si vous avez de l'expérience dans ce domaine, veuillez m'aider. Merci.
 

Le débogueur ne fonctionne pas - quel est le problème ?

Meilleurs vœux à tous les membres du forum !

Personne n'a répondu à ma question sur la page 644. J'ai dû mal poser la question, alors je vais la reposer. Donc,

Metatrader Bild 646, Editor Bild 934. Voici un indicateur simple :

class CDebuggerFix { } ExtDebuggerFix; //Это заклинание, исправляющее известный баг.
void start()                     
  {
   int i=10,                           
       k3;
   string k2;
  
     while(i>=1)                      
     {
      k2=Symbol();
    
      if (k2=="EURUSD") k3=3;
      if (k2=="USDCHF") k3=4;
      if ((k2=="EURUSD"||k2=="USDCHF")!=True) k3=5;
       Alert("k2=",k2,"\n","k3=",k3);
       
          i--;                         
      }
  return;
  }

Je l'exécute sur l'EURUSD, graphique M1, et voici ce que j'obtiens :


C'est-à-dire que tout est comme il se doit.

Et maintenant, je crée un point d'arrêt avant Alert et je lance le débogueur :


USDCHF, le graphiqueH1 apparaît. D'où vient-elle ? SeulEURUSD ,M1 était ouvert.

J'appuie sur OK et voilà ce que je vois :


C'est-à-dire que l'indicateur prend les données exactement de cet USDCHF,H1. Quel est le problème ici ?

Deuxième question : l'éditeur ne place pas le script écrit dans le dossier Scripts mais dans le dossier MQL4 et y place également le fichier compilé. Je dois faire glisser et déposer manuellement le code source dans le dossier Scripts, puis le compiler et le script n'apparaîtra dans le Navigateur qu'à ce moment-là. Les indicateurs n'ont pas ce problème, ils vont tout de suite dans leur propre dossier. Est-ce que je fais quelque chose de mal ou est-ce que l'éditeur fait une erreur ?

Bonne chance à celui qui me répondra.

Raison: