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 4 Stunden
- Sundaytrad...
vor 10 Stunden
- TS_6
vor 2 Tagen
- Mane
vor 2 Wochen
- AlbertZiz
vor 2 Wochen
- michak

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

Empfehlungen

Like Tree2Likes
Thema geschlossen
 
Themen-Optionen Thema durchsuchen Ansicht
  #1 (permalink)  
Alt 20.04.16
Mitglied
 
Registriert seit: Sep 2012
Beiträge: 157
piptrade befindet sich auf einem aufstrebenden Ast
Red face eine 2. TimeZone einrichten

Hallo,
bin "blutiger" Anfänger und habe gerade meine erste ZeitZone für einen kleinen EA programmiert:

/*
extern string Start_TimeZone_1 = "08:30";
extern string End_TimeZone_1 = "13:00";
int CurrentTime;

bool TradingTime()
{
CurrentTime = TimeHour(TimeCurrent());
if (Start_TimeZone_1 < End_TimeZone_1){
if ((CurrentTime < Start_TimeZone_1) ||
(CurrentTime >= End_TimeZone_1)) return(false);
}
return(true);
}
int start()
{
if (TradingTime() == false) return(0);
//--- EA code
}
*/

... funktioniert soweit auch recht gut.
Trotzdem gibt es Probleme bei der Erweiterung auf eine 2. TimeZone.
Hat jemand eine Idee,- kann jemand helfen ?
Vorab schon einmal ein liebes "Dankeschön".

Grüße piptrade
  #2 (permalink)  
Alt 20.04.16
Mitglied
 
Registriert seit: Sep 2012
Beiträge: 157
piptrade befindet sich auf einem aufstrebenden Ast
Standard

... recht vielen Dank an alle user, die sich für diesen Beitrag interessierten.

Ich hab` nach einigem Hin und Her selbst eine Lösung gefunden !

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

/*
extern string Start_TimeZone_1 = "08:30";
extern string End_TimeZone_1 = "13:00";
int CurrentTime;

bool TradingTime()
{
CurrentTime = TimeHour(TimeCurrent()); //1. hier wird die Stunde als Integerzahl übergeben
if (Start_TimeZone_1 < End_TimeZone_1){ //2. hier werden zwei string-Variablen verglichen!?
if ((CurrentTime < Start_TimeZone_1) ||
(CurrentTime >= End_TimeZone_1)) return(false); //3. hier wird jeweils eine Intergerzahl mi einem String verglichen
}
return(true);
}
int start()
{
if (TradingTime() == false) return(0);
//--- EA code
}
*/

Dieser Code wird wegen Kommentar 2. und 3. nicht korrekt funktionieren.

traderdoc
__________________
Ich erfülle Euch gern Eure EA-, Indikator- und Script-Programmierungswünsche auf Honorarbasis.
  #4 (permalink)  
Alt 21.04.16
Mitglied
 
Registriert seit: Apr 2016
Beiträge: 45
Top-SecreT befindet sich auf einem aufstrebenden Ast
Standard

Richtig. Seh ich auch so.
piptrade "und" "auch" welches der wörter ist größer?
Man kann keine Strings vergleichen und auch kein String mit einer Zahl.
  #5 (permalink)  
Alt 21.04.16
Elite Mitglied
 
Registriert seit: Apr 2011
Beiträge: 2.735
traderdoc befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von Top-SecreT Beitrag anzeigen
Richtig. Seh ich auch so.
piptrade "und" "auch" welches der wörter ist größer?
Man kann keine Strings vergleichen und auch kein String mit einer Zahl.
Na ja, das muß ich etwas korrigieren.
Man kann sehr wohl Strings miteinander vergleichen. Da kommt es darauf an, was man will.
string A = "Montag";
string B = "Dienstag";

Beim Stringvergleich wäre nur ein ist gleich oder ist nicht gleich sinnvoll:
if (A == B) ...
if (A != B) ...
oder jeweils als else-Anweisung, falls die Abfrage false ergibt.

Der Vergleich eines Strings mit einer Zahl geht auch unter bestimmten Umständen. Wenn z.B. der String eine Zahl wäre:
string C = "1234" und
int D = 5678;
dann muß eine Vereinheitlichung der Variablendeklaration erreicht werden:

if ((int)C < D), dann kann man auch < oder > verwenden, weil der String als Zahl in eine Integerzahl umgewandelt wurde. Lägen Zahlen im Format 1234.56 vor, dann mittels (double)C den String umwandeln.

Würde man jedoch die Interzahl in einen String umwandeln, dann wäre der Vergleich wieder nur sinnvoll, wie oben beschrieben:

if (C == (string)D) ...

traderdoc
__________________
Ich erfülle Euch gern Eure EA-, Indikator- und Script-Programmierungswünsche auf Honorarbasis.
  #6 (permalink)  
Alt 21.04.16
Mitglied
 
Registriert seit: Apr 2016
Beiträge: 45
Top-SecreT befindet sich auf einem aufstrebenden Ast
Standard

Ja richtig ich meinte ja auch direkter Größenvergleich so wie er es versucht.
  #7 (permalink)  
Alt 22.04.16
Mitglied
 
Registriert seit: Sep 2012
Beiträge: 157
piptrade befindet sich auf einem aufstrebenden Ast
Standard

Danke, für Eure Unterstützung. Wenn ich die Kommentare richtig verstanden habe, dürfen Birnen nicht mit Äpfeln verglichen werden . D.h., dass ich eigentlich nur Integerzahlen für einen sinnvollen Vergleich heranziehen kann?
Wenn dem so ist, müßte im code "extern string" in "extern int" ("extern double" - wenn mit Dezimalstellen gearbeitet wird) geändert werden, so dass im Endresultat tatsächlich nur Integerzahlen gegenübergestellt werden.
Wäre das so korrekt ?
Ginge da ev. auch "input int" / "input double" ?

Liebe Grüße piptrade
  #8 (permalink)  
Alt 22.04.16
Mitglied
 
Registriert seit: Sep 2012
Beiträge: 157
piptrade befindet sich auf einem aufstrebenden Ast
Standard

Ergänzung: ... oder auch eine Umwandlung von "string" mittels "double" -Declaration?
  #9 (permalink)  
Alt 22.04.16
Mitglied
 
Registriert seit: Apr 2016
Beiträge: 45
Top-SecreT befindet sich auf einem aufstrebenden Ast
Standard

wenn du uhrzeiten vergleichen willst würde ich die in einen int umwandeln und dann miteinander vergleichen.
double und int kannst du vergleichen
  #10 (permalink)  
Alt 23.04.16
Mitglied
 
Registriert seit: Sep 2012
Beiträge: 157
piptrade befindet sich auf einem aufstrebenden Ast
Standard

Habe mir Eure Hinweise sehr genau angesehen und, wie ich glaube, auch verstanden; - und für die "vollen Stunden" dürfte das keine Probleme bereiten. Insoweit erst einmal recht herzlichen Dank.

Will ich nun aber die "vollen Stunden" plus Minuten verarbeiten, komme ich nicht richtig weiter:

extern int TradeTimeHour_1_Begin = 09;
extern int TradeTimeMinute_1_Beginn = 30;
extern int TradeTimeHour_1_End = 11;
extern int TradeTimeMinute_1_End = 30;

int Hour();
int Minute();

CurrentTime = TimeHour(TimeCurrent()) + TimeMinute(TimeCurrent());

bool TradingTime_1 = false;
if (((Hour()>= TradeTimeHour_1_Begin) && (Minute()>= TradeTimeMinute_1_Beginn)) &&
((Hour()< TradeTimeHour_1_End) && (Minute()< TradeTimeMinute_1_End))) returne(false);

else TradingTime_1 = true;

Ich könnte mir vorstellen, dass diese Variante ggf. sogar funktioniert. Allerdings ist das alles andere als "elegant". Gibt es da nicht eine Variante, die "sauberer" ist ?
Thema geschlossen

Lesezeichen

Stichworte
mql4, programmierung, programmierung metatrader, timezone, tradezone, tradingtimezone, zeitzone, zeitzonen


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 22:39 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.
-----------------------------------------------------------------------------------------------------------------------------