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: 4978
Beiträge: 43259
Benutzer: 7.222
Aktive Benutzer: 75
Links: 84
Wir begrüßen unseren neuesten Benutzer: AlbertZiz
Mit 2.475 Benutzern waren die meisten Benutzer gleichzeitig online (16.01.20 um 22:38).
Neue Benutzer:
vor einer Woche
- AlbertZiz
vor einer Woche
- michak
vor 2 Wochen
- Amateur
vor 2 Wochen
- infos1982
vor 2 Wochen
- Thomas75

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

Empfehlungen

Thema geschlossen
 
Themen-Optionen Thema durchsuchen Ansicht
  #1 (permalink)  
Alt 17.06.20
LQK LQK ist offline
Mitglied
 
Registriert seit: Nov 2019
Beiträge: 76
LQK befindet sich auf einem aufstrebenden Ast
Standard Hat ein EA eine interne Uhr die zum Start mit der Systemzeit abgeglichen wird?

Hallo,

ich habe zu Übungszwecken einen EA geschrieben der täglich mit dem ersten Tick ab 9 Uhr einen Trade eröffnen soll.

Mittlerweile funktioniert der EA im Großen und Ganzen.

Zum Testen des EA habe ich dann jeweils die Systemzeit auf meinem PC manipuliert, d.h. auf 9:00 Uhr eingestellt.

Dabei ist mir folgendes aufgefallen:
  1. Wenn der EA bereits läuft und ich verstelle die Systemzeit erst zur Laufzeit auf 9 Uhr, funktioniert das nicht. Der EA eröffnet dann keinen Trade nach dem Verstellen der Systemzeit.

  2. Funktionieren tut es dagegen (d.h. der EA eröffnet einen Trade), wenn ich zuerst die Systemzeit auf 9 Uhr einstelle, und dann erst den EA starte.

  3. Ebenfalls funktioniert es (d.h. der EA eröffnet einen Trade) wenn ich zuerst die Systemzeit auf 8:59 Uhr einstelle, und dann den EA starte. Sobald eine Minute vertrichen ist und die 9:00 Uhr erreicht ist, eröffnet der EA mit dem nächsten Tick einen Trade.


Offenbar orientiert sich der EA schon an der Systemzeit (verwende ja auch extra die Funktion LocalTime(), das heißt ja gerade, dass die Systemzeit verwendet werden soll, aber nicht während der Laufzeit.


Ich ziehe daraus die folgende (vorläufige) Schlussfolgerung:


Ich stelle es mir so vor, dass der EA eine art "innere Uhr" hat, diese wird einmalig, d.h. zum Start des EA, mit de Systemzeit des PC abgeglichen ("Uhrenvergleich"), dann aber während der Laufzeit nicht mehr?

Wenn das so ist, wäre das immerhin eine Interessante Information über die internen Funktionen des EA.


Es hätte aber auch eine ganz praktische Implikation:


Was ist denn mit der Umstellung von Sommer- zu Winterzeit, und umgekehrt? Wenn es so ist, wie ich mir denke, müsste die innere Uhr des EA nach der Zeitumstellung einen falschen Wert haben, weil während der Laufzeit ja offenbar kein Uhrenvergleich stattfindet?

Dann müsste nach einer Zeitumstellung der EA neu gestartet werden, dass der Uhrenvergleich stattfindet?

Oder findet der Uhrenvergleich irgendwann doch einmal automatisch statt, z.B. alle 24 Stunden? Bis dahin würde der EA dann aber ggf. falsch arbeiten.

Ich freue mich über jede konstruktive Antwort!

Grüße,
LQK
  #2 (permalink)  
Alt 17.06.20
Elite Mitglied
 
Registriert seit: Apr 2011
Beiträge: 2.735
traderdoc befindet sich auf einem aufstrebenden Ast
Standard

Es existiert kein Uhrenvergleich.
Die Funktion LocalTime() ist die alte Bezeichnung für TimeLocal(), mit der ich anrate zu arbeiten. Die Funktion TimeLocal() gibt die aktuelle PC-Zeit, TimeCurrent() die Zeit des Standortes des Brokers aus.
Beide Zeiten werden voneinander abweichen, wenn der Brokerstandort nicht in der Zeitzone des PCs liegt.

traderdoc
__________________
Ich erfülle Euch gern Eure EA-, Indikator- und Script-Programmierungswünsche auf Honorarbasis.
  #3 (permalink)  
Alt 17.06.20
Premium Mitglied
 
Registriert seit: Jun 2013
Beiträge: 364
Ca$hDigger befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von LQK Beitrag anzeigen
Zum Testen des EA habe ich dann jeweils die Systemzeit auf meinem PC manipuliert, d.h. auf 9:00 Uhr eingestellt.
Mach es lieber umgekehrt, manipuliere nicht die PC-Uhr sondern manipuliere besser zum Testen die Zeitvariable vom EA. Wenn aktuell 16:51 ist und willst was testen stelle die EA-Variable statt der 9:00 eben dann auf 17:00 und fertig. (dann sind die merkwürdigen Effekte die du beobachtet hast auch egal).
  #4 (permalink)  
Alt 17.06.20
LQK LQK ist offline
Mitglied
 
Registriert seit: Nov 2019
Beiträge: 76
LQK befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von traderdoc Beitrag anzeigen
Es existiert kein Uhrenvergleich.
Die Funktion LocalTime() ist die alte Bezeichnung für TimeLocal(), mit der ich anrate zu arbeiten. Die Funktion TimeLocal() gibt die aktuelle PC-Zeit, TimeCurrent() die Zeit des Standortes des Brokers aus.
Beide Zeiten werden voneinander abweichen, wenn der Brokerstandort nicht in der Zeitzone des PCs liegt.

traderdoc
Ich arbeite mit TimeLocal(), habe mich nur vertippt. Was TimeLocal() und TimeCurrent() machen und was die Unterschiede zwischen den beiden Funktionen sind, ist mir soweit klar.

Wie erklärst Du Dir die im EP von mir beschriebenen Phänomene?
  #5 (permalink)  
Alt 17.06.20
LQK LQK ist offline
Mitglied
 
Registriert seit: Nov 2019
Beiträge: 76
LQK befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von Ca$hDigger Beitrag anzeigen
Mach es lieber umgekehrt, manipuliere nicht die PC-Uhr sondern manipuliere besser zum Testen die Zeitvariable vom EA. Wenn aktuell 16:51 ist und willst was testen stelle die EA-Variable statt der 9:00 eben dann auf 17:00 und fertig. (dann sind die merkwürdigen Effekte die du beobachtet hast auch egal).
Dann müsste ich anstelle TimeLocal() zum Debuggen Time als globale Variable bzw. Konstante verwenden. Das würde ich nur sehr ungern machen, weil ich ja nach dem Debuggen noch Änderungen durchführen müsste (die Variable oder Konstante durch TimeLocal() ersetzen), dadurch würde ich, so wie ich mich kenne, sicher weitere oder neue Fehler einbauen.

Lieber würde ich die merkwürdigen Effekte die ich beobachte aufklären. Irgendeinen Grund müssen Sie ja haben. Hast Du eine Idee?
  #6 (permalink)  
Alt 18.06.20
Premium Mitglied
 
Registriert seit: Jun 2013
Beiträge: 364
Ca$hDigger befindet sich auf einem aufstrebenden Ast
Standard

Naja dafür müsstest du die Programmierer von Metatrader fragen wie sie die Funktion TimeLocal() implementiert haben und wie die Zeit vom OS gezogen wird.
Man kann vielleicht über die Kernel32.dll noch die Zeit holen aber ganz ehrlich das ist doch alles nicht schön
Wie gesagt würde die Systemzeit nicht verstellen, sondern Variablen im EA.
  #7 (permalink)  
Alt 23.06.20
LQK LQK ist offline
Mitglied
 
Registriert seit: Nov 2019
Beiträge: 76
LQK befindet sich auf einem aufstrebenden Ast
Standard

Mittlerweile konnte ich ein anderes Problem lösen, die im EP dieses Threads stehenden Phänomene, die offenbar damit in Zusammenhang standen, sind damit jetzt ebenfalls verschwunden.

Das Grundproblem war offenbar, dass ich OnTick() mit Int den falschen Rückgabetyp zugewiesen habe, habe diesen auf void geändert, das hat die Probleme gelöst.

Eine detailliertere Beschreibung siehe auch hier:

http://www.expert-advisor.com/forum/...html#post43942

Besten Dank noch mal für Eure Hilfe!
Thema geschlossen

Lesezeichen

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 +2. Es ist jetzt 19:59 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.
-----------------------------------------------------------------------------------------------------------------------------