![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
WHRoeder:
Dernier argument non valide - pas un int
Pourriez-vous préciser ce que vous voulez dire ?
Alors que la documentation (voir FileOpen()) montre que le délimiteur est placé entre guillemets simples, le livre (voir File Operations) est incohérent quant à l'utilisation des guillemets simples : certains exemples de code montrent l'utilisation des guillemets doubles.
De plus, le code suivant :
a été compilé, n'a pas eu d'erreur d'exécution et a produit la sortie suivante dans le fichier :
Désolé, "parties" ... avez-vous le message **** END TICK USDCHF **** ? ou se termine-t-il avant ?
Oui, le fichier est complet.
Vous avez " ;" et non ';'... le message d'erreur que vous avez reçu parlait du paramètre 1, n'est-ce pas le handle du fichier ?
Oui, quelqu'un d'autre parlait du dernier paramètre invalide, je ne sais pas pourquoi. J'ai quand même remplacé " ;" par ';' mais j'ai eu le même problème.
Pourriez-vous préciser ce que vous voulez dire ?
Alors que la documentation (voir FileOpen()) montre que le délimiteur est placé entre guillemets simples, le livre (voir File Operations) est incohérent quant à l'utilisation des guillemets simples : certains exemples de code montrent l'utilisation des guillemets doubles.
De plus, le code suivant :
s'est compilé, n'a pas eu d'erreur d'exécution et a produit la sortie suivante dans le fichier :
J'ai essayé " ;" et " ;" mais j'ai eu le même problème.
Mon code s'exécute et fonctionne très bien, le fichier est créé et à chaque tick le fichier est ouvert, toutes les infos sont écrites dedans puis le fichier est fermé. Tout fonctionne bien jusqu'à ce que l'EA ouvre un ordre, alors rien n'est écrit dans le fichier.
Le premier est une chaîne, le second est un int (comme requis.) L'erreur mentionnée p 1. Problèmes multiples ?
L'erreur est le handle du fichier, le handle est toujours 1 et fonctionne toujours, mais lorsque l'EA ouvre un ordre, le tick suivant indique Handle is invalid même s'il est à nouveau 1 et a fonctionné pendant les dernières centaines de ticks. La dernière fois que j'ai essayé, le handle a commencé à augmenter lorsque l'ordre s'est ouvert, il est devenu 2, 3, 4, etc.
C'est exactement le même code, je ne sais pas pourquoi il ne reste pas à 1, et même quand il est toujours à 1, il donne toujours l'erreur.
Une idée ?
Je ne vois pas de problème avec le code que vous avez posté.
Je vois donc 2 options :
Je ne vois pas de problème avec le code que vous avez posté.
Je vois donc 2 options :
Merci RaptorUK, j'ai déjà créé un EA qui reproduit exactement le problème pour essayer de le résoudre. En gros, ça démarre, il crée le fichier et à chaque tick, il écrit sur le fichier en comptant les ticks. Donc le fichier est comme tick 1, tick 2, etc.
Au tick 15, il ouvre un ordre, les informations de l'ordre apparaissent dans le fichier et la fin (******) apparaît également. Ensuite, il est censé écrire à chaque tick le numéro du tick (16, 17, etc.) et le statut de l'ordre, c'est-à-dire si l'ordre est toujours ouvert ou non. Pour une raison quelconque, après le tick 15, l'EA n'écrit pas dans le fichier.
Au tick 50, il est censé fermer l'ordre mais ce n'est pas important, ce qui est important c'est qu'il continue à écrire sur le fichier quand il ouvre l'ordre.
Sur mon ordinateur Windows 7, les fichiers sont créés dans C:\Users\{username}\AppData\Local\VirtualStore\Program Files (x86)\SIGTrader 4\experts\files.
Appdata est un dossier caché.
Merci d'avance
Code :
Merci RaptorUK, j'avais déjà créé une EA qui reproduit exactement le problème pour essayer de le résoudre. En gros, il démarre, il crée le fichier et à chaque tick, il écrit sur le fichier en comptant les ticks. Donc le fichier est comme tick 1, tick 2, etc.
Au tick 15, il ouvre un ordre, les informations de l'ordre apparaissent dans le fichier et la fin (******) apparaît également. Ensuite, il est censé écrire à chaque tick le numéro du tick (16, 17, etc) et le statut de l'ordre, c'est-à-dire si l'ordre est toujours ouvert ou non. Pour une raison quelconque, après le tick 15, l'EA n'écrit pas dans le fichier.
Au tick 50 il est censé fermer l'ordre mais ce n'est pas important, ce qui est important c'est qu'il continue à écrire sur le fichier quand il ouvre l'ordre.
Sur mon ordinateur Windows 7, les fichiers sont créés dans C:\Users\{username}\AppData\Local\VirtualStore\Program Files (x86)\SIGTrader 4\experts\files.
Appdata est un dossier caché.
Merci d'avance
Code :