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

 
Existe-t-il un moyen de vérifier à partir du code dans quel mode le test est exécuté -
tous les ticks, les prix ouverts ou les points de test ?
 
Pourquoi ne puis-je pas ajouter des amis ?
 
Bonjour. J'essaie d'apprendre l'hébergement partagé en suivant les instructions, mais l'EA ne s'ouvre pas.
 

Pouvez-vous me dire lequel des piliers de l'AT classique est l'auteur de cette photo ?

Cette image se trouve dans"Stock Market Fundamentals " de Elder. En fait, c'est le même tableau qui m'intéresse, mais avec les CONVERGENCES, si tant est qu'elles existent.


 

Aidez-nous, s'il vous plaît. Un simple script et ça ne marche pas. Je n'arrive pas à comprendre pourquoi.

int awd1[];
void OnStart()
  {
   for(int i=0;i<=5;i++)
   {
   awd1[i]=i+10;
   }
   Alert("первый=");
  }

La boucle doit itérer 6 fois. À chaque itération, une valeur doit être attribuée au tableau awd1. Une fois la boucle terminée, une fenêtre devrait apparaître avec l'entrée "first=". Mais ça ne s'affiche pas. Qu'est-ce qui ne va pas ?

 
silachara:

Aidez-nous, s'il vous plaît. Un simple script et ça ne marche pas. Je n'arrive pas à comprendre pourquoi.

int awd1[];
void OnStart()
  {
   for(int i=0;i<=5;i++)
   {
   awd1[i]=i+10;
   }
   Alert("первый=");
  }

La boucle doit défiler 6 fois. À chaque itération, une valeur doit être attribuée au tableau awd1. Lorsque la boucle se termine, une boîte devrait apparaître avec l'entrée "first=". Mais ça ne s'affiche pas. Qu'est-ce qui ne va pas ?

Cela permettra également de se débarrasser des messages suivants dans le terminal : array out of range in ... :

#property strict
#define  ARRAY_SIZE  6
//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart()
  {
 int j=0, awd1[];
   ArrayResize(awd1,ARRAY_SIZE,ARRAY_SIZE+1);
//---
   for(int i=0;i<ARRAY_SIZE;i++)
     {
      j=i+10;
      //j=j+10;//или, к примеру, такой вариант вместо строки выше, чтобы вы посмотрели, что присваиваться будет
      awd1[i]=j;
     }
   Alert("первый = ");
  }
//+------------------------------------------------------------------+


P./S. : Voici une variante avec un chèque :

#property strict
#define  ARRAY_SIZE  6
//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart()
  {
 int j=0, count=0, awd1[];
   ArrayResize(awd1,ARRAY_SIZE,ARRAY_SIZE+1);
//---
   for(int i=0;i<ARRAY_SIZE;i++)
     {
      j=i+10;
      //j=j+10;//или, к примеру, такой вариант вместо строки выше, чтобы вы посмотрели, что присваиваться будет
      awd1[i]=j;
      count++;
      Print("count = ",count,", awd1[",i,"] = ",awd1[i],", j = ",j);
     }
   Alert("первый = ");
  }
//+------------------------------------------------------------------+
 
silachara:
Légèrement corrigé les codes ci-dessus pour que la même valeur awd1[i] ne sorte pas.
 
DiPach:
J'ai légèrement corrigé les codes ci-dessus, afin qu'une seule et même valeur awd1[i] n'apparaisse pas.

Merci !

Il fallait donc déclarer le tableau en spécifiant le nombre de cellules qu'il contenait ? Cette exigence est-elle apparue après le passage de MT4 à la version 600 ? Ou c'était comme ça avant ?

Et j'ai un autre problème : je n'arrive pas à trouver le fichier où sont écrites les informations provenant de Print(). S'il vous plaît, indiquez-moi la marche à suivre. J'ai cherché dans tous les répertoires de MT4, mais je ne l'ai pas trouvé.

 
silachara:

Merci !

Il fallait donc déclarer le tableau en spécifiant le nombre de cellules qu'il contenait ? Cette exigence est-elle apparue après le passage de MT4 à la version 600 ? Ou c'était comme ça avant ?

La fonction permettant de définir la taille d'un tableau dynamique ArrayResize existait également avant la 600ème build.

Et donc... avec la mise à jour du langage MQL4, le compilateur est devenu plus strict. Si nécessaire, vous pouvez consulter les informations intéressantes "de première main", au lieu de les relater avec une possible déformation intentionnelle, y compris une présentation incomplète, ici. Vous pouvez le voir dans le "Tableau des différences entre compilateurs" des langages MQL4 précédents et mis à jour (le tableau se trouve à la fin de la première page de ce fil) ou utiliser une recherche. Si je me souviens bien, il y avait beaucoup de matériel sur la transition vers le langage MQL4 mis à jour.

 

silachara:

Et un autre problème : je n'arrive pas à trouver le fichier dans lequel les informations de Print() sont écrites. S'il vous plaît, dites-moi le chemin. J'ai cherché dans tous les répertoires de MT4, mais je ne l'ai pas trouvé.

Un moyen rapide: Allez dans l'onglet"Experts" du terminal -> cliquez sur l'onglet avec le bouton droit de la souris -> cliquez sur"Ouvrir" dans le menu qui apparaît.

Cela ouvrira un dossier avec des fichiers journaux contenant les entrées de cet onglet, y compris celles produites par Print(). Vous trouverez ci-dessous une image (je me suis souvenu que j'avais cette information sous forme de visualisation) :


P./S.: De la même manière, vous pouvez ouvrir rapidement un dossier sur votre ordinateur avec les fichiers journaux des enregistrements à partir de l'onglet"Log" du terminal (ils sont dans un autre dossier).