MetaTrader 4 Build 529 beta publié avec un nouveau compilateur - page 46

 
Le 540 est sorti...
 
VOLDEMAR:
Les gars, si vous avez une minute, envoyez-moi l'installation web de la dernière version, merci.


Voici le 540.

depuis C:\Users\XXXXX\AppData\Roaming

 
ENUM_TIMEFRAMES vous donne le choix de la masse des délais, est-ce que tous les délais fonctionnent ou seulement les délais standard de mt4 ? ???.
 

Après la mise à niveau vers 540. Le ME est perdu. Le terminal est démarré avec le commutateur /portable. ME devrait également commencer par le commutateur /portable. Depuis le terminal, ME ne commence pas avec F4 :


La capture d'écran ouvre le répertoire de données à partir du terminal. Il est correct et l'éditeur est en place.

Après avoir redémarré le terminal, ME s'est ouvert en appuyant sur F4 dans le terminal.

Intéressant comment cela fonctionne :

  1. Le terminal ne voit pas la mise à jour. Redémarrage du terminal. 1.
  2. Le terminal dit que la mise à jour a été téléchargée. Redémarrage du terminal. 2.
  3. Le terminal se charge et demande d'effectuer des modifications. Je l'autorise. Le terminal redémarre tout seul. 3.
  4. Après un redémarrage automatique, le terminal oublie ses paramètres et s'ouvre avec une configuration aléatoire - sans les anciennes fenêtres, indicateurs et modèles. Redémarrage du terminal. 4.
  5. Après le redémarrage, le terminal "rappelle" ses anciens paramètres : il ouvre les graphiques requis avec les indicateurs et les modèles, mais ... le terminal "perd" l'éditeur et écrit dans le journal qu'il est introuvable. Je redémarre le terminal. 5.
  6. Le terminal se charge et maintenant tout va bien - mes graphiques, mes paramètres, mes modèles, mes indicateurs. ME est trouvé et fonctionne. 6.
Un total de six redémarrages du terminal pour mettre à jour et continuer dans le même mode.
 
artmedia70:

Après la mise à niveau vers 540. Le ME est perdu. Le terminal est démarré avec le commutateur /portable. ME devrait également commencer par le commutateur /portable. A partir du terminal ME ne commence pas avec F4 :


Merci de demander, nous allons vérifier.
 
extern string     symbol        = ""  ;

void OnTick()
  {
string sy = sym();
double ask = MarketInfo(sy,MODE_ASK);
  }

string sym    ()
{ 
 string symm = symbol;
 if ( symm == "" ) 
 symm=Symbol () ;
 
 return (symm);

Inondé de messages

 

Je m'excuse ici... Que signifie l'avertissement selon lequel tous les chemins de contrôle ne renvoient pas une valeur ?

Parce que de tels vernis sont apparus lors de la compilation dans cette bêta, et quoi et à propos de quoi, je ne comprends pas.

Merci.

 
St0nE:

Je m'excuse ici... Que signifie l'avertissement selon lequel tous les chemins de contrôle ne renvoient pas une valeur ?

Parce que de tels vernis sont apparus lors de la compilation dans cette bêta, et quoi et à propos de quoi, je ne comprends pas.

Merci.

certaines variantes sur lesquelles l'algorithme de code pourrait s'exécuter pourraient ne pas renvoyer de valeur.

Par exemple, vous avez une fonction Switch () mais aucune option par défaut : où devrait se trouver return().

 

Merci pour la réponse, pouvez-vous vérifier un morceau de code où il pourrait y avoir un tel bug, je n'arrive pas à le comprendre...

bool isDodgi(string TypeOrder, int NumBar) // 
{ 
  double Price1=0, Price2=0, Price3=0;

  if (TypeOrder=="BUY") {
    if (Cut_Digits(Open[NumBar])==Cut_Digits(Close[NumBar])) {
      return(true);
    }
    if (Cut_Digits(Open[NumBar])>Cut_Digits(Close[NumBar])) {
      Price1=Open[NumBar];
      Price2=Close[NumBar];
      Price3=Low[NumBar];
    }
    if (Cut_Digits(Close[NumBar])>Cut_Digits(Open[NumBar])) {
      Price1=Close[NumBar];
      Price2=Open[NumBar];
      Price3=Low[NumBar];
    }
    if (((Price2-Price3)/(Price1-Price2))>=2) {
      return(true);
    }
  }
  if (TypeOrder=="SELL") {
    if (Cut_Digits(Open[NumBar])==Cut_Digits(Close[NumBar])) {
      return(true);
    }
    if (Cut_Digits(Open[NumBar])>Cut_Digits(Close[NumBar])) {
      Price1=Open[NumBar];
      Price2=Close[NumBar];
      Price3=High[NumBar];
    }
    if (Cut_Digits(Close[NumBar])>Cut_Digits(Open[NumBar])) {
      Price1=Close[NumBar];
      Price2=Open[NumBar];
      Price3=High[NumBar];
    }
    if (((Price3-Price1)/(Price1-Price2))>=2) {
      return(true);
    }
  }
}
 
St0nE:

Merci pour la réponse, pouvez-vous vérifier un morceau de code où il pourrait y avoir un tel bug, je n'arrive pas à le comprendre...

bool isDodgi(string TypeOrder, int NumBar) // 
{ 
  double Price1=0, Price2=0, Price3=0;

  if (TypeOrder=="BUY") {
    if (Cut_Digits(Open[NumBar])==Cut_Digits(Close[NumBar])) {
      return(true);
    }
    if (Cut_Digits(Open[NumBar])>Cut_Digits(Close[NumBar])) {
      Price1=Open[NumBar];
      Price2=Close[NumBar];
      Price3=Low[NumBar];
    }
    if (Cut_Digits(Close[NumBar])>Cut_Digits(Open[NumBar])) {
      Price1=Close[NumBar];
      Price2=Open[NumBar];
      Price3=Low[NumBar];
    }
    if (((Price2-Price3)/(Price1-Price2))>=2) {
      return(true);
    }
  }
  if (TypeOrder=="SELL") {
    if (Cut_Digits(Open[NumBar])==Cut_Digits(Close[NumBar])) {
      return(true);
    }
    if (Cut_Digits(Open[NumBar])>Cut_Digits(Close[NumBar])) {
      Price1=Open[NumBar];
      Price2=Close[NumBar];
      Price3=High[NumBar];
    }
    if (Cut_Digits(Close[NumBar])>Cut_Digits(Open[NumBar])) {
      Price1=Close[NumBar];
      Price2=Open[NumBar];
      Price3=High[NumBar];
    }
    if (((Price3-Price1)/(Price1-Price2))>=2) {
      return(true);
    }
  }
  ТУТ КОСяК ( return() где?)
}