Jede Anfängerfrage, um das Forum nicht zu überladen. Fachleute, gehen Sie nicht vorbei. Nirgendwo ohne dich - 6. - Seite 280

 
novator:
Guten Abend, ist es möglich, mehr als eine Medgie in einem EA zu verwenden?

Guten Abend.

Ja, das ist sie.

 
Integer:

Oh, du regst dich zu sehr auf. Und ich habe mich eingeschaltet, nachdem ich offen erklärt habe, dass ich diese Quellenbücher nicht brauche. Ich brauche sie nicht, ich sehe keinen Wert in ihnen. Für Sie, Vadimi, sind sie eine Quelle großen Stolzes. Ich erinnere dich noch einmal daran - es ist nur komisch, wie du dich an sie klammerst... und trage sie hoch über deinem Kopf wie eine Fahne.


Dimitri, hör auf, dich mit Vadim zu streiten. Sie sollten die Suchenden besser leiten :) Seit ein paar Tagen habe ich mit Bibliotheken zu kämpfen. Meine Frage rückt unter dem Druck dieser Äußerungen immer weiter in den Hintergrund...

Dies ist kein Forum zum Messen von Penissen, sondern ein Forum zur Diskussion von Themen. Wer von Ihnen klüger ist, haben wir nicht zu entscheiden.

 
hoz:


Dimitri, hör auf, dich mit Vadim zu streiten. Es wäre besser, wenn Sie die Suchenden anleiten könnten :) Seit ein paar Tagen habe ich mit Bibliotheken zu kämpfen. Unter dem Druck dieser Äußerungen entfernt sich meine Frage immer weiter von mir...

Dies ist kein Pisswettbewerb, sondern ein Diskussionsforum. Wer von Ihnen klüger ist, kann ich nicht entscheiden.


Ich habe es gesehen. Eine gut formulierte Frage ist die halbe Lösung. Das Inlude ist keine Einfuhr. Sie sollten versuchen, eine Funktion aus einer Datei aufzurufen, die nicht verbunden zu sein scheint. Was dort in den Protokollen steht, muss nicht sein, es lohnt sich nicht, darauf zu achten.
 
Integer:

Ich habe es gesehen. Eine gut formulierte Frage ist die halbe Lösung. Das Inlude ist keine Einfuhr. Sie sollten versuchen, eine Funktion aus der Datei aufzurufen, die nicht verbunden zu sein scheint. Was dort in den Protokollen steht, muss nicht sein, es lohnt sich nicht, darauf zu achten.

Ich werde also versuchen, sie morgen anzurufen. Ich habe keinen Debugger, also weiß ich nicht, wie ich diese Aufgabe angehen soll. Auch keine Fehler. Und die Eule funktioniert nicht. Es wird nichts gedruckt. Wie auch immer, ich werde es morgen ausprobieren und Bericht erstatten.
 
novator 24.11.2013 19:37 #
Guten Abend, ist es möglich, mehrere Medgies in einem EA zu verwenden?
Sie können.
 

Warum funktioniert es nicht?

   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:

Warum funktioniert es nicht?


Ich habe den Eindruck, dass das Standardbegrenzungszeichen in einer CSV-Datei nicht der Zeilenvorschub ist, sondern das Komma oder ein anderes Zeichen, das als Begrenzungszeichen verwendet wird. Und wenn Sie Daten aus CSV als Zeichenketten einlesen und irgendwo in der Zeichenkette ein Komma nicht als Trennzeichen steht, dann muss die gesamte Zeichenkette mit Anführungszeichen versehen werden.

Hier ist ein Blick darauf:

DateTime,Name,Land,Volatilität,Actual,Previous,Consensus
"20131125 09:00:00", "Nationwide Hauspreisindex (y/y)", "UK ", "2",""", "5,8%", "6,0%"

Die erste Zeile der Datei enthält durch Komma getrennte Werte. Sie können normal gelesen werden. Die zweite Zeile enthält alle Daten in Anführungszeichen, aber auch Kommas als Begrenzungszeichen. Aber es gibt eine Zeile 5,8%, in der ein Komma kein Trennzeichen ist. Diese Zeile muss in Anführungszeichen gesetzt werden. Nun, der Code muss die zusätzlichen Anführungszeichen am Anfang und am Ende der Zeichenfolge entfernen. Dabei gehen wir in etwa so vor:

   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;}}}}}}}

Dies ist die Analyse des Dateikopfes. Die Funktion StrTrim(DatTim) in meinem Code entfernt nur unnötige Anführungszeichen, wenn sie am Anfang und am Ende der Zeile stehen. Danach lesen wir einfach die Datei und konvertieren die Daten von der Zeichenkette in das gewünschte Format. Allerdings hängt das alles davon ab, was Sie in der CSV-Datei haben. In der Regel funktioniert es gut, wenn die CSV-Datei Zeichenketten enthält.

Siehe FileReadString( int handle, int length=0) und FileOpen( string filename, int mode, int delimiter=',')

 

Ich möchte lediglich den Eröffnungskurs eines Auftrags in eine CSV-Datei schreiben. Wie kann ich das tun?

 
itum:

Ich möchte lediglich den Eröffnungskurs des Auftrags in die CSV-Datei schreiben. Wie kann ich das tun?



Das scheint also richtig zu sein.


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

FileSeek(handle,0, SEEK_END);// Dies ist für den Fall, dass Sie zu einer bestehenden Datei hinzufügen möchten.

FileWrite(handle,open_price_order);

Ich habe CSV im Gegenteil gelesen. Setzen Sie nicht "\n" als Trennzeichen ein. Sie wird nach jedem FileWrite hinzugefügt. Setzen Sie "," oder ";" ein. Wenn Sie dann Excel oder ein anderes Programm öffnen, werden Sie aufgefordert, das Begrenzungszeichen einzugeben. Sollte funktionieren, keine Zeit im Tester zu prüfen.... Denn FileWrite(handle,open_price_order); wird eine Zeile in die Datei einfügen, aber wenn FileWrite(handle,open_price1_order, open_price2_order ); wird immer noch eine Zeile sein, aber ein Trennzeichen wird zwischen den Preisen eingefügt. Ein anschließender Aufruf von FileWrite führt zu einer neuen Zeile in der Datei.

 
Hallo,
Es geht um MT4.
Kann mir jemand sagen, wie ich die Tage in einer Woche so einstellen kann, dass der EA von Montag bis Freitag handelt, aber weniger als 23 Stunden am Freitag.

Wenn ich mich irre, liegt das daran, dass ich beim Testen einiger Algorithmen einige Besonderheiten festgestellt habe, die das Startdatum des Tests beeinflussen.
Vielen Dank im Voraus!
Grund der Beschwerde: