Jump to content


Photo

breakout time range

breakout eas mql4

Wichtiger Hinweis für Besucher der Community!

Das Erstellungsdatum des von Dir aufgerufenen Themas liegt bereits einige Zeit zurück. Wir möchten darauf hinweisen, den Inhalt der Diskussion auf seine Aktualität hin zu prüfen. Weitere Informationen findest Du auf dieser Seite.

  • Please log in to reply
7 replies to this topic

#1 yannik0802

yannik0802

    penny-pincher

  • Rookie
  • Pip
  • 7 posts
  • 14 thanks

Posted 05 February 2016 - 06:56 PM

Hallihallo :)

ich beschäftige mich seit kurzem mit der Programmierung in MQL4 und plane nun zur Übung einige Strategien zu programmieren.

 

Beginnen wollte ich mit der breakout open range strategie, bei der jeweils das Hoch und Tief der Periode zwischen 08:00 und 09:15 eingezeichnet wird. Es soll gehandelt werden sobald nach 09:15 der Kurs außerhalb der range schließt.

 

Die Frage ist wie bestimme ich diese Werte jetzt? Ich hab schon rausgefunden wie man ein Tageshoch bestimmen kann. Wie ich rausgefunden habe, funktioniert das so:

 

 

double Res240 = iHigh(Symbol(),0,(iHighest(Symbol(),0,MODE_HIGH,Hour(),1)));// Tageshoch 

 

Ich verstehe allerdings nicht ganz wie ich das Hoch einer bestimmten Zeitperiode, z.b. eben von 8 bis 09:15 rausfinden kann, kann mir da zufällig jemand hier helfen?

Vielen Dank schonmal im Vorraus :)


  • 0

Thanked by 4 Members:
Vola , chimbonda , oldschuren , ajkonly

#2 conglom-o

conglom-o

    Heatball User

  • *_skilled
  • 2,206 posts
  • 13785 thanks
  • Wohnsitz:O-Town

Posted 05 February 2016 - 10:54 PM

Du könntest das bspw. in der M15 Historie abfragen. Ganz ohne Quelltext getreu dem Motto: wenn die aktuelle Kerze als Open Time 9:15h hat, suche das Hoch/Tief der letzten 5 abgeschlossenen Kerzen. Das widerum geht mit iHighest in Kombination mit iHigh. Sicherlich gibt es elegantere Lösungen - nur eben nicht am Freitag abend crazy.gif .


  • 1

Wann kaufen? Schau in den Investment Kalender auf Marktgedanken.

Meine Trophäen (dedicated to Vola *g*): conglom-o.gif b2m.gif lukas.gif licens.gifmarcus.gif germano.gif


Thanked by 5 Members:
Vola , chimbonda , oldschuren , ajkonly , yannik0802

#3 yannik0802

yannik0802

    penny-pincher

  • Rookie
  • Pip
  • 7 posts
  • 14 thanks

Posted 06 February 2016 - 02:32 PM

Hm okay danke schonmal.

Aber wie genau setze ich das dann um? Könntest du mir eventuell einen Ansatz verraten? Ich bin echt am Verzweifeln mit den Uhrzeiten im MT4 :D Theoretisch muss ich ja irgendwie folgendes sagen:

 

If (TimeLocal()==9.15) {find?! iHigh(Symbol(),PERIOD_M15,(iHighest(Symbol(),PERIOD_M15,MODE_HIGH,5,1}

 

Das stimmt aber von vorne und hinten nicht und ich finde leider nicht raus wie es richtig funktioniert gossip.gif

 

Ich möchte das Hoch der Periode zwischen 8 und 9:15 dann als Wert rausbekommen, sodass ich halt wie folgt weitermachen kann.

 

 

If (Close[1]>Hochpunkt_der_Range) { signal = "long";}

 

 

Nur weiss ich eben leider nicht wie ich auf den Wert des Hochpunkts komme. Desweiteren müsste ich noch irgendwie einfügen, dass zwischen 8 und 09:15 kein trading erlaubt ist, evtl über einen bool-Befehl, der auf true geht wenn wir uns zwischen 8 und 9:15 befinden?

Also evtl so:
 

 

bool openingtime;If (08.00<TimeLocal()<09.15)   {bool openingtime=true;}else {bool opening time=false;} 

 

 

Dann hätte ich die beiden Bedingungen die ich möchte, allerdings macht der Code so wie erwähnt keinen Sinn und ich komme nicht weiter. Ich hoffe mir kann irgendjemand hier helfen.


Edited by whipsaw, 07 February 2016 - 02:28 PM.

  • 0

Thanked by 4 Members:
Vola , chimbonda , oldschuren , ajkonly

#4 conglom-o

conglom-o

    Heatball User

  • *_skilled
  • 2,206 posts
  • 13785 thanks
  • Wohnsitz:O-Town

Posted 06 February 2016 - 03:25 PM

Du bist auf jeden Fall auf dem richtigen Weg pelo1.gif.

 

https://docs.mql4.com/series/ihighest
-> sucht die Kerze mit dem höchsten Wert

 

https://docs.mql4.com/series/ihigh
-> gibt das Hoch einer bestimmten Kerze aus

 

https://forum.mql4.com/38196
-> zeigt Beispiele zur Kombination

 

https://docs.mql4.com/dateandtime
-> zeigt die Funktionen zur Abfrage von Uhrzeiten. Für Dich sind da sicherlich TimeHour und TimeMinute interessant wink.gif.


  • 3

Wann kaufen? Schau in den Investment Kalender auf Marktgedanken.

Meine Trophäen (dedicated to Vola *g*): conglom-o.gif b2m.gif lukas.gif licens.gifmarcus.gif germano.gif


Thanked by 5 Members:
Kleinerbroker , Mythos , oldschuren , yannik0802 , ajkonly

#5 yannik0802

yannik0802

    penny-pincher

  • Rookie
  • Pip
  • 7 posts
  • 14 thanks

Posted 06 February 2016 - 04:59 PM

Dankesehr, da werd ich mich mal durcharbeiten pelo1.gif Falls ich nicht klarkomme, melde ich mich nochmal zu Wort mocking.gif


  • 0

Thanked by 1 Member:
Vola

#6 yannik0802

yannik0802

    penny-pincher

  • Rookie
  • Pip
  • 7 posts
  • 14 thanks

Posted 06 February 2016 - 08:37 PM

Hm ich bin noch nicht wirklich weitergekommen, ich habs zwar geschafft irgendwie die Zeit zu bestimmen, aber im backtest macht er dann nicht das was er soll.

 

Ich hatte das jetzt so versucht:

 

 

 

extern int range_start_time_hour=8;extern int range_start_time_minute=0;extern int range_end_time_hour=9;extern int range_end_time_minute=15;datetime fromDT = TimeDay(TimeCurrent()) && TimeHour(range_start_time_hour) && TimeMinute(range_start_time_minute);datetime toDT = TimeDay (TimeCurrent()) && TimeHour(range_end_time_hour) && TimeMinute(range_end_time_minute);int fromBar = iBarShift(NULL, 0, fromDT,0),toBar = iBarShift(NULL, 0, toDT,0),length = fromBar - toBar + 1,HHbar = iHighest(NULL,0, MODE_HIGH, length, toBar),LLbar = iLowest(NULL,0, MODE_LOW, length, toBar);double HH = High[HHbar], // iHigh(NULL,0, HHbar)LL = Low[LLbar]; // iLow(NULL,0, LLbar) 

 

 

 

aber irgendwas stimmt daran nicht, ich weiss einfach nicht wie ich es schaffe eine konkrete Uhrzeit(z.B. heute 8 Uhr) auszudrücken.

 

Versucht hatte ich das wie erwähnt so:

 

 

TimeDay(TimeCurrent() && TimeHour(8) && TimeMinute(15)) 

 

 

 

aber das funzt nicht. Hat jemand evtl eine andere Idee für mich? Google bringt mich nämlich auch nicht wirklich weiter. gossip.gif


Edited by whipsaw, 07 February 2016 - 02:28 PM.

  • 0

#7 conglom-o

conglom-o

    Heatball User

  • *_skilled
  • 2,206 posts
  • 13785 thanks
  • Wohnsitz:O-Town

Posted 06 February 2016 - 09:18 PM

Ein logisches UND (=&&) macht da auch keinen Sinn. Ich würde so vorgehen: Wenn die Startuhrzeit der aktuellen M15 Kerze 9:15h entspricht, dann suche das Hoch/Tief der letzten fünf M15 Kerzen.

if (TimeHour(iTime(NULL,PERIOD_M15,0))==9 && TimeMinute(iTime(NULL,PERIOD_M15,0))==15) {   double MyHigh = iHigh(Symbol(),Period_M15,iHighest(Symbol(),Period_M15,MODE_HIGH,5,1));   double MyLow = iLow(Symbol(),Period_M15,iLowest(Symbol(),Period_M15,MODE_LOW,5,1));}

Ich habe es nun nicht überprüft und ist auch sicherlich nicht die eleganteste Variante, aber eventuell hilft es Dir schon mal weiter.


  • 0

Wann kaufen? Schau in den Investment Kalender auf Marktgedanken.

Meine Trophäen (dedicated to Vola *g*): conglom-o.gif b2m.gif lukas.gif licens.gifmarcus.gif germano.gif


Thanked by 3 Members:
Vola , Kleinerbroker , yannik0802

#8 yannik0802

yannik0802

    penny-pincher

  • Rookie
  • Pip
  • 7 posts
  • 14 thanks

Posted 06 February 2016 - 09:47 PM

Ok das hilft mir schonmal weiter, dankesehr bye2.gif


  • 0

Thanked by 2 Members:
Vola , conglom-o

Wichtiger Hinweis für Besucher der Community!

Das Erstellungsdatum des von Dir aufgerufenen Themas liegt bereits einige Zeit zurück. Wir möchten darauf hinweisen, den Inhalt der Diskussion auf seine Aktualität hin zu prüfen. Weitere Informationen findest Du auf dieser Seite.



Also tagged with one or more of these keywords: breakout, eas, mql4

0 user(s) are reading this topic

0 members, 0 guests, 0 anonymous users