[ARCHIV!] Alle Fragen von Anfängern, um das Forum nicht zu überladen. Fachleute, gehen Sie nicht vorbei. Ohne dich kann ich nirgendwo hingehen - 4. - Seite 350

 
sss2019:


Deshalb verwende ich die Funktion FileReadString, theoretisch sollte entweder die gesamte Zeichenkette in die Variable oder bis zum Trennzeichen und Zeiger bis zum Trennzeichen des ersten gelesen werden.

Zeigen Sie mir bitte einfach ein Beispiel dafür, wie man alle Daten zwischen den Trennzeichen aus einer CSV-Datei Zeile wie diese ziehen?

131322608;EURUSD;2;1;0;0;1346149440


Kannst du überhaupt lesen? Ich habe sie oben ausführlich beschrieben.

Beispiel:FileOpen (Dateiname,FILE_CSV|FILE_READ,";");

int FileOpen(string filename, int mode, int delimiter=';')
Öffnet eine Datei zur Eingabe und/oder Ausgabe. Gibt den Dateideskriptor der geöffneten Datei zurück oder -1 im Falle eines Fehlers. Rufen Sie GetLastError() auf, um weitere Informationen über den Fehler zu erhalten.
Hinweis: Dateien können nur im Ordner terminal_directory\experts\files(terminal_directory\tester\files im Falle von Expertentests) oder seinen Unterordnern geöffnet werden.
Die Modi FILE_BIN und FILE_CSV können nicht gleichzeitig verwendet werden.
Wenn FILE_WRITE nicht mit FILE_READ kombiniert wird, wird eine Datei mit der Länge Null geöffnet. Selbst wenn die Datei vor dem Öffnen Daten enthielt, werden diese zerstört. Wenn Daten an eine bestehende Datei angehängt werden sollen, muss diese mit der Kombination FILE_READ | FILE_WRITE geöffnet werden.
Wenn FILE_READ nicht mit FILE_WRITE kombiniert wird, wird die Datei nur geöffnet, wenn sie bereits existiert. Wenn die Datei nicht existiert, kann sie mit FILE_WRITE erstellt werden.
Es können nicht mehr als 32 Dateien gleichzeitig in derselben ausführbaren Datei geöffnet werden. Deskriptoren von Dateien, die in einem Modul geöffnet wurden, können nicht an andere Module (Bibliotheken) weitergegeben werden.
Parameter:
Dateiname - Filename - Dateiname.
Modus - Methode der Öffnung. Dies kann ein einzelner Wert oder eine Kombination von Werten sein: FILE_BIN, FILE_CSV, FILE_READ, FILE_WRITE.
Begrenzungszeichen - Ein Begrenzungszeichen für csv-Dateien. Standardmäßig ist es ';'.

 
FAQ:


Bilden Sie sich keine eigene Meinung.

FileReadString() liest bis zum Begrenzungszeichen (falls angegeben). Wenn kein Begrenzungszeichen angegeben wird oder wenn kein vorhandenes Begrenzungszeichen angegeben wird, liest FileReadString() bis zum Ende der Zeichenkette (das Caretransfer-Zeichen). Daher gibt FileFlush() im obigen Beispiel einen Offset der String-Länge an .

StrToInteger() wählt in diesem Fall den ersten angetroffenen numerischen Wert in der Zeichenkette aus und wandelt ihn in den Typ [int] um.


Es steht außer Frage, dass es vor dem Trennzeichen steht. Der Dateizeiger befindet sich jedoch am Ende der Zeile. Ich habe mir nicht die Mühe gemacht, ein Drehbuch zu schreiben. Deshalb habe ich es so geschrieben.

//+------------------------------------------------------------------+
//|                                                          111.mq4 |
//|                      Copyright © 2006, MetaQuotes Software Corp. |
//|                                        http://www.metaquotes.net |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2006, MetaQuotes Software Corp."
#property link      "http://www.metaquotes.net"

//+------------------------------------------------------------------+
//| script program start function                                    |
//+------------------------------------------------------------------+
int start()
  {
//----
   int fileid = FileOpen("File.csv",FILE_CSV|FILE_READ);
    int n1, n2;
      
      string ticket, ticket1;
      
      FileSeek(fileid,0,SEEK_SET);
      
      ticket = FileReadString(fileid);
      Print(ticket," ",FileTell(fileid));
      ticket1= FileReadString(fileid);
      Print(ticket1," ",FileTell(fileid));
      n1= FileReadNumber(fileid);
      Print(n1," ",FileTell(fileid));      
      n2= FileReadNumber(fileid);
      Print(n2," ",FileTell(fileid)); 
//----
   return(0);
  }
//+------------------------------------------------------------------+

Das Trennzeichen ist, wie Sie sehen, nicht angegeben.

06:54:18 111 EURUSD,H1: erfolgreich geladen
06:54:18 111 EURUSD,H1: 131322608 37
06:54:18 111 EURUSD,H1: EURUSD 37
06:54:18 111 EURUSD,H1: 2 37
06:54:18 111 EURUSD,H1: 1 37
06:54:18 111 EURUSD,h1: uninit Grund 0
06:54:18 111 EURUSD,H1: entfernt

 
Mislaid:


06:54:18 111 EURUSD,H1: 131322608 37


StrToInteger() markiert in diesem Fall den ersten numerischen Wert in der Zeichenkette und wandelt ihn in den Typ [int] um.
 

Hallo! Es gibt ein Objekt vom Typ OBJ_TREND (d.h. eine Trendlinie), das mit ObjectCreate erstellt wurde.

Frage: Wie kann ich den NUMBER-Wert ermitteln, den diese Trendlinie zu einem beliebigen Zeitpunkt annimmt, zum Beispiel zum aktuellen Zeitpunkt (Time[0])?

 
ikatsko:

Hallo! Es gibt ein Objekt vom Typ OBJ_TREND (d.h. eine Trendlinie), das mit ObjectCreate erstellt wurde.

Frage: Wie kann ich den NUMBER-Wert ermitteln, den diese Trendlinie zu einem beliebigen Zeitpunkt annimmt, zum Beispiel zum aktuellen Zeitpunkt (Time[0])?


ObjectGetValueByShift()
 
drknn:

ObjectGetValueByShift()

Ich danke Ihnen für Ihre prompte Antwort?

 
Wie verwende ich die Funktion SendMail , um ein mit der Funktion WindowScreenshot erstelltes Bildschirmfoto zu versenden ?
 
Nein, die Datei kann an den FTP-Server gesendet werden.
 
FAQ:
Nein, die Datei kann an ftp gesendet werden

Also gut.

Dann werde ich die Sache aus einem anderen Blickwinkel betrachten.

Ist es möglich, dass eine eingehende E-Mail Bilder von FTP anzeigt? (d.h. das Bild ist kein Anhang und die E-Mail enthält nur Links zu ftp)

 

Gurus, ein Tipp der Eule:

Die Quintessenz ist folgende: Der Gewinn aus einem (noch nicht abgeschlossenen) Geschäft beginnt zu sinken (ich habe das Geschäft eröffnet). Bei Erreichen eines von mir festgelegten Prozentsatzes von X aus der Summe der Transaktion - schließt der Roboter die Transaktion ab. In Zahlen ausgedrückt heißt das ungefähr: 1 $ (die bereits aus der Transaktion stammen) Gewinn wächst. Der Rat hat 80% gestoppt. Gewinn 1.2$ (habe auch 80% Stop). Der Markt kehrte sich um und bei (1,2*80%= 0,96) schloss die Eule den Handel.

Genau in %, Breakeven-Eulen habe ich dort Punkte gefunden):

Ich danke Ihnen.