Toute question de débutant, afin de ne pas encombrer le forum. Professionnels, ne passez pas à côté. Nulle part sans toi - 6. - page 280

 
novator:
Bonsoir, est-il possible d'utiliser plus d'un Medgie dans un EA ?

Bonsoir.

Oui, c'est vrai.

 
Integer:

Oh, tu t'énerves. Et j'ai été excité après avoir déclaré ouvertement que je n'avais pas besoin de ces livres de référence. Je n'en ai pas besoin, je n'y vois aucune valeur. Pour toi Vadimi, ils sont une source de grande fierté et rien d'autre. Je te le rappelle encore une fois - c'est juste drôle que tu t'accroches à eux... et les porter haut au-dessus de votre tête comme une bannière.


Dimitri, arrête de te disputer avec Vadim. Vous feriez mieux de guider les chercheurs :) Je me débats avec les bibliothèques depuis quelques jours maintenant. Ma question s'éloigne de plus en plus sous la pression de ces remarques...

Ce n'est pas un forum pour mesurer les pénis, c'est un forum pour discuter des problèmes. Ce n'est pas à nous de décider lequel d'entre vous est le plus intelligent.

 
hoz:


Dimitri, arrête de te disputer avec Vadim. Ce serait mieux si vous pouviez guider les chercheurs :) Je me débats avec les bibliothèques depuis quelques jours maintenant. Ma question s'éloigne de plus en plus de moi sous la pression de ces remarques...

Ce n'est pas un concours de pisse, c'est un fil de discussion. Ce n'est pas à moi de décider lequel d'entre vous est le plus intelligent.


Je l'ai vu. Une question bien formulée est la moitié de la solution. L'inlude n'est pas une importation. Vous devriez essayer d'appeler une fonction du fichier qui ne semble pas être connecté. Ce qui est écrit dans les journaux n'est peut-être pas nécessaire, il ne faut pas y prêter attention.
 
Integer:

Je l'ai vu. Une question bien formulée est la moitié de la solution. L'inlude n'est pas une importation. Vous devriez essayer d'appeler une fonction du fichier qui ne semble pas être connecté. Ce qui est écrit dans les journaux n'est peut-être pas nécessaire, il ne faut pas y prêter attention.

Je vais donc essayer de l'appeler demain. Je n'ai pas de débogueur, donc je ne sais pas comment aborder cette tâche. Aucune erreur non plus. Et la chouette ne fonctionne pas. Il n'y a rien d'imprimé. Quoi qu'il en soit, j'essaierai demain et je ferai un rapport.
 
novateur 24.11.2013 19:37 #
Bonsoir, est-il possible d'utiliser plusieurs medgies dans un EA ?
Vous pouvez.
 

Pourquoi ça ne marche pas

   int handle;
   handle=FileOpen("openorder.csv",FILE_CSV|FILE_READ|FILE_WRITE,"\n");
   if(handle>0)
     {
      FileWrite(handle,open_price_order,"\n");
      FileClose(handle);
     }
 
itum:

Pourquoi ça ne marche pas


Il me semble que le délimiteur standard dans un fichier CSV n'est pas un saut de ligne, mais une virgule ou un autre caractère utilisé comme délimiteur. Et si vous lisez les données du CSV sous forme de chaînes, et que quelque part dans la chaîne il y a une virgule qui n'est pas un délimiteur, alors toute la chaîne doit être marquée par des guillemets.

Voici un aperçu :

DateHeure,Nom,Pays,Volatilité,Réel,Précédent,Consensus
"20131125 09:00:00", "Indice des prix des logements Nationwide (a/a)", "UK ", "2","", "5,8%", "6,0%"

La première ligne du fichier contient des valeurs séparées par des virgules. Ils peuvent être lus normalement. La deuxième ligne contient toutes les données entre guillemets, mais aussi des virgules comme délimiteurs. Mais il y a la ligne 5.8% où une virgule n'est pas un délimiteur. Cette ligne doit être entourée de guillemets. Eh bien, le code doit supprimer les guillemets supplémentaires au début et à la fin de la chaîne. En faisant cela, nous faisons quelque chose comme ça :

   DatTim=FileReadString(handle);StrTrim(DatTim);if(DatTim !="DateTime") err=1;else{
    Name=FileReadString(handle);StrTrim(Name);if(Name !="Name") err=1;else{
     Country=FileReadString(handle);StrTrim(Country);if(Country !="Country") err=1;else{
      Volatility=FileReadString(handle);StrTrim(Volatility);if(Volatility !="Volatility") err=1;else{
       Actual=FileReadString(handle);StrTrim(Actual);if(Actual !="Actual") err=1;else{
        Previous=FileReadString(handle);StrTrim(Previous);if(Previous !="Previous") err=1;else{
         Consensus=FileReadString(handle);StrTrim(Consensus);if(Consensus !="Consensus") {err=1;}}}}}}}

Il s'agit de l'analyse de l'en-tête du fichier. La fonction StrTrim(DatTim) dans mon code supprime simplement les guillemets inutiles s'il y en a au début et à la fin de la ligne. Après cela, il suffit de lire le fichier et de convertir les données de la chaîne de caractères au format requis. Mais bien que tout dépende de ce que vous avez dans le fichier CSV. En règle générale, cela fonctionne bien s'il y a des chaînes de caractères dans le CSV.

Voir FileReadString( int handle, int length=0) et FileOpen( string filename, int mode, int delimiter=',')

 

Tout ce que je veux faire, c'est écrire le prix d'ouverture d'un ordre dans un fichier CSV. Comment je fais ça ?

 
itum:

Tout ce que je veux faire, c'est écrire le prix d'ouverture de l'ordre dans un CSV. Comment puis-je le faire ?



Cela semble correct alors.


handle=FileOpen("openorder.csv",FILE_CSV|FILE_READ|FILE_WRITE,",") ;

FileSeek(handle,0, SEEK_END);// C'est au cas où vous voulez ajouter au fichier existant.

FileWrite(handle,open_price_order) ;

Je lisais CSV au contraire. Ne mettez pas "\n" comme séparateur. Il sera ajouté après chaque FileWrite. Mettez "," ou " ;". Et ensuite, lorsque vous ouvrez Excel, ou qui que ce soit, il vous demandera de saisir le délimiteur. Cela devrait fonctionner, mais le testeur n'a pas eu le temps de le vérifier. .... Parce que FileWrite(handle,open_price_order) ; va insérer une ligne dans le fichier, mais si FileWrite(handle,open_price1_order, open_price2_order ) ; sera toujours une ligne, mais un séparateur sera inséré entre les prix. Un appel ultérieur à FileWrite donnera lieu à une nouvelle ligne dans le fichier.

 
Salut,
Il s'agit de MT4.
Quelqu'un peut-il me dire comment définir les jours d'une semaine de sorte que l'EA effectue des transactions du lundi au vendredi, mais moins de 23 heures le vendredi.

Si je me trompe, c'est parce que j'ai remarqué des particularités dans le test de certains algorithmes qui affectent la date de début du test.
Merci d'avance !
Raison: