[Toute question de débutant, afin de ne pas encombrer le forum. Professionnels, ne passez pas votre chemin. Je ne peux aller nulle part sans toi. - page 324

 
TheXpert >> :

Alerte, en option. Commentaire -- c'est bien.

Remplacer while(true) par while(!IsStopped())

En retard.)))

Oui, j'ai oublié IsStopped.

 
Svinozavr >> :

En retard.)))

Je peux vous donner une longueur d'avance la prochaine fois :) .

Svinozavr >> :

Ecrivez le f-fi où la sortie sera faite et écrivez ce dont vous avez besoin à travers lui.

Option.


 
TheXpert >> :

>> Merci. Est-il possible de changer la couleur du commentaire ? Ou seulement blanc ?

 
TheXpert >> :
Je peux vous donner une longueur d'avance la prochaine fois :) .

Au fait, oui, merci, la réponse est très rapide ici :)

 
Mathers >> :

Merci. Est-il possible de changer la couleur de Commentaire ? Ou seulement blanc ?

>>Non, je n'en ai pas.

 

S'il n'est pas nécessaire de traiter chaque tick, comment puis-je faire en sorte que le code ne soit traité que lorsqu'une nouvelle barre apparaît ?

Il doit bien exister une fonction toute prête. Lance-moi un lien...


UPDATE

Merci, je l'ai trouvé ( :

//+------------------------------------------------------------------+
//|  возвращает признак появления нового бара для указанного периода |
//+------------------------------------------------------------------+
bool isNewBar(int timeFrame)
   {
   bool res=false;
   
   // массив содержит время открытия текущего (нулевого) бара
   // по 7 (семь) таймфреймам
   static datetime _sTime[7];  
   int i=6;
 
   switch ( timeFrame) 
      {
      case 1  : i=0; break;
      case 5  : i=2; break;
      case 15 : i=3; break;
      case 30 : i=4; break;
      case 60 : i=5; break;
      case 240: break;
      case 1440:break;
      default:  timeFrame = 1440;
      }
//----
   if (_sTime[ i]==0 || _sTime[ i]!=iTime(Symbol(), timeFrame,0))
      {
      _sTime[ i] = iTime(Symbol(), timeFrame,0);
      res=true;
      }
      
//----
   return( res);   
   }
 

Comment utiliser le script pour définir ma propre échelle sur le graphique ?

Les fonctions qui vous indiquent quelle barre est affichée en premier sont présentes, mais la façon de la réinitialiser ne l'est pas.

 

Bonjour à tous, qui peut expliquer ? La fonction RefreshRates(), doit-elle toujours être appelée ou lorsqu'un Expert Advisor ou un script effectue de longs calculs, fonctionne-t-elle automatiquement, par exemple, dans les fonctions de traitement des erreurs ?
Deuxième question : voici un exemple de code, j'ai corrigé une erreur, passé un paramètre à l'opérateur de commutation...

int start()
  {
      int A = 1000;
      bool B=true;       // Условие успешной работы
//--------------------------------------------------------------
    if(Bars < A)         // Недостаточно баров
    {      
      Alert("Недостаточно баров в окне инструмента.");
      return;            // Выход из start()
    }
    if( B==false)         // Критическая ошибка   
      {      
      Alert("Эксперт не работает.");     
      return;            // Выход из start   
      }
//+-------------------------------------------------------------- 
  return(0);
  }
//--------------------------------------------------------------
    int Bloc_Error(int S)    // Пользовательская ф-ия обработки ошибок
    {   
      switch( S)    
      { 
      case 3:                // Неверные параметры:
      B=false;
      return(0);                                
      }  
    }

Eh bien, maintenant il y a une autre erreur, il semble que la variable indéfinie B
, ne l'ai-je pas déclarée ?

bool B=true;

Voici à quoi ressemble le message d'erreur :
'B' - variable non définie ----------------- C:\Program Files\MetaTrader - Masterforex\experts\scripts\2.mq4 (31, 7)

Voici une autre question : quels sont ces chiffres ? (31, 7), ils sont toujours différents pour des erreurs différentes, j'ai regardé les mêmes entrées dans le répertoire spécifié, c'est comme un nom d'erreur dans un document... est-il possible dans MetaEditor 4, quelque part de voir la description de la solution, par exemple, comme dans l'Expert Advisor, les erreurs d'exécution et d'exécution correspondent à leurs valeurs, où pour chaque numéro une cause spécifique d'erreur ???

 
Daiver2 писал(а) >>

Bonjour à tous, qui peut expliquer ? La fonction RefreshRates(), doit-elle toujours être appelée ou lorsque le conseiller expert ou le script effectue de longs calculs, elle se déclenche automatiquement, par exemple dans les fonctions de traitement des erreurs ?
Deuxième question : voici un exemple de code, j'ai corrigé une erreur, passé un paramètre à l'opérateur de commutation...

eh bien, maintenant il y a une autre erreur, comme une variable indéfinie B
Je ne l'ai pas déclaré ?

Voici à quoi ressemble le message d'erreur :
'B' - variable non définie ----------------- C:\Program Files\MetaTrader - Masterforex\experts\scripts\2.mq4 (31, 7)

D'où une autre question : quels sont ces chiffres ? (31, 7), ils sont toujours différents pour des erreurs différentes, j'ai regardé les mêmes entrées dans le répertoire spécifié, c'est juste comme un nom d'erreur dans le document... y a-t-il quelque part dans MetaEditor 4, un endroit où l'on peut voir la description de la solution, par exemple comme dans l'Expert Advisor, les erreurs d'exécution et de fonctionnement correspondent à leurs valeurs, où pour chaque numéro une cause spécifique de l'erreur ?

Il doit être défini en dehors de la fonction start(), il doit être global. Ensuite, la variable sera disponible à partir de n'importe quelle fonction

 
Vinin >> :

Il doit être défini en dehors de la fonction start(), il doit être global. Ensuite, la variable sera disponible à partir de n'importe quelle fonction

Laissez-moi vous expliquer. Start est la même fonction que les autres, donc toutes les définitions de variables dans Start n'ont aucun effet en dehors de celle-ci. La variable ne peut être définie globalement que dans le corps du conseiller expert, avant l'init. Il sera alors visible pour toutes les fonctions.

Les chiffres sont le numéro de ligne et le nombre de caractères dans la ligne où l'erreur s'est produite.