Metatrader Forum | Forex Expert-Advisor | Broker & Forex Tools
Zurück   Metatrader Forum | Forex Expert-Advisor | Broker & Forex Tools > Metatrader 4 > Programmierung MQL4
Startseite Registrieren Hilfe Community Kalender Heutige Beiträge Suchen

Programmierung MQL4 Hier gehts rund ums Programmieren in MQL4.

Login
Benutzername:
Kennwort:


Statistik
Themen: 4978
Beiträge: 43260
Benutzer: 7.224
Aktive Benutzer: 74
Links: 84
Wir begrüßen unseren neuesten Benutzer: Sundaytrader
Mit 2.475 Benutzern waren die meisten Benutzer gleichzeitig online (16.01.20 um 22:38).
Neue Benutzer:
vor 9 Stunden
- Sundaytrad...
vor 16 Stunden
- TS_6
vor 2 Tagen
- Mane
vor 2 Wochen
- AlbertZiz
vor 2 Wochen
- michak

Onlineuser
'Wer ist online' anzeigen Benutzer: 0
Gäste: 385
Gesamt: 385
Team: 0
Team:  
Benutzer:  
Freunde anzeigen

Empfehlungen

Thema geschlossen
 
Themen-Optionen Thema durchsuchen Ansicht
  #1 (permalink)  
Alt 18.03.17
Neues Mitglied
 
Registriert seit: May 2012
Beiträge: 20
13500 befindet sich auf einem aufstrebenden Ast
Question 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
  #2 (permalink)  
Alt 18.03.17
Gesperrter Benutzer
 
Registriert seit: Feb 2016
Ort: 2100 Österreich
Beiträge: 313
Kronenchakra befindet sich auf einem aufstrebenden Ast
Standard 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);
Der Fall, daß alles in den Initialzustand zurückgesetzt werden soll ist auch zu berücksichtigen.
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
  #3 (permalink)  
Alt 18.03.17
Elite Mitglied
 
Registriert seit: Apr 2011
Beiträge: 2.735
traderdoc befindet sich auf einem aufstrebenden Ast
Standard

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));
}
aufgerufen werden.

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);
Und für den Fall, dass sogar pro Handelsinstrument gleichzeitig bei einem TimeFrame mehrere Charts offen sind, auf denen gehandelt wird, müsste man dann noch z.B. die zu vergebende MagicNumber mit einbeziehen:

Code:
GlobalVariableSet(_Symbol + "_" + _Period + "_" + (string)MagicNumber + "_" + Variablenname,Variablenwert);
Das wäre nun eine eineindeutige Unterscheidunmg aller Globalvariablen. Der eingefügte Unterstrich "_" dient nur der besseren Lesbarkeit der Namen der Globalvariablen.

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.
  #4 (permalink)  
Alt 19.03.17
Neues Mitglied
 
Registriert seit: May 2012
Beiträge: 20
13500 befindet sich auf einem aufstrebenden Ast
Standard

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
  #5 (permalink)  
Alt 19.03.17
Gesperrter Benutzer
 
Registriert seit: Feb 2016
Ort: 2100 Österreich
Beiträge: 313
Kronenchakra befindet sich auf einem aufstrebenden Ast
Standard 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.
  #6 (permalink)  
Alt 20.03.17
Neues Mitglied
 
Registriert seit: May 2012
Beiträge: 20
13500 befindet sich auf einem aufstrebenden Ast
Standard

@ 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

  #7 (permalink)  
Alt 20.03.17
Elite Mitglied
 
Registriert seit: Apr 2011
Beiträge: 2.735
traderdoc befindet sich auf einem aufstrebenden Ast
Standard

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.
  #8 (permalink)  
Alt 24.03.17
Neues Mitglied
 
Registriert seit: May 2012
Beiträge: 20
13500 befindet sich auf einem aufstrebenden Ast
Standard

@ 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
  #9 (permalink)  
Alt 28.03.17
Neues Mitglied
 
Registriert seit: May 2012
Beiträge: 20
13500 befindet sich auf einem aufstrebenden Ast
Standard

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?

  #10 (permalink)  
Alt 29.03.17
Gesperrter Benutzer
 
Registriert seit: Feb 2016
Ort: 2100 Österreich
Beiträge: 313
Kronenchakra befindet sich auf einem aufstrebenden Ast
Standard

Wenn das Filehandle -1 ist, ist die Datei nicht vorhanden oder gefunden worden.
Ich stell am Abend je ein Beispiel zum File lesen und schreiben in die Codeschnipsel.
Grüße Otto
Thema geschlossen

Lesezeichen

Stichworte
daten speichern, ea sichern daten sichern, einstellungen sichern, einstellungen speichern, expert advisor einstellungen, mql4, programmierung, programmierung metatrader, programmierung mql4, sichern, speichern


Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are aus
Pingbacks are aus
Refbacks are aus




Alle Zeitangaben in WEZ +2. Es ist jetzt 04:01 Uhr.





Suchmaschine - Reisen - Wavesnode - Facebook Forum - Spam Firewall
-----------------------------------------------------------------------------------------------------------------------------
Powered by vBulletin® Version 3.8.5 (Deutsch)
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Powered by vBCMS® 2.7.0 ©2002 - 2024 vbdesigns.de
SEO by vBSEO 3.6.1
Copyright ©2009 - 2023 by Expert-Advisor.com - Das Metatrader Forum
MetaTrader bzw. MetaTrader 4 und MetaTrader 5 sind eingetragene Marken der MetaQuotes Software Corp.
-----------------------------------------------------------------------------------------------------------------------------