Erreurs, bugs, questions - page 2233
![MQL5 - Langage des stratégies de trading intégré au terminal client MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
Vous manquez des opportunités de trading :
- Applications de trading gratuites
- Plus de 8 000 signaux à copier
- Actualités économiques pour explorer les marchés financiers
Inscription
Se connecter
Vous acceptez la politique du site Web et les conditions d'utilisation
Si vous n'avez pas de compte, veuillez vous inscrire
Pourquoi voudrais-je répéter un code erroné ???? Pourquoi voudrais-je enchaîner un fichier .eh inconnu à ? ??? ?
Si vous rencontrez une erreur lors de l'ouverture d'un fichier avec les drapeaux FILE_SHARE_READ|FILE_SHARE_WRITE, veuillez reproduire ces problèmes sans erreurs superflues, créées artificiellement.
Qu'est-ce qui vous fait penser que le code est faux ?
Je peux utiliser toute forme de rapport d'erreur, et le fichier .ex n'est pas pour vous, mais pour les développeurs. Si vous voulez aider en reproduisant simplement l'erreur, vous pouvez suivre mes conseils. Si vous ne voulez pas aider, n'ennuyez pas les autres avec des messages vides de colère.
Qu'est-ce qui vous fait penser que le code est faux ?
Le formulaire dans lequel je peux signaler une erreur - donc je la signale, et le fichier .ex que j'ai posté non pas pour vous mais pour les développeurs. Si vous voulez aider en reproduisant simplement l'erreur, vous pouvez suivre mes conseils. Si vous ne voulez pas aider, n'embêtez pas les autres avec des messages vides de colère.
Vos messages sont plutôt malveillants. Ma demande
Forum sur le trading, les systèmes de trading automatisés et le testeur de stratégie
Bugs, bugs, questions
Alexey Viktorov, 2018.07.23 14:16
C'est étrange que ça n'aide pas. Je n'ai pu obtenir 5004 que sans le drapeau FILE_SHARE_WRITE.
Le fichier dans le conseiller en écriture s'ouvre à OnInit et ne se ferme qu'à OnDeinit. Dans le même temps, dans le conseiller en lecture, le fichier se lit et s'imprime sans aucun problème.
Il serait bon de clarifier la façon dont vous écrivez le fichier afin de reproduire vos actions de façon plus précise.
Ce n'est pas à vous que je m'adressais, mais vous vous êtes accroché et avez glissé des messages d'il y a deux ans, auxquels les développeurs n'ont pas prêté attention, à mon avis, à cause d'une erreur créée artificiellement.
Et je répète : pourquoi devrais-je reproduire une erreur créée artificiellement ???????????.
Et encore une fois : pourquoi devrais-je reproduire une erreur créée artificiellement ???????????.
Essayez après avoir ouvert un fichier pour l'écriture (partie 1 du code) de le visualiser avec le visualiseur de Windows. Au moins, il sera clair quelle poignée est le problème.
S'il s'ouvre - le deuxième, sinon - le premier.
Windows ouvrira le premier fichier. Je vois au niveau du système que les drapeaux read, write, share_read sont activés. Mais dans le terminal, l'ouverture du même fichier en lecture produit 5004. Le premier conseiller expert écrit dans le fichier, c'est-à-dire qu'il ne l'ouvre pas simplement avec quelques drapeaux pour le plaisir.
Quand j'aurai le temps, j'essaierai de faire un script de démonstration. Mais à en juger par le fait que ce n'est pas le premier que j'écris à ce sujet et qu'il n'y a pas de développements relatifs aux fichiers dans le code, la courbure est présente.
PS. Peut-être qui a déjà écrit dans SD ? Quelles sont les réponses ?
Strictement parlant, l'erreur est causée par l'appel simultané deFileOpen( filename ) à partir de différents Expert Advisors (les drapeaux n'ont pas d'importance).
Windows ouvre le premier fichier.
Expliquez ce qu'est une erreur créée artificiellement ? Je ne comprends pas cette phrase.
Il n'y a pas de sous-entendu dans ce que je dis. Vous devez comprendre ce qu'est le cuir artificiel. Référez-vous à cet accord.
Afficher le code sans manipulation supplémentaire avec des modèles et autres bricolages, qui renvoie l'erreur ERR_CANNOT_OPEN_FILE avec les drapeaux FILE_SHARE_READ|FILE_SHARE_WRITE
Si l'erreur n'est pas reproduite sans les tambourins, cela signifie que l'erreur a été causée pendant les tambourins...
Je vais répéter la séquence d'actions :
EA 1 :
Dans OnInit, un fichier binaire est ouvert pour l'écriture.
Chaque minute écrit l'ouverture de la barre actuelle dans le fichier.
Le fichier est fermé UNIQUEMENT à OnDeinit.
Conseiller expert 2 :
Chaque minute ouvre ce fichier binaire.
Lit la dernière entrée, l'imprime.
Ferme le dossier.
Et le répète chaque minute.
Il n'y a pas d'erreur d'ouverture de fichier.
Sur ce script simple, exécuté d'abord avec writing = true et ensuite sur un autre graphique avec writing = false, j'obtiens une erreur.
Pour autant que je m'en souvienne, il fixe un délai après lequel le prix est considéré comme désespérément périmé. En d'autres termes, s'il n'a pas changé depuis 3 minutes, vous ne pouvez pas l'ouvrir.
J'ai écrit un script de test pour ce cas. NoPrice a été capturé 64 secondes après le dernier tick. Peut-être qu'un temps d'arrêt d'une minute vaut vraiment la peine. Je vais devoir faire une petite recherche...
Sur ce script simple, exécuté d'abord avec writing = true et ensuite sur un autre graphique avec writing = false, j'obtiens une erreur.
Il s'agit manifestement d'un bogue, car les applications tierces lisent le fichier avec les mêmes drapeaux sans aucun problème.