Merci, le code fonctionne bien, il crée le fichier lorsque l'EA est chargé, puis à chaque tick j'ouvre le fichier, je mets des tonnes d'informations dans le fichier puis je le ferme. Mais dès qu'il ouvre un ordre, cela ne fonctionne plus.
J'ai cherché ça partout et je ne trouve aucune info sur l'erreur, je ne trouve personne qui a eu le même problème, je ne trouve personne avec la même erreur, certaines personnes ont eu :
"nombre entier invalide comme paramètre 1 de la fonction TimeToNumber ".
Mais je ne trouve rien sur :
"nombre entier invalide en tant que paramètre 1 de la fonction FileWritefunction ".
Merci, le code fonctionne bien, il crée le fichier lorsque l'EA est chargé, puis à chaque tick j'ouvre le fichier, je mets des tonnes d'informations dans le fichier puis je le ferme. Mais dès qu'il ouvre un ordre, cela ne fonctionne plus.
J'ai cherché ça partout et je ne trouve aucune info sur l'erreur, je ne trouve personne qui a eu le même problème, je ne trouve personne avec la même erreur, certaines personnes ont eu :
"nombre entier invalide comme paramètre 1 de la fonction TimeToNumber ".
Mais je ne trouve rien sur :
"nombre entier invalide en tant que paramètre 1 de la fonction FileWritefunction ".
Voilà, c'est le code de la fonction init :
int init() { //---- File_Name = StringConcatenate(Name_of_file, " - ", Symbol(), " - ", TimeToStr(TimeLocal(),TIME_DATE), " - ", TimeHour(TimeLocal()), ".", TimeMinute(TimeLocal()), ".", TimeSeconds(TimeLocal()), ".txt"); Handle=FileOpen(File_Name,FILE_CSV|FILE_WRITE,";");//File opening if(Handle==-1) // File opening fails { Alert("An error while opening the file. ",// Error message "May be the file is busy by the other applictiom"); PlaySound("Bzrrr.wav"); // Sound accompaniment return; // Exir start() } FileClose( Handle ); //---- return(0); }
Donc ça crée juste le fichier.
Puis dans la fonction start, j'ouvre le fichier avec :
Handle=FileOpen(File_Name,FILE_CSV|FILE_READ|FILE_WRITE,";");//File opening //Handle = 1; Print("Handle: ", Handle); if(Handle==-1) // File opening fails { Alert("An error while opening the file. ",// Error message "May be the file is busy by the other applictiom"); PlaySound("Bzrrr.wav"); // Sound accompaniment return; // Exir start() } FileSeek(Handle, 0, SEEK_END);
Et ensuite j'écris des trucs dans le fichier comme :
Qnt_Symb=FileWrite(Handle,"**** STARTING TICK ", Symbol(), ": ", TimeToStr(TimeLocal(),TIME_DATE|TIME_SECONDS), " ****"); Qnt_Symb=FileWrite(Handle,"************************************************************");
Et puis je ferme le fichier à la fin.
Qnt_Symb=FileWrite(Handle,"***************************"); Qnt_Symb=FileWrite(Handle,"**** END TICK ", Symbol(), " ****"); FileClose( Handle ); //---- return(0);
Et c'est tout.
Merci pour votre aide !
Voilà, c'est le code de la fonction init :
Donc ça crée juste le fichier.
Puis dans la fonction start, j'ouvre le fichier avec :
Et ensuite j'écris des trucs dans le fichier comme :
Et puis je ferme le fichier à la fin.
Et c'est tout.
Merci pour votre aide !
Handle=FileOpen(File_Name,FILE_CSV|FILE_WRITE,";");//File opening Handle=FileOpen(File_Name,FILE_CSV|FILE_READ|FILE_WRITE,";");//File openingDernier argument invalide - pas un int
Avez-vous cherché ( Ctrl + F ) Handle dans votre code pour trouver d'autres déclarations ? Avez-vous des retours dans start() autres qu'à la fin ? Avez-vous regardé le fichier CSV pour voir s'il est complet ? Si les arts sont manquants, cela pourrait vous donner une idée de ce qui est ou n'est pas exécuté.
Bonjour Raptor UK,
Il n'y a pas d'autres décalages de Handle
Le seul autre retour est celui que vous voyez là en ouvrant le fichier si Handle est -1
Je ne suis pas sûr de ce que vous entendez par "si le fichier est complet". Lorsque la commande s'ouvre, toute la fonction de démarrage est traitée et je le sais parce que le fichier contient les dernières lignes, les lignes ** END TICKET **, donc je sais qu'il est arrivé à la fin et qu'il a fermé le fichier.
Qu'est-ce que vous voulez dire par les arts sont manquants ? Désolé, je ne sais pas ce que sont les arts ?
Salut WHRoeder,
Que voulez-vous dire ? Le dernier argument de FileOpen est
délimiteur | - | Caractère de délimitation pour les fichiers csv. Par défaut, le symbole ';' s'applique. |
Merci à
Bonjour Raptor UK,
Il n'y a pas d'autres décalages de Handle
Le seul autre retour est celui que vous voyez là en ouvrant le fichier si Handle est -1
Je ne suis pas sûr de ce que vous entendez par "si le fichier est complet". Lorsque la commande s'ouvre, toute la fonction de démarrage est traitée et je le sais parce que le fichier contient les dernières lignes, les lignes ** END TICKET **, donc je sais qu'il est arrivé à la fin et qu'il a fermé le fichier.
Qu'est-ce que vous voulez dire par les arts sont manquants ? Désolé, je ne sais pas ce que sont les arts ?
Salut WHRoeder,
Que voulez-vous dire ? Le dernier argument de FileOpen est
délimiteur | - | Caractère de délimitation pour les fichiers csv. Par défaut, le symbole ';' s'applique. |
Vous avez " ;" et non ';'... le message d'erreur que vous avez reçu parle du paramètre 1, n'est-ce pas le handle du fichier ?
- Applications de trading gratuites
- Plus de 8 000 signaux à copier
- Actualités économiques pour explorer les marchés financiers
Vous acceptez la politique du site Web et les conditions d'utilisation
J'ai un EA qui écrit dans un fichier journal quelques informations, à certains moments il décide d'ouvrir un ordre et quand cela arrive l'EA n'écrit plus dans le fichier, j'obtiens juste :
invalid integer number as parameter 1 for 'FileWrite'function.
Je joins une capture d'écran : quand il ouvre l'ordre, le handle du fichier ne change pas mais pour une raison quelconque, il ne peut plus ouvrir le fichier. A L'AIDE !