Metatrader Forum | Forex Expert-Advisor | Broker & Forex Tools

Metatrader Forum | Forex Expert-Advisor | Broker & Forex Tools (http://www.expert-advisor.com/forum/index.php)
-   Programmierung MQL4 (http://www.expert-advisor.com/forum/forumdisplay.php?f=220)
-   -   daten in Tabelle ausgeben (http://www.expert-advisor.com/forum/showthread.php?t=4090)

markusrgb 15.02.15 13:18

daten in Tabelle ausgeben
 
hallo zusammen,

hab da mal ne frage zum ausgeben von Daten in eine externe Tabelle

ich erhalte aufgrund von berechnungen in meinem EA nach jedem Tick einen double wert ...

nun möchte ich folgendes erreichen:

nach jedem Tick sollen die Aktuelle Zeit und der dazugehörige Double Wert in eine Tabelle geschrieben werden, damit ich mir das ganze dann dort als Diagramm anzeigen lassen kann



also so in etwa:
uhrzeit, Double wert

Std:min:sec - Double wert
13:12:45 - 123,124
13:12:50 - 123,138
13:12:53 - 123,142
.... usw

ich nehme mal an das das direkte unter einander schreiben in eine Tabellen dokument nicht direkt möglich sein wird ...

hab aber schon mal irgendwo gelesen das das schreiben in eine CSV Datei möglich ist... diese könnte ich ja dann in OO oder Excel importieren.

wie stell ich das am besten an:confused:

schon mal danke ;)

kai700 15.02.15 18:10

Ja, das in ein CSV schreiben, zeilenweise, ist kein grosse Sache...es gibt da auch ein script write_csv.... Oder so...gruss

markusrgb 16.02.15 22:28

ok, danke ... das script hab ich gefunden und dann mal versucht das in meinen EA einzubauen ...

nur leider klappt es noch nicht ganz so wie es soll ...
Die CSV Datei wird nämlich bei jedem Tick wieder überschrieben

Code:

input string  InpDateiName="Kurve.csv";      // Dateiname
input string  InpOrdnerName="Daten";    // Ordner name
int sign_size=0;    // Signal Nummer

void OnTick():
hier dann berechnung von Variable "AnzahlMA20"

.....
und dann in die CSV Datei Schreiben:


Code:

//--- Öffnen der Datei zum Schreiben der Indikatorwerte (wenn die Datei nicht vorhanden ist, wird sie automatisch erstellt)
  ResetLastError();
  int file_handle=FileOpen(InpOrdnerName+"//"+InpDateiName,FILE_READ|FILE_WRITE|FILE_CSV);
  if(file_handle!=INVALID_HANDLE)
    {
      PrintFormat("%s Datei zum Schreiben zur Verfügung",InpDateiName);
      PrintFormat("Dateipfad: %s\\Files\\",TerminalInfoString(TERMINAL_DATA_PATH));
      //--- keine Ahnung was das macht
      FileWrite(file_handle,sign_size);
      //--- Schreibt die "Zeit" und die Werte der Signale in die Datei
     
      FileWrite(file_handle,sign_size,AnzahlMA20);
      //--- Schließen der Datei
      FileClose(file_handle);
      PrintFormat("Daten geschrieben, %s Datei geschlossen",InpDateiName);
    }
  else
      PrintFormat("Fehler beim öffnen %s Datei, Error code = %d",InpDateiName,GetLastError());


sign_size++;

was hab ich da falsch gemacht ....

ich bräuchte es so, das er mir die neuen Daten bei jedem Tick einfach unten dran in die nächste zeile schreibt :confused: und nicht die ganze datei immer wieder überschreibt.

:D


Alle Zeitangaben in WEZ +2. Es ist jetzt 07:13 Uhr.

Powered by vBulletin® Version 3.8.5 (Deutsch)
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
SEO by vBSEO 3.6.1
Powered by vBCMS® 2.7.0 ©2002 - 2024 vbdesigns.de
Copyright ©2009 - 2023 by Expert-Advisor.com - Das Metatrader Forum