|
Programmierung MQL4 Hier gehts rund ums Programmieren in MQL4. |
|
Themen-Optionen | Thema durchsuchen | Ansicht |
|
|||
Daten von EA sichern für Neustart
Hallo liebe User,
ich würde gerne meinen EA gegen Computer-Neustart sichern. Wie kann man die Daten von einem aktiven EA speichern, so dass der EA bei einem Neustart weiß Wo er war? Um ein Beispiel zu nennen: Bei Start: bool ERSTERTRADE = false; nun ändert der EA den Wert: ERSTERTRADE = true; wie kann der ea bei einem Neustart wissen, dass ERSTERTRADE =true ist? Hoffe das Ihr mir helfen könnt..... lg |
|
|||
EA-Status speichern
Hallo,
da bieten sich doch wieder die Globalvariablen an. In diesem Falle würde ich das über einen Zähler realisieren. Der EA wird wahrscheinlich auf mehreren Symbolen laufen, also bei den Variablennamen immer den Symbolnamen einbeziehen. ZB: Code:
GlobalVariableSet(_Symbol+"_Trades",TradesCounted); Die einfachste Methode: mit F3 die Variablen anzeigen und alle löschen. Eleganter: via Hotkey über alle Charts iterieren und die Variablen zurücksetzten. Ich poste dazu in den Codeschnipsel was brauchbares: Alle Charts mit Hotkey auf den gleichen Timeframe setzen. Ich hoffe du kannst damit was anfangen. Grüße Otto |
|
|||
Ich glaube, dass Worte "ERSTERTRADE" zielte wahrscheinlich weniger auf die numerische Zählung als mehr auf einen willkürlichen Beispielnamen hin.
Wie dem auch sei. Der "kleine" Nachteil der Globalvariablen ist die automatische Löschung durch den MT, wenn auf diese Variable mehr als 4 Wochen nicht zugegriffen wurde. Das kann man vermeiden, indem z.B. per Timer oder anderer Zeitregelung alle Globalvariablen über Code:
for (int i = 0, i < GlobalVariablesTotal(); i++) { double value = GlobalVariableGet(GlobalVariableName(i)); } Desweiteren würde ich vorsichtshalber das TimeFrame mit einbauen, damit auch pro Handelsinstrument gleichzeitig mehrere TimeFrames genutzt werden können, also: Code:
GlobalVariableSet(_Symbol + "_" + _Period + "_" + Variablenname,Variablenwert); Code:
GlobalVariableSet(_Symbol + "_" + _Period + "_" + (string)MagicNumber + "_" + Variablenname,Variablenwert); Will man wirklich alle Globalvariablen gleichzeitig schließen, dann einfach F3-STRG+A+Löschen. Die zweite Variante wirklich dauerhaft, Variablen zu speichern, wäre die mittels FileWrite(), die Variablen in eine csv- oder txt-Datei zu schreiben und bei Bedarf wieder auszulesen. Da gehört a bisserl Übung im Handling der File-Funktionen dazu. D.h. einfacher geht es über die Globalvariablen. Na dann, viel Spaß! traderdoc
__________________
Ich erfülle Euch gern Eure EA-, Indikator- und Script-Programmierungswünsche auf Honorarbasis. |
|
|||
Hallo,
und danke für die 2 Antworten, aber da komme ich nicht mit klar...ich verstehe sie nicht! Das was TRADERDOC geschrieben hat (am Ende) mit FileWrite(), also die Variablen in eine csv- oder txt-Datei zu schreiben habe ich schon mal gehört und mich schon mal dran versucht. Aber nicht hinbekommen, da mir da wahrscheinlich die Grundbasis fehlt. Ich wäre Euch allerdings dankbar, wenn Ihr mir die Version mit der externen Datei näher bringen könntet, denn ich möchte auch in Zukunft auf diese Weise Daten aus einer Datei auslesen, um so zum Beispiel NUR 1 mal Tradingzeiten in eine Datei einzutragen, um sie dann von vielen aktiven Instanzen auslesen zu können. So müsste ich nicht in jeder Instanz die Zeiten einzeln eintragen, sondern brauche es NUR einmal einzutragen. Also könnt Ihr versuchen mir das in einem kleinen Grundkurs näherzubringen? Oder kann ich das irgendwo nachlesen? Thema FileWrite() und Text-Datei..... vielen Dank, lg George |
|
|||
Textdateien schreiben/lesen
Schau bei den Codeschnipseln nach
http://www.expert-advisor.com/forum/...erbrechen.html Da ist alles drin was du zum lesen und schreiben von Textdateien benötigst. Im Netz gibt's gute C-Kurse, gratis. Dir fehlt die Basis. Grüße Otto Nachtrag: CSV-Dateien sind ganz normale Textdateien die als Delimiter das Semicolon haben. Beim Lesen der Zeilen mit StringSplit() in die einzelnen Felder aufdröseln. |
|
|||
@ Kronenchakra
Du hast Recht, da fehlen mir wohl die Basics. Ich habe mich im Netz mal schlau gemacht und dann etwas gefunden auf C-HowTo - Programmieren in C Dort merkte ich aber schnell das ich ne Menge weiß, aber nur eben das nicht. Ich eben kein Gelernter, sondern ein selbst Beigebrachter Nun werde ich mich in den nächsten Tagen mal mit dem Abschnitt Dateiverarbeitung auseinandersetzen. Sollte das Thema jemanden auch interessieren hier der Link dazu: Dateiverarbeitung Programmieren in C HowTo Wenn ich weiß wie's geht melde ich mich hier wieder...... Danke Euch aber für eure Hilfe, auch wenn ich Euch nicht verstanden habe |
|
|||
Ich habe mal kurz die Seite geöffnet.
Da würde ich an Deiner Stelle nicht nachlesen. MQL4 basiert zwar auf C, hat aber seine z.T. eigenen Begrifflichkeiten, Namen und Funktionen. Stöbere mal lieber im MQL4-Forum und suche nach Codebeispielen bzgl. der File-Funktionen bzw. lese einfach in der MQL-Dokumentation oder in der MQL-Reference nach, die Du aus dem MetaEditor heraus mit F1 erreichst. Dort stehen unter den Funktionen auch Beispiele, die Dich sicherlich weiterbringen werden, als in einem C-Tutorial zu lesen. traderdoc
__________________
Ich erfülle Euch gern Eure EA-, Indikator- und Script-Programmierungswünsche auf Honorarbasis. |
|
|||
@ Traderdoc
Danke für Deinen Hinweis. Ich habe mich schon mal auf der MQL-Reference umgeschaut und nutze sie öfter für gewisse Syntax oder so. Dort hatte ich nur das Gefühl das es sehr umständlich ist, daher dachte ich, ich schaue erstmal beim C-Tutorial um, um so über die grobe Basis meines Problems zu lesen und parallel in die MQL-Reference. Danke Dir aber wie gesagt sehr, das Du mich vor unnötigen Ablenkungen bzw. Verwirrungen warnst. Wenn ich's raus hab melde ich mich hier noch mal und zeige Euch, wie ich das ganze Lösen werde. Bis dahin, schöne Tage |
|
|||
So da bin ich wieder, leider OHNE Erfolg.....
Ich habe jetzt Stunden, über Stunden, damit verbracht zu versuchen zu lernen, wie man eine externe Datei auslesen kann und, oder überschreiben kann, LEIDER OHNE es hinzubekommen. Ich habe mich durch die mt4-Referenz und durch das mql4-Tutorail gearbeitet, dazu versucht und getestet.....es geht nicht !!! Ich schaffe es nie das die Datei geöffnet wird.... Ich habe mir eine einfaches Script gebastelt, schau hier: ******** file test ********** string InpFileName="Readtest.CSV"; int file_handle=FileOpen(InpFileName,FILE_READ|FILE_CS V); Print(file_handle ); // hier kommt immer -1 raus ersteTrade = FileReadBool(file_handle); Print("ersteTrade = ",ersteTrade ); FileClose(file_handle); ******** ENDE file test ********** Also nochmal die herzliche Bitte an Euch mql-Füchse, gebt mir doch bitte ein einfaches script-beispiel was das Lesen und Schreiben in eine txt-Datei ermöglicht. Und bitte nicht Stellen aus den o.g. Quellen, damit schaffe ich es nicht....ein kleines, einfaches, aber exaktes Codeteilchen wünsche ich mir: Wer kann mir einen einfachen Code liefern, in dem NUR eine Variable gelesen werden soll und evtl. dann diese gleiche Variable wieder überschrieben wird? Es soll für die Variable nur der Wert 'true' oder 'false aus der Datei gelesen werden oder in der Datei überschrieben werden. lesen z.b. der Wert A = false ( der in der Datei steht ) schreiben z.b. den wert a = true ( in der datei überschreiben ) Und dazu bitte das Beispiel für die fertige txt-Datei. (csv geht auch aber lieber wäre mir ne einfache Textdatei, zum Öffnen mit dem einfachen TXT-Editor. Und wie siehts aus? Kann mir da einer von Euch helfen? |
Lesezeichen |
|
|