Metatrader Forum | Forex Expert-Advisor | Broker & Forex Tools

Metatrader Forum | Forex Expert-Advisor | Broker & Forex Tools (http://www.expert-advisor.com/forum/index.php)
-   Programmierung MQL4 (http://www.expert-advisor.com/forum/forumdisplay.php?f=220)
-   -   Range einer Zeitspanne ermitteln (http://www.expert-advisor.com/forum/showthread.php?t=4976)

Trader1337 28.05.16 10:38

Range einer Zeitspanne ermitteln
 
Guten Tag,

ich bin noch neu hier im Forum und habe noch nicht viel mit mql4 programmiert. Als erstes Projekt wollte ich mir die ORB-Strategie automatisieren. Leider habe ich keine Ahnung, wie genau ich die Range einer bestimmten Zeitspanne, die ich vorher frei fest legen kann z.B. von 8-9 Uhr oder von z.B. 15.30-16:30, bestimmen kann. Über Tipps oder einen Code würde ich mich sehr freuen. Den Rest des EA´s sollte ich denke selber hin bekommen. Vielen Dank für die Hilfe schon mal.

Mfg

traderdoc 28.05.16 22:55

Über Zeitranges ist hier in diesem Forum bzw. in der ForexFabrik schon viel geschrieben worden. Einfach mal die Suchfunktion anschmeissen.

Was mich aber immer wieder wundert, ist die Aussage einiger User hier, die meinten eigentlich vom Programmieren und insbesondere von MQL nur unzureichend Ahnung zu haben, aber dicke EAs programmieren wollen.

He Leute, ich habe mich mit der Doku und vielen lauffähigen EAs hingesetzt und habe in vielen Wochen und Monaten, dieses EAs Zeile für Zeile auseinander genommen, habe jeden Befehl, jede Funktion mehrmals in den Dokus nachgeschagen, bevor ich mich an einen EA getraut habe.

Ich glaube, dass sich so mancher das Proggen hier einfach machen will, indem er vorgefertigte Bausteine glaubt, aneinander setzen zu können. Das wird in der Regel nix, das sieht man u.a. an @MA-EA mit seinen Verständnisschwierigkeiten beim Einsatz des einfachen CCI-Indikators.

Das ist wie bei jeder Lehre, da bekommt man doch auch nicht die Aufgaben zu lösen, die die Lehrlinge im 2. oder 3. Lehrjahr bekommen. Da heißt es erst einmal Grundlagen pauken!!

traderdoc

ralfbenker 29.05.16 19:31

Das kann ich nur bestätigen. Ständig in die Referenz schauen, viel Code lesen(und natürlich auch versuchen zu verstehen) und nicht gleich mit Riesenprojekten anfangen. Sicher sind die besser dran, die schon die ein oder andere Programmiersprache beherschen. Aber mit Ausdauer lässt sich vieles Lernen.
Ich selbst hab vor einem halben Jahr mit mql4 angefangen und merke ständig, dass ich meine ersten EA-Versuche heute komplett anders geschrieben hätte.
Aber so ist das eben wenn man lernt.
mql ist zwar nicht die komplizierteste Sprache aber so nebenbei in 5 Minuten wird man da sicher kein Ass.

ralfbenker 02.06.16 11:58

So, jetzt hab ich auch mal ne Frage zur Zeitfensterprogrammierung
Ich finde ja diese Variante mit Strings ganz chic:

PHP-Code:

if ((TimeCurrent() >= StrToTime(TimeToStr(TimeCurrent(), TIME_DATE) + " " Start1
   && 
TimeCurrent() <= StrToTime(TimeToStr(TimeCurrent(), TIME_DATE) + " " Ende1)) 

(kann sein dass die Klammern jetzt nicht stimmen, hab das nur schnell rauskopiert)

Der Nachteil liegt bei der Optimierung weil ich die Strings(Änderung der Zeiten) nicht in die Optimierung einbeziehen kann.

Hatte jetzt die Idee abzufragen, ob der EA im Optimierungsmode läuft und dann die Eingaben (Stunde/Minute) über Integervariablen zu machen und danach in Strings umzuwandeln. Also so in etwa:

if (IsOptimation())
{
//Umwandlung Integer in Strings und Uhrzeiten ersetzen
}

Gibts vielleicht noch ne einfachere Lösung ?

ralfbenker 03.06.16 09:08

Liste der Anhänge anzeigen (Anzahl: 1)
Hab mich wahrscheinlich doof ausgedrückt. Ich möchte im Strategietest während der Optimierung verschiedene Zeiten testen, also zB. 09:00 Uhr bis 10:00 in 10 min-Schritten. Leider kann man bei Strings im Tester keinen Anfangs- ,Endwert und Schrittweite angeben. (siehe Grafik) Deshalb meine Idee, für die Optimierung dies über Umwandlung von Integer zu Strings zu machen.

Natürlich gäbe es die Möglichkeit, die Zeiten im EA von vornherein als Integervariablen für Stunden und Minuten getrennt anzugeben. Aber ich fand eben die Variante mit den Stunden und Minuten in einem String ganz gut.

SusanneH 03.06.16 13:28

Hi Ralf,

geht denke ich nur so wie von dir erwähnt, da man ja für den Tester einstellbare Schritte (Steps) benötigt.

PHP-Code:

extern int StartHour=8;
extern int StartMinute=0;
extern int EndHour=17;
extern int EndMinute=59;

datetime starttime=StringToTime(IntegerToString(StartHour)+":"+IntegerToString(StartMinute));
   
datetime endtime=StringToTime(IntegerToString(EndHour)+":"+IntegerToString(EndMinute));
   Print(
starttime," - "endtime); 


ralfbenker 03.06.16 14:13

Danke Susanne, hab ich mir fast gedacht.

Dann mach ich mir mal ne standartisierte Funktion die mir die Zeiten im Optimierungsmodus umwandelt :-)


Alle Zeitangaben in WEZ +2. Es ist jetzt 12:07 Uhr.

Powered by vBulletin® Version 3.8.5 (Deutsch)
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
SEO by vBSEO 3.6.1
Powered by vBCMS® 2.7.0 ©2002 - 2024 vbdesigns.de
Copyright ©2009 - 2023 by Expert-Advisor.com - Das Metatrader Forum