|
Programmierung MQL4 Hier gehts rund ums Programmieren in MQL4. |
|
Themen-Optionen | Thema durchsuchen | Ansicht |
|
|||
Nun, wie gesagt, in der Regel liegt es im Detail.
Mal nur so nebenbei, die OnTick()-Funktion wird nur durchlaufen, wenn auch ein neuer Tick anliegt. Wenn ein Handelsinstrument erst prinzipiell ab 08:00 gehandelt wird, dann wird definitiv diese Funktion auch vor 08:00 nicht durchlaufen, sondern eben erst mit dem ersten Tick! traderdoc
__________________
Ich erfülle Euch gern Eure EA-, Indikator- und Script-Programmierungswünsche auf Honorarbasis. |
|
|||
Ja das habe ich inzwischen auch gemerkt, macht ja auch Sinn. Hast du denn einen CFD-Broker mit einem Instrument dass erst um 8 Uhr startet? Wäre mal interessant einfach am Anfang der Tickfunktion den Höchstkurs des Vortages ausgeben zu lassen. Ist ja nur ein Einzeiler.
|
|
|||
Na bei welchem Broker und auf welchem Handelsinstrument hattest Du den diese Beobachtung gemacht?
traderdoc
__________________
Ich erfülle Euch gern Eure EA-, Indikator- und Script-Programmierungswünsche auf Honorarbasis. |
|
|||
Code:
void OnTick() { if (Hour() >= 8 && Minute() < 1 && !dayIsCorrect) { datetime today = StrToTime(StringConcatenate(Year(), "-", Month(), "-", Day())); datetime yesterday = TimeCurrent() - (60 * 60 * 18); datetime dayOfHigh = iTime(Symbol(), PERIOD_D1, 1); Print("Heute: ", today, ", Gestern: ", yesterday, ", Tag vom High: ", dayOfHigh, ", DY: ", TimeDay(yesterday), ", DY2: ", TimeDay(dayOfHigh)); if (TimeDay(yesterday) != TimeDay(dayOfHigh)) { return; } else { dayIsCorrect = true; } Das ist mein Code, anderer Code kann nicht ausgeführt werden wegem dem Return. Dieser Code wurde eine Minute lang ausgeführt, immer mit dem falschen Tageshoch ... Das kann echt nicht sein, wie soll man da traden??? 2016.09.05 08:01:01.633 SystemOfSystems DAX30,H1: open #25691365 buy 0.10 DAX30 at 10742.5 sl: 10581.4 ok 2016.09.05 08:00:59.008 SystemOfSystems DAX30,H1: Heute: 2016.09.05 08:00:59, Gestern: 2016.09.04 15:00:57, Tag vom High: 2016.09.02 00:00:00, DY: 4, DY2: 2 2016.09.05 08:00:58.680 SystemOfSystems DAX30,H1: Heute: 2016.09.05 08:00:58, Gestern: 2016.09.04 15:00:57, Tag vom High: 2016.09.02 00:00:00, DY: 4, DY2: 2 2016.09.05 08:00:58.493 SystemOfSystems DAX30,H1: Heute: 2016.09.05 08:00:58, Gestern: 2016.09.04 15:00:57, Tag vom High: 2016.09.02 00:00:00, DY: 4, DY2: 2 2016.09.05 08:00:57.321 SystemOfSystems DAX30,H1: Heute: 2016.09.05 08:00:57, Gestern: 2016.09.04 15:00:56, Tag vom High: 2016.09.02 00:00:00, DY: 4, DY2: 2 2016.09.05 08:00:57.008 SystemOfSystems DAX30,H1: Heute: 2016.09.05 08:00:57, Gestern: 2016.09.04 15:00:55, Tag vom High: 2016.09.02 00:00:00, DY: 4, DY2: 2 2016.09.05 08:00:56.914 SystemOfSystems DAX30,H1: Heute: 2016.09.05 08:00:56, Gestern: 2016.09.04 15:00:55, Tag vom High: 2016.09.02 00:00:00, DY: 4, DY2: 2 2016.09.05 08:00:55.102 SystemOfSystems DAX30,H1: Heute: 2016.09.05 08:00:55, Gestern: 2016.09.04 15:00:53, Tag vom High: 2016.09.02 00:00:00, DY: 4, DY2: 2 Es kann doch nicht sein dass das Tageshoch erst dann richtig ermittelt wird wenn ich bereits einen Trade abgesetzt habe??? Das ergibt doch gar keinen Sinn. |
|
|||
Das liegt daran das du das Wochenende vergisst.
Einmal ermittelst du das Datum von gestern was Sonntag der 4.9. war. Und mit iTime ermittelst du den letzten Handelstag was Freitag der 2.9. war. |
|
|||
Ah stimmt da muss ich noch etwas umbauen. Wie dumm von mir :-)
|
|
|||
Jep.
Am besten eine routine die eine drecrement auf dem datum durch führt, wenn der Wochentag Sonntag bzw. Samstag ist. Zum Prüfen gibt es da DayOfWeek. Achja und ein decrement vom 1. auf den letzten des Vormonates musst du beachten. Von daher Rate ich dir eine entsprechende Funktion/Methode zu bauen, die Tag,Monat und Jahr decrementieren kann. Gruß Zyr |
Lesezeichen |
Stichworte |
mql4, programmierung, programmierung metatrader, vortages-high, vortages-höchstkurs, vortageshoch |
|
|