Erreurs, bugs, questions - page 1426

 
Vladimir Pastushak:
Le prix du stop loss ou du take profit est incorrect.
Bonjour, Vladimir.
Pouvez-vous me dire comment le réparer ?
 
Сергей Верещак:
Bonjour, Vladimir.
Pouvez-vous me dire comment réparer cela ?
Vous devez vérifier quel prix vous avez mis pour prendre et quel prix pour arrêter la perte... C'est la seule chose que je puisse faire...
 

Je ne sais pas quel est ce bug, mais si nous avons un EA en cours d'exécution avec des objets graphiques sur un graphique, puis après le démarrage du testeur, les objets graphiques cessent d'être traités dans la première fenêtre ...

Je l'ai remarqué aujourd'hui même...

construire 902

 

Bonjour à tous ! Je commence tout juste à travailler avec des fichiers, et j'ai donc un malentendu : je veux écrire un nombre à la fin d'un fichier binaire, mais il écrase le contenu précédent. Que faire ? Merci d'avance !

int file_handle ;

file_handle=FileOpen("DEAL.bin",FILE_WRITE|FILE_BIN) ;

FileSeek(file_handle,0,SEEK_END) ;

FileWriteDouble(file_handle,12345.12) ;

FileClose(file_handle) ;

 
Ekaterina Hinkel:

Bonjour à tous ! Je commence tout juste à travailler avec des fichiers, et j'ai donc un malentendu : je veux écrire un nombre à la fin d'un fichier binaire, mais il écrase le contenu précédent. Que faire ? Merci d'avance !

Есть некоторые особенности работы при указании флагов чтения и записи:
 •Если указан FILE_READ – делается попытка открытия уже существующего файла. Если файл не существует, то открыть файл не получится, новый файл не создается.
 •Если FILE_READ|FILE_WRITE – создаётся новый файл если файл с таким именем отсутствует.
 •Если FILE_WRITE –  файл создается заново с нулевым размером.
 
Yury Kirillov:

2.0+2.0 n'est pas nécessairement égal à 4.0

NormalizeDouble est une normalisation, pas un arrondi.

Lors de la normalisation d'un nombre de type double via la fonction NormalizeDouble (pour MQL5 et MQL4), l'arrondi des valeurs au point décimal défini dans cette fonction est effectué depuis longtemps.

P./S. : Cela peut être vérifié de différentes manières. Par exemple, en créant des lignes horizontales sur un graphique à l'aide d'un script avec des valeurs qui diffèrent en décimales. Et où la marque suivante pour la ligne est déterminée en utilisant la fonction NormalizeDouble avec les chiffres décrémentés de un.

Autrement dit, disons que la première ligne est tracée à un certain point avec le nombre de décimales comme dans le graphique. La deuxième ligne est tracée à la même marque, mais avec le nombre de décimales (chiffres) de la fonction NormalizeDouble, plus petit d'une unité. La troisième - également avec la marque initiale, mais avec des chiffres dans la fonction NormalizeDouble plus petits de deux que dans le graphique. C'est comme ça.

 
Chers Messieurs, quand MT4 deviendra-t-il une application 64 bits ?
 
Aleksandr Novikov:
Chers Messieurs, quand MT4 deviendra-t-il une application 64 bits ?
Plus jamais. Nous, les quadruplés, sommes en marge de la vie.
 

Veuillez m'indiquer comment déterminer la valeur de Stops_Level.

SymbolInfoInteger(_Symbol, SYMBOL_TRADE_STOPS_LEVEL) renvoie 0

(C'est aussi 0 dans le terminal dans la fenêtre de spécification)

Mais lorsqu'on essaie de placer un ordre avec un stop de 10 points inférieur à l'ASK, SendOrder renvoie l'erreur 10016 (mauvais stops dans la requête).

En même temps, si nous vérifions la commande à l'aide de CheckOrder, il n'y a pas d'erreur.

Juste au cas où, voici la structure de la demande :

Req.action = TRADE_ACTION_DEAL;

Req.symbol = _Symbol ;

Volume requis = 1 ;

Req.type=ORDER_TYPE_BUY ;

Req.type_filling=ORDER_FILLING_RETURN ;

Req.sl = Ask - 10 ;

 
mao17:

Veuillez m'indiquer comment déterminer la valeur de Stops_Level.

SymbolInfoInteger(_Symbol, SYMBOL_TRADE_STOPS_LEVEL) renvoie 0

(C'est également 0 dans la fenêtre de spécification du terminal client).

Mais lorsqu'on essaie de placer un ordre avec un stop de 10 points inférieur à l'ASK, SendOrder renvoie l'erreur 10016 (mauvais stops dans la requête).

En même temps, si nous vérifions la commande à l'aide de CheckOrder, il n'y a pas d'erreur.

Juste au cas où, voici la structure de la demande :

Req.action = TRADE_ACTION_DEAL;

Req.symbol = _Symbol ;

Volume requis = 1 ;

Req.type=ORDER_TYPE_BUY ;

Req.type_filling=ORDER_FILLING_RETURN ;

Req.sl = Ask - 10 ;

C'est drôle :

Par exemple, votre demande actuelle est de 1.00698.

Maintenant, la question est : combien vaut 1,00698-10 = ?

Raison: