Metatrader Forum | Forex Expert-Advisor | Broker & Forex Tools
Zurück   Metatrader Forum | Forex Expert-Advisor | Broker & Forex Tools > Metatrader 4 > Programmierung MQL4

Programmierung MQL4 Hier gehts rund ums Programmieren in MQL4.

Login
Benutzername:
Kennwort:


Statistik
Themen: 4973
Beiträge: 43249
Benutzer: 7.221
Aktive Benutzer: 81
Links: 84
Wir begrüßen unseren neuesten Benutzer: Thomas75
Mit 2.475 Benutzern waren die meisten Benutzer gleichzeitig online (16.01.20 um 22:38).
Neue Benutzer:
vor 4 Stunden
- Thomas75
vor 18 Stunden
- JosephTK
vor 2 Tagen
- Hopfen&Mal...
vor 3 Tagen
- frankmicha...
vor einer Woche
- DFeck

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

Empfehlungen

Thema geschlossen
 
Themen-Optionen Thema durchsuchen Ansicht
  #11 (permalink)  
Alt 10.01.17
Elite Mitglied
 
Registriert seit: Apr 2011
Beiträge: 2.733
traderdoc befindet sich auf einem aufstrebenden Ast
Standard

@delipoint, sorry wenn ich als Erstes gleich mal die Axt schwinge.
Dieser Code geht gar nicht! Warum benutzt Du nicht in der Menüzeile das # Zeichen? Pro Codezeile nur eine Anweisung oder ein Vergleich und bitte alles schön einrücken nach einem {. Das muss übersichtlich bleiben, sonst liest doch keiner diesen Spaghetticode.

Gehe mal davon aus, dass meine kleine Funktion CheckOrder() funktioniert.
Das kann sie natürlich nur, indem sie an der entsprechenden Stelle aufgerufen wird. Ich sehe auf meinem iPad rechts nicht den ganzen Code, aber so weit ich das überblicke, wird doch die Funktion CheckOrder() überhaupt nicht aufgerufen.

Also, schau mal, wo die Funktion hingehören soll und schreibe den Code mal durch vorheriges Drücken des # Zeichens.

traderdoc
__________________
Ich erfülle Euch gern Eure EA-, Indikator- und Script-Programmierungswünsche auf Honorarbasis.
  #12 (permalink)  
Alt 10.01.17
Mitglied
 
Registriert seit: Feb 2016
Beiträge: 240
RetepM befindet sich auf einem aufstrebenden Ast
Standard

Hi, meine Erfahrung ist, dass man besser fährt, wenn man bei erfolgter Order, eine Variable/Kondition (z.B. 1 für Buy-Order, 2 für Sell-Sellorder) setzt. Das hat den Vorteil, man kann diese Kondition relativ einfach auflösen, wenn andere Bedingungen schon erfüllt sind, CheckOrder (z.B. letzte Order war Buy) aber immer noch gelten würde.
  #13 (permalink)  
Alt 10.01.17
Elite Mitglied
 
Registriert seit: Apr 2011
Beiträge: 2.733
traderdoc befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von RetepM Beitrag anzeigen
Hi, meine Erfahrung ist, dass man besser fährt, wenn man bei erfolgter Order, eine Variable/Kondition (z.B. 1 für Buy-Order, 2 für Sell-Sellorder) setzt. Das hat den Vorteil, man kann diese Kondition relativ einfach auflösen, wenn andere Bedingungen schon erfüllt sind, CheckOrder (z.B. letzte Order war Buy) aber immer noch gelten würde.
Vom Grundsatz her, könnte man das so realisieren.
Aber!! Die sauberere, aber v.a. sicherere Methode ist die, über die Abfrage der historischen Orders zu gehen.
Warum? Nun ganz einfach: Wenn nicht Deine o.g. Variablenspeicherung als GlobalVariableSet() erfolgt, werden diese Variablen gelöscht, sobald der EA auch nur kurzfristig deaktiviert wird. Da reicht schon ein TimeFramewechsel aus oder eine andere "Unterbrechung". Somit wäre diese Variable auf den Initialwert zurückgesetzt. Mit der Abfrage über CheckOrder() spielen diese Szenarien keine Rolle und die letzte geschlossene Order mir mit Sicherheit sicher erkannt.

Sollte es also möglich sein Variablen zu füllen über solche oder ähnliche Funktionen, dann ist das immer der temporären Speicherung von Variablen vorzuziehen. Eine "Notlösung" wäre wie geschrieben, das Schreiben der Variablen mittels GlobalVariableSet().

traderdoc
__________________
Ich erfülle Euch gern Eure EA-, Indikator- und Script-Programmierungswünsche auf Honorarbasis.
  #14 (permalink)  
Alt 10.01.17
Mitglied
 
Registriert seit: Feb 2016
Beiträge: 240
RetepM befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von traderdoc Beitrag anzeigen
traderdoc
Upps !? Tradest Du mit Deinen EAs auch selbst? Wechselst Du dann im laufenden Betrieb einfach mal schnell die TimeFrames? Oder schaltest ihn eben mal kurz aus?
Um Deine Einwänden aus dem Wege zu räumen, muss man tatsächlich etwas nachdenken. Eine einfache Lösung für den Wiedereinstieg wäre z.B. eine ganz normale externe Variable, über die man den Einstieg/Wiedereinstieg gesondert regeln kann. Aber eine globale Variable geht natürlich auch, die nimmt einem dann das Denken ab.
Voraussetzung für erfolgreiches Trading mit einem EA ist natürlich, man muss wissen, wie funktioniert so ein Teil und was muss man grundsätzlich beachten bzw. was will man erreichen.
  #15 (permalink)  
Alt 10.01.17
Elite Mitglied
 
Registriert seit: Apr 2011
Beiträge: 2.733
traderdoc befindet sich auf einem aufstrebenden Ast
Standard

Ja, warum sollte nicht das TF gewechselt werden, um sich ein Bild auch in anderen TFs zu verschaffen, mal ganz abgesehen vom unabsichtlichen TF-Wechsel.
Auch jede Änderung eine der Variablen in den Eigenschaften führt zum Verlust dieser temporären Variablenwerte. Ich denke auch an das Abschalten am Wochenende. Letztlich beschrieb ein User den Ausfall des Servers. All das und einige weitere Situationen führen zu einem Verlust dieser temporären Variablenwerte.
Warum also unnötig dieses Risiko eingehen?
Nun, wie willst Du denn das Problem über externe Variablen lösen?
Gib uns bitte ein Code-Beispiel.

Zitat @retepM:
"Voraussetzung für erfolgreiches Trading mit einem EA ist natürlich, man muss wissen, wie funktioniert so ein Teil und was muss man grundsätzlich beachten bzw. was will man erreichen."

Bei Deinem EA in Post #2 bin ich mir aber sicher, dass Du da nicht weisst, wie das Teil funktioniert, weil er eben nicht funktioniert. Die Erklärung dazu kam dann in Post #5.

traderdoc
__________________
Ich erfülle Euch gern Eure EA-, Indikator- und Script-Programmierungswünsche auf Honorarbasis.
  #16 (permalink)  
Alt 10.01.17
Mitglied
 
Registriert seit: Feb 2016
Beiträge: 240
RetepM befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von traderdoc Beitrag anzeigen
traderdoc
Nachdem Du in einem laufenden EA das TimeFrame wechselst, kann ich Dir leider auch nicht weiter helfen! Natürlich weiß ich, warum Du so oberschlau bist... ich hatte das ja eigentlich sogar initiiert.
Wenn Du Dir nicht sicher bist, dann antworte doch einfach nicht oder konzentriere Dich doch auf die Auftragsprogrammierung. In der Zeit, in der Du hier versuchst den Oberlehrer zu geben, könntest Du wahrscheinlich richtig was schaffen.
Übrigens... ich habe nicht gegen sinnvolle Posts...
Schönen Abend und viel Erfolg! In der Hoffnung auf weitere, wie ja meistens, positive Beiträge!
  #17 (permalink)  
Alt 10.01.17
Mitglied
 
Registriert seit: Dec 2015
Beiträge: 85
TogoTiger befindet sich auf einem aufstrebenden Ast
Standard

Hehe!
Vertreib uns den Doc nicht.
Der ist nicht der Oberlehrer, seine Code-Beispiele und seine Codeanalysen sind erste Sahne. Er macht das hier freiwillig und ohne Bezahlung und dafür sind wir ihm dankbar. Ich bewundere seine Geduld, einen Anfängercode zu analysieren.
Kritik ist durchaus erlaubt, aber nicht beleidigend.

Und echt: Warum soll man Timeframe nicht wechseln dürfen? Ist dein EA sauber geschrieben, dann macht das dem nichts aus.
  #18 (permalink)  
Alt 10.01.17
Elite Mitglied
 
Registriert seit: Apr 2011
Beiträge: 2.733
traderdoc befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von RetepM Beitrag anzeigen
Nachdem Du in einem laufenden EA das TimeFrame wechselst, kann ich Dir leider auch nicht weiter helfen! Natürlich weiß ich, warum Du so oberschlau bist... ich hatte das ja eigentlich sogar initiiert.
Wenn Du Dir nicht sicher bist, dann antworte doch einfach nicht oder konzentriere Dich doch auf die Auftragsprogrammierung. In der Zeit, in der Du hier versuchst den Oberlehrer zu geben, könntest Du wahrscheinlich richtig was schaffen.
Übrigens... ich habe nicht gegen sinnvolle Posts...
Schönen Abend und viel Erfolg! In der Hoffnung auf weitere, wie ja meistens, positive Beiträge!
@retepM, jetzt mal ehrlich, wo liegt denn Dein Problem?
Erstens, wenn ich nicht eben durch die Auftragsprogrammierung am Kunden direkt erfahren hätte, was die so alles "anstellen" mit den EAs, dann hätte ich das doch gar nicht geschrieben. Vorausgesetzt der EA läuft im Live!!, würdest Du gern Geld verlieren, nur weil der EA in bestimmten Situationen dann nicht ordentlich läuft, aufgrund des Zurücksetzens der temporären Variablen? Ich glaube nicht. Und daher ist die Absicherung solcher Fälle das A und O.
Der Mittelteil Deines Posts erschließt sich mir weder vom Inhalt noch von der Logik. Was hattest Du initiiert? Und v.a. wobei soll ich mir denn nicht sicher gewesen sein? Und warum sollte ich oberschlau sein, nur weil ich Deinen generierten EA zerlegt habe? Was falsch ist, sollte doch besser korrigiert werden, als dass es weiterhin dann so falsch hier stehenbleibt.

Zum Entscheidenden hast Du leider noch nichts geschrieben. Ich würde schon gern so ein Codebeispiel sehen, wie Du dieses konkrete Problem über die Benutzung von externen Variablen regeln willst.

traderdoc
__________________
Ich erfülle Euch gern Eure EA-, Indikator- und Script-Programmierungswünsche auf Honorarbasis.
  #19 (permalink)  
Alt 12.01.17
Neues Mitglied
 
Registriert seit: Nov 2015
Beiträge: 3
delipoint befindet sich auf einem aufstrebenden Ast
Standard

Hallo Zusammen, vielen Dank für das schnelle Antworten und dank an Traderdoc für die Programmierungshilfe.

Dennoch ist die Funktion noch immer nicht gegeben.
Die Tatsache das das Script zur History-Abfrage der letzten Order an der falschen Stelle eingebettet war, dachte ich mir schon und habe nun folglich die Abfrage zwischen der Indicatorabfrage per (Icustom) und Initialisierung der Order gelegt. Leider nicht fehlerfrei global scobe Meldung die nicht wegzubekommen war.

Die "# "Entscheidung als Brücke zur Abfrage ergab auch nur Fehlermeldungen.
Ich brauche also weiterhin eure Unterstützung und sage schon mal herzlichen Dank
Gruss delipoint
  #20 (permalink)  
Alt 12.01.17
Elite Mitglied
 
Registriert seit: Apr 2011
Beiträge: 2.733
traderdoc befindet sich auf einem aufstrebenden Ast
Standard

Die Funktion incl. der Deklarierung
int CheckOrder()
muss! außerhalb der start()-Funktion liegen, aber innerhalb der start()-Funktion aufgerufen werden mit
CheckOrder();



traderdoc
__________________
Ich erfülle Euch gern Eure EA-, Indikator- und Script-Programmierungswünsche auf Honorarbasis.

Geändert von traderdoc (12.01.17 um 13:06 Uhr)
Thema geschlossen

Lesezeichen

Stichworte
befehl, keine order, mql4, programmierung, programmierung metatrader, programmierung mql4

Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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 +1. Es ist jetzt 16:20 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.
-----------------------------------------------------------------------------------------------------------------------------