kreto2009 Posted April 23, 2012 Report Share Posted April 23, 2012 Hallo, ich benötige zur Aufbereitung von Werten für eine Handelsstrategie folgende Daten zur weiteren Verarbeitung in Excel:- High und Low für den Zeitraum 8:00 Uhr (Vortag) bis 8:00 Uhr (Folgetag);- Schlusskurs 8:00 Uhr (Folgetag) für mehrere Währungspaare.Lässt sich so etwas mit einem EA, Script, oder wie machen?Manuell ist das kein Problem, macht aber sehr viel Aufwand ;-)Die Übernahme von Daten aus dem MT4 nach Excel ist mir bekannt und ich habe das auch bereits gemacht.Aber eben die konkreten Zahlen zum konkreten Zeitpunkt ist mir unklar, wie ich das machen kann.Vielleicht hat jemand eine Idee. DankeFreundliche GrüßeSiegfried Quote Link to comment Share on other sites More sharing options...
Mythos Posted April 23, 2012 Report Share Posted April 23, 2012 Hi kreto, ja lässt sich machen. Wenn nur für History, dann am besten per script, sonst per EA. Da deine Zeiten in ganzen Stundeneinheiten sind, am besten im H1 die History durchgehen und entsprechend die Werte in ein csv schreiben. Quote Link to comment Share on other sites More sharing options...
kreto2009 Posted April 23, 2012 Author Report Share Posted April 23, 2012 Hi kreto, ja lässt sich machen. Wenn nur für History, dann am besten per script, sonst per EA.Da deine Zeiten in ganzen Stundeneinheiten sind, am besten im H1 die History durchgehen und entsprechend die Werte in ein csv schreiben. danke für die Antwort.Ich kann leider weder EA noch script programmieren ;-)Könntest du das machen? Quote Link to comment Share on other sites More sharing options...
Mythos Posted April 23, 2012 Report Share Posted April 23, 2012 Könntest du das machen?Können: ja. Aber mit beruflichen Auftragsarbeiten in dem Bereich hab ich schon länger aufgehört. Und ehrenamtliche Auftragsarbeit ist irgendwie ein Widerspruch in sich ;) (Wir unterstützen dich aber natürlich gerne bei der Umsetzung) Quote Link to comment Share on other sites More sharing options...
kreto2009 Posted April 23, 2012 Author Report Share Posted April 23, 2012 Können: ja. Aber mit beruflichen Auftragsarbeiten in dem Bereich hab ich schon länger aufgehört. Und ehrenamtliche Auftragsarbeit ist irgendwie ein Widerspruch in sich ;) (Wir unterstützen dich aber natürlich gerne bei der Umsetzung) ok, dafür habe ich Verständnis.Wie könnte ein Unterstützung aussehen?Will es ja auch lernen... Quote Link to comment Share on other sites More sharing options...
Licens Posted April 23, 2012 Report Share Posted April 23, 2012 Das Thema passt nich so ganz in den Bereich "Wirtschaft und Politik" oder? Quote Link to comment Share on other sites More sharing options...
Mythos Posted April 23, 2012 Report Share Posted April 23, 2012 Wenn du richtig EA-programmieren lernen willst, gibts hier einige gute Threads zum starten. Wenn es dir eher darum geht mit unserer Hilfe dein Export-Script auf die Beine zu stellen, würde ich vorschlagen die einzelnen Bereiche Schritt für Schritt anzugehen. Die Frage ist also: was soll es sein und wieviel Erfahrung im Programmieren hast du schon? Quote Link to comment Share on other sites More sharing options...
kreto2009 Posted April 23, 2012 Author Report Share Posted April 23, 2012 Das Thema passt nich so ganz in den Bereich "Wirtschaft und Politik" oder? stimmt, ist mein 1. Beitrag und habe das falsch gemacht ;-) Quote Link to comment Share on other sites More sharing options...
Licens Posted April 23, 2012 Report Share Posted April 23, 2012 stimmt, ist mein 1. Beitrag und habe das falsch gemacht ;-)Ach is nich schlimm. Wollte auch nich pingelig sein. Ist nur der Ordnung wegen, damit alle dann die interessanten Beiträge auch wiederfinden, die hier so entstehen.Und so bleibt zudem die Arena "Wirtschaft&Polttik" für verbalmartialische Auseinandersetzungen über Europa und Grundeinkommmen usw usw. frei. Is eigentlich auch nicht meine Baustelle, aber da die Mods ein anspruchsvolles und zugleich nachwirkendes Wochenende hatten..... btw. "1.Beitrag":Herzlich Willkommen bei uns! Quote Link to comment Share on other sites More sharing options...
kreto2009 Posted April 23, 2012 Author Report Share Posted April 23, 2012 Wenn du richtig EA-programmieren lernen willst, gibts hier einige gute Threads zum starten. Wenn es dir eher darum geht mit unserer Hilfe dein Export-Script auf die Beine zu stellen, würde ich vorschlagen die einzelnen Bereiche Schritt für Schritt anzugehen. Die Frage ist also: was soll es sein und wieviel Erfahrung im Programmieren hast du schon? Hat etwas länger gedauert, weil ich überlegen musste.Meine Entscheidung ist, dass ich das "nur" für diesen script machen möchte.Also nochmals Schritt für Schritt:1. Es wird High und Low für den 24-h Zeitraum 8:00 Uhr Vortag bis 8:00 uhr aktueller Tag ermittelt.2. Die Werte High und Low werden in eine Excel Tabell übertragen.3. Es wird der Wert c (Abschlusswert), ebenfalls 8:00 Uhr für den aktuellen Tages ermittelt.4. Dieser Wert wird ebenfalls in die gleiche Excel Tabelle übertragen.Das wars eigentlich schon. Quote Link to comment Share on other sites More sharing options...
kreto2009 Posted April 23, 2012 Author Report Share Posted April 23, 2012 Ach is nich schlimm. Wollte auch nich pingelig sein. Ist nur der Ordnung wegen, damit alle dann die interessanten Beiträge auch wiederfinden, die hier so entstehen.Und so bleibt zudem die Arena "Wirtschaft&Polttik" für verbalmartialische Auseinandersetzungen über Europa und Grundeinkommmen usw usw. frei. Is eigentlich auch nicht meine Baustelle, aber da die Mods ein anspruchsvolles und zugleich nachwirkendes Wochenende hatten..... btw. "1.Beitrag":Herzlich Willkommen bei uns! danke, den Tipp habe ich von cxelo07 erhalten :-) Quote Link to comment Share on other sites More sharing options...
Mythos Posted April 23, 2012 Report Share Posted April 23, 2012 1. Es wird High und Low für den 24-h Zeitraum 8:00 Uhr Vortag bis 8:00 uhr aktueller Tag ermittelt.Das geht recht einfach indem man die gesamte History der vorhandenen H1 Bars durchläuft. bei geändertem TimeDayOfYear() die Werte zurücksetzt und dazwischen mit den Bars innerhalb des Zeitraums aktualisiert2. Die Werte High und Low werden in eine Excel Tabell übertragen.Das würde ich nicht direkt machen, sondern die ermittelten Werte in ein csv schreiben das dann in Excel importiert werden kann. Glücklicherweise bietet MT4 sehr einfache Funktionen für Filezugriff, siehe auch hier 3. Es wird der Wert c (Abschlusswert), ebenfalls 8:00 Uhr für den aktuellen Tages ermittelt.4. Dieser Wert wird ebenfalls in die gleiche Excel Tabelle übertragen.Würde ich direkt mit High und Low ermitteln und schreiben. Im wesentlichen brauchst du also vermutlich nur Bars, FileOpen, FileWrite, FileClose, High, Low, Close, Time, TimeHour und TimeDayOfYear. Das wars eigentlich schon.genau, mehr steckt da nicht dahinter. 1 Quote Link to comment Share on other sites More sharing options...
kreto2009 Posted April 23, 2012 Author Report Share Posted April 23, 2012 Das geht recht einfach indem man die gesamte History der vorhandenen H1 Bars durchläuft. bei geändertem TimeDayOfYear() die Werte zurücksetzt und dazwischen mit den Bars innerhalb des Zeitraums aktualisiert Das würde ich nicht direkt machen, sondern die ermittelten Werte in ein csv schreiben das dann in Excel importiert werden kann. Glücklicherweise bietet MT4 sehr einfache Funktionen für Filezugriff, siehe auch hier Würde ich direkt mit High und Low ermitteln und schreiben. Im wesentlichen brauchst du also vermutlich nur Bars, FileOpen, FileWrite, FileClose, High, Low, Close, Time, TimeHour und TimeDayOfYear. genau, mehr steckt da nicht dahinter. mhm, da bin ich überfordert.Habe jetzt mal den MetaQuotes aus dem MT4 geöffnet und ein script geladen.Und da geht es schon los.startdie Schleife durchlaufen, d.h. jede h, Wert erfassen zum nächsten.dann filteren, high und lowdies in csv schreiben, wie? wo liegt dann die Datei?das Gleiche mit dem Abschlusswert.Vom Ablauf ist es mir klar, aber wie in die richtige Reihenfolge mit den richtigen Befehlen?Das ist schwierig... Quote Link to comment Share on other sites More sharing options...
Vola Posted April 23, 2012 Report Share Posted April 23, 2012 Hallo kreto Willkommen bei Tom-Next ! Da du nicht programmieren kannst (Ich auch nicht) hier mal ein "Rohling", wie so etwas aussehen könnte.Der EA ist m.M.n. schon sehr nah dran an dem was du suchst.Allerdings ist er in dieser Form nicht lauftüchtig da die Daten (deine Wünsche) erst entsprechend eingetragen werden müssen. Einiges muß sicher verändert und umgeschrieben werden, z.B. die gleitenden Durchschnitte die du nicht benötigst,aber vllt. schon mal ein Anfang, in Verbindung mit Mythos seinen Links. // Copyright 2006, by juanchoc & neo. // juan@forexproyect.com.ar CSV_Export_Expert.mq4 1 Quote Link to comment Share on other sites More sharing options...
conglom-o Posted April 23, 2012 Report Share Posted April 23, 2012 danke, den Tipp habe ich von cxelo07 erhalten :-)Der hier cxalgo heißt . Sei's drum: Herzlich Willkommen an Board . Quote Link to comment Share on other sites More sharing options...
kreto2009 Posted April 23, 2012 Author Report Share Posted April 23, 2012 Hallo kreto Willkommen bei Tom-Next ! Da du nicht programmieren kannst (Ich auch nicht) hier mal ein "Rohling", wie so etwas aussehen könnte.Der EA ist m.M.n. schon sehr nah dran an dem was du suchst.Allerdings ist er in dieser Form nicht lauftüchtig da die Daten (deine Wünsche) erst entsprechend eingetragen werden müssen. Einiges muß sicher verändert und umgeschrieben werden, z.B. die gleitenden Durchschnitte die du nicht benötigst,aber vllt. schon mal ein Einfang, in Verbindung mit Mythos seinen Links. // Copyright 2006, by juanchoc & neo. // juan@forexproyect.com.ar CSV_Export_Expert.mq4 erst einmal ein ganz großes Kompliment. Diese Unterstützung habe ich nicht so erwartet.Schnell, viele Anregungen, viele, die helfen wollen.Ganz toll, bis hierher erst einmal DANKEIch bin überzeugt, mit eurer Unterstützung werde ich das schaffen. Quote Link to comment Share on other sites More sharing options...
Mythos Posted April 24, 2012 Report Share Posted April 24, 2012 startdie Schleife durchlaufen, d.h. jede h, Wert erfassen zum nächsten.dann filteren, high und lowgenau, am besten vor der Schleife die 3 variablen definieren.Wenn du das script dann standardmäßig auf H1 ausführst sind die Werte der H1 Bars in den vordefinierten Variablen High,Low,Close,Time... gespeichert und du kannst sie so direkt abfragen. dies in csv schreiben, wie? wo liegt dann die Datei?Darüber gibt die Hilfe auskunft:int FileOpen( string filename, int mode, int delimiter=';') Opens file for input and/or output. Returns a file handle for the opened file or -1 (if the function fails). To get the detailed error information, call GetLastError() function.Notes: Files can only be opened in the terminal_directory\experts\files folder (terminal_directory ester\files if for expert testing) or in its subfolders.FILE_BIN and FILE_CSV modes cannot be used simultaneously.If FILE_WRITE does not combine with FILE_READ, a zero-length file will be opened. If even the file containd some data, they will be deleted. If there is a need to add data to an existing file, it must be opened using combination of FILE_READ | FILE_WRITE.If FILE_READ does not combine with FILE_WRITE, the file will be opened only if it already exists. If the file does not exist, it can be created using the FILE_WRITE mode.No more than 32 files can be opened within an executable module simultaneously. Handles of files opened in the same module cannot be passed to other modules (libraries). In deinem Fall wirst du also FileOpen("my_data.csv",FILE_CSV|FILE_WRITE,';'); brauchen, halt mit deinem Filenamen. Vom Ablauf ist es mir klar, aber wie in die richtige Reihenfolge mit den richtigen Befehlen?Das ist schwierig... Stimmt, es is nicht einfach für einen Neuling. Wenn du deine ersten Versuche postest können wir vielleicht etwas direkter helfen bzw. aufzeigen wo die Fehler sind.Am Anfang ist es vermutlich der Beste Ansatz sich selber zu überlegen wie man die Daten verarbeiten würde, wenn einem jemand nacheinander jeden einzelnen Bar zeigt. Genau so macht es das Script dann in der Schleife. Quote Link to comment Share on other sites More sharing options...
kreto2009 Posted April 25, 2012 Author Report Share Posted April 25, 2012 genau, am besten vor der Schleife die 3 variablen definieren. So das habe ich jetzt recherchiert.Wären das die Befehle für die Schleife: if(copied<0) return;int k=0;while(k<copied && !IsStopped()) Variable definieren: int highint lowint close Wenn du das script dann standardmäßig auf H1 ausführst sind die Werte der H1 Bars in den vordefinierten Variablen High,Low,Close,Time... gespeichert und du kannst sie so direkt abfragen. Darüber gibt die Hilfe auskunft: In deinem Fall wirst du also FileOpen("my_data.csv",FILE_CSV|FILE_WRITE,';'); brauchen, halt mit deinem Filenamen. Stimmt, es is nicht einfach für einen Neuling. Wenn du deine ersten Versuche postest können wir vielleicht etwas direkter helfen bzw. aufzeigen wo die Fehler sind.Am Anfang ist es vermutlich der Beste Ansatz sich selber zu überlegen wie man die Daten verarbeiten würde, wenn einem jemand nacheinander jeden einzelnen Bar zeigt. Genau so macht es das Script dann in der Schleife. Quote Link to comment Share on other sites More sharing options...
ronner Posted April 25, 2012 Report Share Posted April 25, 2012 @kreto, war das Absicht ins Zitat von Mythos die Antwort zu schreiben ? Weil das liest so keiner und möchte auch keiner lesen Quote Link to comment Share on other sites More sharing options...
kreto2009 Posted April 25, 2012 Author Report Share Posted April 25, 2012 So das habe ich jetzt recherchiert.Wären das die Befehle für die Schleife: if(copied<0) return;int k=0;while(k<copied && !IsStopped()) Variable definieren: int highint lowint close Danke für den Hinweis Quote Link to comment Share on other sites More sharing options...
Mythos Posted April 25, 2012 Report Share Posted April 25, 2012 Darf ich fragen wie du auf diese codezeilen kommst? Welchen Zweck erfüllt zB. copied? Woher hast du IsStopped? Zu deiner Frage: das while ist eine Schleife, ja. Wenn dus in dem Stil machen würdest dann sollte es eher so aussehen: int k= 1; int high,low,close; while(k <= Bars) { // berechnung bei offset Bars-k k++; } Schöner wär allerdings statt while eine for zu nehmen: for(int k= 1;k <= Bars;k++) { // Berechnung... } Quote Link to comment Share on other sites More sharing options...
kreto2009 Posted April 26, 2012 Author Report Share Posted April 26, 2012 Da ich keinen richtigen Anhaltspunkt habe, wurde ich in google fündig ;-)Das habe ich gefunden: Nachschlagewerk fuer die Programmiersprache MQL5 (in deutsch!)Ich glaube, dass es das auch hier im Forum als Link gibt. Ansonsten stelle ich das natürlich gerne rein.Ist aber sehr umfangreich, sehr komplex. Weiß auch nicht, ob das das Richtige ist.Ich suche nach wie vor nach einer Beschreibung für die Erstellung von script. Quote Link to comment Share on other sites More sharing options...
Vola Posted April 26, 2012 Report Share Posted April 26, 2012 kreto scheint ja recht motiviert zu sein, weiß aber glaube ich gar nicht so recht, wo er überhaupt anfangen soll. Wäre es nicht vllt. hilfreich, erst mal einen Beginn als Code zu posten, den man dann sukzessive nach seinen Vorstellungen weiter ausbaut ?Könnte doch vom vom Verständnis sicher sehr lehrreich sein. Quote Link to comment Share on other sites More sharing options...
Mythos Posted April 26, 2012 Report Share Posted April 26, 2012 Für alle Neulinge die das allererste mal ein Script in MT4 programmieren wollen ist der MetaEditor natürlich die erste Anlaufstelle. Dort öffnet man ein neues Script (File->New->Script). Namen etc. kann man sich frei aussuchen.Nun hat man das Grundgerüst vor einem und muss nur noch die start() - Funktion mit der gewünschten Logik füllen. Wie in mehreren Threads hier schon ausführlich erklärt ist MQL4 stark an C angelehnt. Für genauere Informationen vor allem zur Syntax etc. empfehle ich das MQL-Book. Sofern Zeit vorhanden das gesamte durchlesen, ansonsten nur die nötigen Stellen. Im konkreten Fall sollte (wie schon gesagt) das Script aus 3 Teilen bestehen: 1. Öffnen des Files und initialisierung der Variablen. Die nötigen Funktionen (is nur eigentlich nur eine) wurden oben bereits erwähnt. In den verlinkten Stellen aus der MQL referenz sind auch Beispielcodeblöcke wie die Funktionen zu verwenden sind deswegen poste ich die hier nicht nochmal. 2. Die Schleife.Wie oben geschrieben empfehle ich eine For-Schleife die von hinten (Index Bars -1) nach vorne (Index 0) alle Bars durchgeht.Bei jedem Bar schaut man sich mit TimeHour die Stunde an, abhängig davon werden dann die variablen gesetzt. für ein Script das nur auf H1 läuft würd sowas vermutlich funktionieren: bool newDay= false; for(k= Bars-1;k >= 0;k--) { int hour= TimeHour(Time[k]); if(hour == HourStart || (!newDay && hour> HourStart)) { high= High[k]; low= Low[k]; close= Close[k]; newDay= true; } else if(hour > HourStart && hour >= HourEnd) { if(high < High[k]) high= High[k]; if(low > Low[k]) low= Low[k]; close= Close[k]; } else if(hour > HourEnd && newDay) { FileWrite(fileHandle,high,low,close); newDay= false; } } 3. File schließen - und aus ;) hth 1 Quote Link to comment Share on other sites More sharing options...
kreto2009 Posted April 27, 2012 Author Report Share Posted April 27, 2012 Hallo Mythos,danke für die Erklärung und den Code (hätte ich nicht so zusammen bekommen!)Warum sollte man nicht die deutsche Beschreibung MQL5 nehmen?Sind da zum MQL 4 große Unterschiede, bzw. geht das gar nicht?So wo stehen jetzt die Daten und wie bekomme ich die in Excel?Werde das testen und meine Bemerkungen dazu machen.Freundliche GrüßeSiegfried Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.