Erreurs, bugs, questions - page 97

 
EvgeTrofi:

Si la déclaration comporte beaucoup de parenthèses, elle commence à s'embrouiller !

Voici, par exemple, une fonction qui renvoie un nombre à partir d'une chaîne comme "klsfd Step 2 :

En quoi est-il différent de celui-ci ?

La seconde causera des problèmes de compilation, alors que la première ne le fera pas.

Essayez ceci

int GetStep(string text){
   string Right;
   int U = StringFind(text, "Step ");
   int End;
   if(U>=0){
      U=U+5;
      Right = StringSubstr(text, U);
      End = StringFind(Right, ".");
      return((int)(MathRound(StringToDouble(StringSubstr(text, U, End-U)))));
   }
   return(0);
}
 
Interesting:

Vous devez convertir explicitement le résultat en type int.

PS

Mais si je comprends bien, cet avertissement peut être ignoré en principe...

C'est clair, mais logiquement ce n'est pas correct ! Une expression à droite du signe d'égalité doit retourner le type int !

 
EvgeTrofi:

C'est compréhensible, mais logiquement ce n'est pas juste ! L'expression à droite du signe égal doit retourner le type int ? !

C'est int pour SYMBOL_TRADE_STOPS_LEVEL mais la fonction peut retourner d'autres types aussi...

Identifiant

Description

Type de propriété

SYMBOL_SELECT

Indique que le symbole est sélectionné dans le Market Watch

bool

SYMBOL_VOLUME

Volume - Volume de la dernière transaction

long

SYMBOLE_VOLUMEHIGH

Volume maximal pour la journée

long

SYMBOLE_VOLUMELOW

Volume le plus faible de la journée

long

SYMBOLE_VOLUMEBID

Volume de l'offre actuelle

long

SYMBOLE_VOLUME

Volume de la demande actuelle

long

SYMBOL_TIME

Heure du dernier devis

datetime

SYMBOL_DIGITS

Nombre de décimales

int

SYMBOL_SPREAD

Taille du spread en pips

int

SYMBOL_SPREAD_FLOAT

Signe d'un spread flottant

bool


PS

De plus, comme je l'ai déjà écrit plus haut, cet avertissement peut être "ignoré" si vous êtes sûr que le code est correct...

 
Pouvez-vous me dire comment désactiver la mise à jour automatique? Mon lieu de travail ne me donne que 200 Mo par mois. Encore une mise à jour et le trafic s'arrête :(
 
EvgeTrofi:
Pouvez-vous me dire comment désactiver la mise à jour automatique ? Mon lieu de travail ne me donne que 200 Mo par mois. Une mise à jour de plus et le trafic sera ruiné :(
Les méthodes standard ne sont pas possibles, du moins pas encore...
 

"En conséquence, chaque fois que vous vous connectez à l'Internet, le client consomme d'abord 60 Mo, puis ne répond pas, ce qui l'oblige à fermer l'application.

client par le biais du gestionnaire de tâches, a ouvert le programme "défragmentation du disque Cette section du disque (où le client est installé) est très fragmentée, défragmentation

n'aide toujours pas, les fichiers dans le répertoire (où le terminal MQL-5 est installé) sont toujours fragmentés.

 
J'ai réécrit mon EA de MQL4 à MQL5. Lors de la compilation, il n'y a pas une seule erreur ou commentaire. Pendant les tests - pas un seul échange. Où puis-je trouver la raison de ce résultat ? Que dois-je rechercher en premier ?
 
EvgeTrofi:
J'ai réécrit mon EA de MQL4 à MQL5. Lors de la compilation, il n'y a pas une seule erreur ou commentaire. Pendant les tests - pas un seul échange. Où puis-je trouver la raison de ce résultat ? Quelle doit être la première chose à rechercher ?
Puis-je voir le journal du conseiller expert dans le testeur de stratégie (de préférence sous forme de fichier) ?
 
Le journal est, on pourrait dire, vierge. Je suis habitué à ce que MQL4 écrive comme mauvais lot ou mauvais arrêts.....
 
EvgeTrofi:
Le journal est, on pourrait dire, vierge. Je suis habitué à ce que MQL4 écrive comme mauvais lot ou mauvais arrêts.....

Voici le journal du testeur, avec une indication de l'endroit où consulter le journal de l'agent.

MN      0       Tester  13:42:54        log file "C:\Program Files\MetaTrader 5\Tester\Agent-127.0.0.1-3000\logs\20100817.log" written
Raison: