Erreurs, bugs, questions - page 2053

 
Kirill Belousov:

Pourquoi le compilateur saute-t-il cette étape ? (MT4/MT5).

Ce n'est qu'au moment de l'exécution que la division par 0 apparaît.

Probablement parce que le compilateur ne calcule pas la valeur, il traduit simplement le code du programme en code machine.

 
Qu'en est-il du classement des signaux ?

Je suis soit à la dernière place, soit au milieu.
 

Quel est le problème avec la grille de Gann dans MT5 ? Vous ne pouvez pas déplacer les extrémités de la ligne de contrôle le long de l'axe Y ?

 
Dans le testeur de stratégie, lorsque le code a des remplacements autocomplétés pour les variables d'instance sous forme de commentaires, alors dans les paramètres d'optimisation super, mais après l'optimisation les vrais noms de variables sont dans le tableau. C'est déroutant - il faut tout le temps regarder dans le code.
 

Chère administration.

Bug dans le rapport 1653 du testeur de stratégie MT5

courtier ActiveTrades

mon Conseiller Expert ouvre d'abord une position, puis il modifie les stops (SYMBOL_TRADE_EXECUTION_MARKET)

Cela apparaît normalement dans les journaux.

Mais lors de la sauvegarde du rapport ! il n'y a pas d'arrêts dans le rapport.

SYMBOL_FILLING_MODE=3 SYMBOL_TRADE_EXEMODE=2 SYMBOL_EXPIRATION_MODE=7 SYMBOL_TRADE_MODE=4 SYMBOL_TRADE_STOPS_LEVEL=0 SYMBOL_TRADE_FREEZE_LEVEL=0 SYMBOL_ORDER_MODE=127 SYMBOL_START_TIME=0 SYMBOL_EXPIRATION_TIME=0 SYMBOL_SPREAD=5 SYMBOL_SESSION_DEALS=0
IE      0       09:43:35.667    Core 1  2017.08.01 02:10:00   market buy 0.01 EURUSD (1.18278 / 1.18283 / 1.18278)
JP      0       09:43:35.667    Core 1  2017.08.01 02:10:00   deal #2  buy 0.01 EURUSD at 1.18283 done (based on order #2)
 OH      0       09:43:35.667    Core 1  2017.08.01 02:10:00   deal performed [#2  buy 0.01 EURUSD at 1.18283]
LN      0       09:43:35.667    Core 1  2017.08.01 02:10:00   order performed buy 0.01 at 1.18283 [#2  buy 0.01 EURUSD at 1.18283]
EQ      0       09:43:35.667    Core 1  2017.08.01 02:10:00   ModifyOrders Modify  2 POSITION_TYPE=0 stoploss=1.17678 takeprofit=0.0 request.sl=1.17678 request.tp=0.0 POSITION_SL=0.0 POSITION_TP=0.0 SYMBOL_BID=1.18278 SYMBOL_ASK=1.18283 stops_level=0
OR      0       09:43:35.667    Core 1  2017.08.01 02:10:00   position modified [#2  buy 0.01 EURUSD 1.18283 sl: 1.17678]
DE      0       09:43:35.667    Core 1  2017.08.01 02:10:00   ModifyOrders Modify = 10009 symbol EURUSD volume 0.0 action 6 tp 0.0 sl 1.17678 type 0 price 0.0   Request completed
CL      0       09:43:35.667    Core 1  2017.08.01 02:10:00   Result = 10009 symbol EURUSD volume 0.0 action 6 tp 0.0 sl 1.17678 type 0 price 0.0   Request completed


Les champs Stop Loss et Take Profit sont vides.


Cela se produit uniquement sur SYMBOL_TRADE_EXECUTION_MARKET.

Bien que lorsque je ferme par Stop Loss, tout est réglé correctement...

 
Alexey Viktorov:

Probablement parce que le compilateur ne calcule pas la valeur, il traduit simplement le code du programme en code machine.

Si le dénominateur est une constante, par exemple x/(5*0), l'erreur est détectée au moment de la compilation.

c'est-à-dire que le compilateur ne se contente pas de traduire le code, il effectue le calcul.

Il me semble que le compilateur devrait détecter un cas où le dénominateur est un produit dans lequel l'un des termes est 0 (constant), alors le compilateur devrait produire une erreur de division par 0.

 
FileReadArray() ne lit pas un tableau de données lorsque la taille du fichier dépasse INT_MAX octets.
 
Roffild:
FileReadArray() ne lit pas le tableau de données lorsque la taille du fichier dépasse INT_MAX octets.

Ce n'est pas un FileReadArray, c'est un tableau qui ne peut pas être plus grand que cette taille. Ce n'est pas une erreur, c'est voulu.

 
Kirill Belousov:

Si le dénominateur est une constante, par exemple x/(5*0), l'erreur est détectée au moment de la compilation.

c'est-à-dire que le compilateur ne se contente pas de traduire le code, il effectue le calcul.

Il me semble que le compilateur devrait détecter un cas où le dénominateur est un produit dans lequel l'un des termes est 0 (constant), alors le compilateur devrait produire une erreur de division par 0.

Connaissez-vous un langage et son compilateur qui peuvent attraper de telles erreurs ?

 

Comment la fonction d'enregistrement automatique du texte est-elle censée fonctionner sur le site lorsqu'il sera mis à jour ?

Je viens d'avoir une autre mise à niveau. Le bouton "Autosave text" est actif, mais lorsque vous cliquez sur "Load saved text", rien n'est chargé. Je peux voir le texte du forum dans le stockage local de mon navigateur, mais je ne peux pas voir le texte des messages privés.

Lorsque j'appuie sur le bouton "Reply", une tentative est faite pour envoyer le texte au serveur et le formulaire est immédiatement effacé (visuellement, c'est ce qui se passe). Si cet état effacé va dans le référentiel, on peut comprendre pourquoi rien ne peut être récupéré. Mais pour le vérifier, vous devez à nouveau "frapper" la mise à niveau du site.

En principe, la raison pour laquelle il en est ainsi n'est pas claire. Nous sommes au XXIe siècle. Mais même au XXe siècle, je n'ai pas vu de site qui soit tombé publiquement en désuétude. Pour les "meilleurs éleveurs de chiens", la mise à niveau du site se déroule sans problème, sans effet notable. Et inutile de préciser qu'il s'agit d'un cas particulièrement complexe. Ce n'est pas le cas.