Erreurs, bugs, questions - page 1905

 
2017.05.29 22:53:02.047 MQL4 Market : échec de la création du fichier temporaire pour le téléchargement du produit 'Prodigy' [267]

 
J'ai vidé la batterie de l'ordinateur portable.
Travaillait dans MetaEditor 1601.
La charge de la batterie était à 0% et pendant la compilation du programme MT4, l'ordinateur portable n'avait plus de courant.
J'ai été très surpris, lorsque la fois suivante j'ai ouvert le fichier de travail au lieu du code, il contenait 311 KB de valeurs NUL.

Si possible, veuillez envisager une mise en œuvre plus sûre de la procédure de sauvegarde lors de la compilation.
 
Sergey Dzyublik:
J'ai vidé la batterie de l'ordinateur portable.
Travaillait dans MetaEditor 1601.
La charge de la batterie était à 0% et pendant la compilation du programme MT4, l'ordinateur portable n'avait plus de courant.
J'ai été très surpris, lorsque la fois suivante j'ai ouvert le fichier de travail au lieu du code, il contenait 311 KB de valeurs NUL.

Si possible, veuillez envisager une mise en œuvre plus sûre de la procédure de sauvegarde lors de la compilation.

Peut-être y a-t-il un intérêt à acheter un ordinateur portable avec une batterie plus puissante ? Ou travailler en toute sécurité sur le secteur ?
 
Sergey Dzyublik:
J'ai vidé la batterie de l'ordinateur portable.
Travaillait dans MetaEditor 1601.
La charge de la batterie était à 0% et pendant la compilation du programme MT4, l'ordinateur portable n'avait plus de courant.
J'ai été très surpris, lorsque la fois suivante j'ai ouvert le fichier de travail au lieu du code, il contenait 311 KB de valeurs NUL.

Si possible, veuillez envisager une mise en œuvre plus sûre de la procédure de sauvegarde lors de la compilation.
Il serait préférable d'avoir un agent de sécurité sur votre ordinateur portable pour surveiller la charge de la batterie et le brancher si nécessaire ;))
 
Konstantin:
il vaut mieux mettre un agent de sécurité sur l'ordinateur portable pour surveiller la charge de la batterie et le brancher si nécessaire ;))

L'hibernation est là pour ça... et des prises de courant avec un minuteur...

 
Sergey Dzyublik:
Êtes-vous sûr que ce nombre est exactement 860000000000000000 ?
Si vous convertissez ce nombre de bits en gigaoctets, vous obtenez - 10750000000000000000GB.


J'ai compté les zéros moi-même....

Maintenant fixé à 6.18e+18, si plus OnTesterPass est appelé seulement sur la nouvelle génération. Avec le bruteforcing direct, il n'est pas appelé du tout... Et pas un mot à ce sujet dans l'aide. Les gens doivent rechercher eux-mêmes ces "particularités" du testeur, en y consacrant beaucoup de temps.


 

Je suis confus par la spécification du contrat :

1. taille du tick == pas du tick ==SYMBOL_TRADE_TICK_SIZE

2. prix tick == valeur de 1 pip ==SYMBOL_POINT

Est-ce que je comprends bien ?

Cette confusion s'est produite en raison du stock de TGKA chez le courtier Otkritie, dont la spécification n'est pas correcte :

1. Taille du tick == 0.000005
2. Prix en tick == 0.00001 (devrait être 0.000001)

 
Pourquoi y a-t-il une grande différence dans MT5 entre les résultats des ensembles d'optimisation et les tests individuels ? Je suis tombé sur ça dans la section des actions. J'ai parcouru l'aide sur les particularités du travail avec le testeur mais je n'ai trouvé qu'un seul moment peu clair qui pourrait influencer la situation mentionnée. D'après le chapitre de l'aide "Modélisation du temps dans le testeur", l'heure du serveur renvoyée par la fonctionTimeTradeServer() est toujours égale à l'heure GMT et il n'y a pas de correction pour le décalage du fuseau horaire. Comme le robot en cours de test dispose d'une fenêtre d'opération entre les enchères et qu'il synchronise cette fenêtre à l'aide de la fonctionTimeTradeServer(), il peut y avoir une raison à cela et nous devrions ajouter la correction du fuseau horaire pendant les tests.
 

Bonjour, Dans MT4, lorsque vous supprimez un ordre limité à l'intérieur d'un spread, il y a souvent une situation d'erreur - l'ordre à supprimer se bloque, ce qui ne peut être résolu qu'en rechargeant le terminal. Pour autant que j'aie compris le mécanisme , il se produit de la manière suivante :

1 ) Nous fixons une limite à l'intérieur du spread, proche du prix Ask (pour les ordres d'achat Limit) ou Bid (pour les ordres devente Limit) et après un certain temps nous essayons de la supprimer.

2 ) Nous envoyons une commande OrderDelete(), pendant que cette commande va au serveur, l'ordre peut déjà être exécuté sur le serveur (il est à l'intérieur du spread, très proche du prix d'activation). Il semble que lorsque la commande atteint le serveur, elle sera appliquée à l'ordre de marché et nous obtiendrons une erreur dans le terminal et un ordre gelé. Dans ce cas, l'ordre dans le terminal reste un ordre limité (également défini comme un ordre limité par la fonction OrderType()) et n'apparaîtra comme un ordre au marché qu'après un redémarrage du terminal. Si vous continuez à le supprimer en tant que limite un , vous verrez une erreur dans le journal de l'Expert Advisor avec le code : 3, et dans le journal du terminal :[Paramètres non valides]. En fait, aucune action n'est possible avec un tel ordre suspendu - c'est un ordre à cours limité dans le terminal du client et un ordre au marché sur le serveur . L'ordre ne peut pas non plus être supprimé manuellement.

Je joins un EA simplifié (seulement pour Buy Limit), pour la reproduction de l'erreur et un profil avec 8 EAs installés en parallèle (l'erreur apparaît plus rapidement, que si l'erreur est capturée par un EA - bien qu'elle se produise aussi avec un EA installé). Lalimite de l' ordre d'achat est fixée à 1 point à cinq chiffres en dessous du cours vendeur et est supprimée après 1 seconde après avoir été fixée. Si vous placez un ordre même 5 points en dessous du prix Ask et que vous le supprimez après un nombre quelconque de secondes/minutes/heures, l'erreur se produira encore de temps en temps, mais moins fréquemment car le mécanisme de son apparition ne change pas.

Vous devez démarrer le terminal et attendre que l'ordre en attente apparaisse. En général, vous ne devez pas attendre plus d'une heure, selon l'activité du marché.

Juste au cas où, système :

Microsoft Windows XP (PC basé sur X86), IE 08.00, 2 x Intel Core i3-2120@ 3.30GHz, RAM : 2421 / 3981 Mb, HDD : 195187 / 666422 Mb, GMT+03:00

MT4: Version 4.00 Build 1090 (19 mai 2017)

MetaEditor : Version 5.00 build 1601 (19 mai 2017)

Dossiers :
 

La dernière version du terminal ne peut pas se connecter à ICMarkets real. Je l'ai remplacé par un vieux 1596 et il se connecte bien.

La question est maintenant de savoir si le terminal doit être mis à jour vers les dernières versions, si les serveurs des courtiers n'ont pas encore été mis à jour.

Raison: