|
Startseite | Registrieren | Hilfe | Benutzerliste | Kalender | Suchen | Heutige Beiträge | Alle Foren als gelesen markieren |
Programmierung MQL4 Hier gehts rund ums Programmieren in MQL4. |
|
Themen-Optionen | Thema durchsuchen | Ansicht |
|
|||
Handelszeit in MT4 begrenzen - Vortageshoch/tief
Hallo zusammen,
ich bitte euch um einen Rat! Und zwar, ob es in MT4 möglich ist, das Vortageshoch bzw. Vortagestief in einem Zeitfenster von 8 Uhr bis 22 Uhr abzufragen und anzuzeigen. Könnt ihr mir bitte einen Tipp geben, mit welcher Funktion ich das anstelle? Mein Broker zeigt mir DAX rund um die Uhr. Mich interessieren aber nur die Handelszeiten von 8 Uhr bis 22 Uhr. Ich habe zunächst an iHigh im Tageschart gedacht. Aber dort sind ja auch die Hochs und Tiefs in den Zeiten von 0 bis 8 Uhr und von 22 bis 24 Uhr vorhanden: iHigh(Symbol(),PERIOD_D1,1) Außerdem würde ich gern den Handel des EA nur auf den Zeitrahmen von 8 bis 22 Uhr begrenzen. Ich würde euch wirklich sehr dankbar sein, wenn mir jemand eine Idee gibt! Danke schön! |
|
|||
Globale Variablen
Code:
extern string Open_Orders_From = "07:00:00"; extern string Open_Orders_Till = "21:15:00"; Code:
datetime TC = TimeCurrent(); datetime F = StrToTime(TimeToStr(TimeCurrent(), TIME_DATE) + " " + Open_Orders_From); datetime T = StrToTime(TimeToStr(TimeCurrent(), TIME_DATE) + " " + Open_Orders_Till); Code:
if...(TC>F && TC<T)... |
|
|||
Zitat:
|
|
|||
Leute, bitte um Hilfe! Lässt sich dieser Code vielleicht so ändern, dass ich das Vortageshoch bzw. -tief NUR von 8 bis 22 Uhr angezeigt bekomme? Im Moment ist es ja so, dass wenn der Broker die Kurse rund um die Uhr stellt, dann wird das Vortageshoch bzw. -tief auch in der Zeit zw. 24 bis 8 Uhr angezeigt.. Danke für eure Tipps!
int init() { //---- indicators //---- return(0); } //+------------------------------------------------------------------+ //| Custom indicator deinitialization function | //+------------------------------------------------------------------+ int deinit() { //---- ObjectDelete("LineHigh"+Symbol()); ObjectDelete("LineLow"+Symbol()); ObjectDelete("LineClose"+Symbol()); //---- return(0); } //+------------------------------------------------------------------+ //| Custom indicator iteration function | //+------------------------------------------------------------------+ int start() { //---- ObjectDelete ("LineHigh"+Symbol()); ObjectDelete ("LineLow"+Symbol()); ObjectDelete ("LineClose"+Symbol()); ObjectCreate ("LineHigh"+Symbol(), OBJ_HLINE, 0,0, iHigh(Symbol(),PERIOD_D1,1)); ObjectSet ("LineHigh"+Symbol(), OBJPROP_COLOR, High_Color); ObjectSet ("LineHigh"+Symbol(), OBJPROP_WIDTH, High_Width); ObjectCreate ("LineLow"+Symbol(), OBJ_HLINE, 0,0, iLow(Symbol(),PERIOD_D1,1)); ObjectSet ("LineLow"+Symbol(), OBJPROP_COLOR, Low_Color); ObjectSet ("LineLow"+Symbol(), OBJPROP_WIDTH, Low_Width); ObjectCreate ("LineClose"+Symbol(), OBJ_HLINE, 0,0, iClose(Symbol(),PERIOD_D1,1)); ObjectSet ("LineClose"+Symbol(), OBJPROP_COLOR, Close_Color); ObjectSet ("LineClose"+Symbol(), OBJPROP_WIDTH, Close_Width); //---- return(0); } |
|
|||
Zitat:
|
|
|||
Code:
string TimeStart = "08:00"; string TimeEnd = "22:00"; if (OldBar != iTime(Symbol(), Period_D1, 0) { int candlestart = iBarShift(Symbol(), Period_M5, StrToTime(TimeStart) - 86400; int candleend = iBarShift(Symbol(), Period_M5, StrToTime(TimeEnd) - 86400; int candlehighest = iHighest(Symbol(), Period_M5, MODE_HIGH, candlestart-candleend, candleend); int candlelowest = iHighest(Symbol(), Period_M5, MODE_LOW, candlestart-candleend, candleend); double high = iHigh(Symbol(), Period_M5, candlehighest); double low = iLow(Symbol(), Period_M5, candlelowest); } traderdoc
__________________
Ich erfülle Euch gern Eure EA-, Indikator- und Script-Programmierungswünsche auf Honorarbasis. |
|
|||
Hallo traderdoc,
Dein Code gefällt zur Berechnung Vortageshoch/tief ist ja wieder mal genial einfach. Hab mir da bei einer Xetra-Dax Berechnung des Vortageshochs/tiefs furchtbar einen abgebrochen. Kurze Frage: Was passiert Montags wenn z.B. Freitag 23:00 Uhr der letzte Kurs gestellt wird und Montags um 01:00 Uhr der erste Kurs (wie bei Admiral Markets)? Sind dann 86400 Sekunden auch 24 Stunden. Ich hatte bei meiner Berechnung immer Probleme mit Montagen und verkürzten Handelstagen. Ich hab das über: ArrayCopyRates(rates_m30,Symbol(),PERIOD_M30); versucht und dann den Zeitstempel des Arrays rates_m30[zaehler],[0] abgefragt. |
|
|||
Ich konnte leider mein eigenes Post nicht korrigieren.
Da fehlt vor der } folgende Zeile: OldBar = iTime(Symbol(), Period_D1, 0); traderdoc
__________________
Ich erfülle Euch gern Eure EA-, Indikator- und Script-Programmierungswünsche auf Honorarbasis. |
|
|||
Zitat:
Z. B. die über DayOfWeek() zu gehen. Eine 1 wird zurückgegeben, wenn es ein Montag ist, dann müsste - 3*86400 stehen. Und bei 0 für Sonntag und 6 für Samstag würde die Abfrage nicht durchlaufen. Auf bestimmte Feiertage müsste dann auch noch reagiert werden. Man könnte auch über die Feststellung der Kursstellung an dem zu untersuchenden Tag gehen. Keine Kursstellung - keine Abfrage, etc. traderdoc
__________________
Ich erfülle Euch gern Eure EA-, Indikator- und Script-Programmierungswünsche auf Honorarbasis. |
Lesezeichen |
Stichworte |
mql4, mt4, programmierung, programmierung metatrader, vortageshoch, vortagestief, zeitfenster |
Themen-Optionen | Thema durchsuchen |
Ansicht | |
|
|