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: 4483
Beiträge: 40714
Benutzer: 6.866
Aktive Benutzer: 251
Links: 80
Wir begrüßen unseren neuesten Benutzer: hk0163
Mit 2.475 Benutzern waren die meisten Benutzer gleichzeitig online (16.01.20 um 22:38).
Neue Benutzer:
vor einem Tag
- hk0163
vor 2 Tagen
- magnr1
vor 2 Tagen
- boypac007
vor 3 Tagen
- Anja
vor 5 Tagen
- ThaScorp

Onlineuser
'Wer ist online' anzeigen Benutzer: 1
Gäste: 77
Gesamt: 78
Team: 0
Team:  
Benutzer:  traderdoc
Freunde anzeigen

Empfehlungen

Antwort
 
Themen-Optionen Thema durchsuchen Ansicht
  #1 (permalink)  
Alt vor 3 Wochen
LQK LQK ist offline
Mitglied
 
Registriert seit: Nov 2019
Beiträge: 54
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
Mit Zitat antworten
  #2 (permalink)  
Alt vor 3 Wochen
Elite Mitglied
 
Registriert seit: Apr 2011
Beiträge: 2.376
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.
Mit Zitat antworten
  #3 (permalink)  
Alt vor 3 Wochen
Mitglied
 
Registriert seit: Jun 2013
Beiträge: 295
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).
Mit Zitat antworten
  #4 (permalink)  
Alt vor 3 Wochen
LQK LQK ist offline
Mitglied
 
Registriert seit: Nov 2019
Beiträge: 54
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?
Mit Zitat antworten
  #5 (permalink)  
Alt vor 3 Wochen
LQK LQK ist offline
Mitglied
 
Registriert seit: Nov 2019
Beiträge: 54
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?
Mit Zitat antworten
  #6 (permalink)  
Alt vor 2 Wochen
Mitglied
 
Registriert seit: Jun 2013
Beiträge: 295
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.
Mit Zitat antworten
  #7 (permalink)  
Alt vor 2 Wochen
LQK LQK ist offline
Mitglied
 
Registriert seit: Nov 2019
Beiträge: 54
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:

Ein Zwei meines EA wird anscheinend nie erreicht

Besten Dank noch mal für Eure Hilfe!
Mit Zitat antworten
Antwort

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 10:49 Uhr.





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