|
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 |
|
|||
Handelszeiten für EA festlegen
Guten Morgen zusammen,
ich würde meinem EA gerne mitteilen wann er handeln darf und wann eben nicht. Das würde auch die Qualität der Backtestergebnisse deutlich verbessern. Am Besten geeignet scheint mir ein eigener Indikator, der die Bedingung prüft und einen Buffer mit 0 oder 1 beschreibt. (0=notrade, 1=trade) Wichtig hierfür sind die Wochentage (Abfrage mit 0-6 möglich) und die maßgebende Uhrzeit, die ich gern bei jedem Bar auslesen würde. Handelszeiten sind Montag-Freitag von 09-12 und 14-17. Wenn die Bedingung bei dem Bar zutrifft soll der Buffer auf 1 oder '"trade" gesetzt werden und der EA soll diesen via iCustom auslesen. Könnt ihr mir bei der Umsetzung helfen? Alternative Lösungsideen sind natürlich ebenfalls sehr willkommen. Grüße, Dan Geändert von feelfree (10.03.13 um 07:21 Uhr) Grund: korrigiert |
|
|||
Warum denn erst mit einem Indikator um den dann auszulesen ?
Das kannst du doch alles mit deinem EA machen. |
|
|||
Das glaub ich dir gern aber ich hab absolut keine Ahnung wie ich das umsetzen bzw. scripten soll. Bei einem Indikator weiß ich jetzt zumindest wie ich die Buffer auslesen und verwerten kann.
Ich bin aber jederzeit bereit alles Nötige zu lernen. Je mehr desto besser. LG, Dan |
|
|||
OK, dann mal Schritt für Schritt (habe gerade ein bischen Zeit)
Erst mal die Eingabeparameter: (sollte Selbsterklärend sein) Code:
extern bool MON = true; extern bool TUE = true; extern bool WED = true; extern bool THU = true; extern bool FRI = true; extern int StartHour = 10; extern int EndHour = 12; Code:
int CurrentTime; bool TradingDay[6]= { false, false, false, false, false, false }; Aufgepasst: Die Elemente des Array passen genau zu den Wochentagen von DayOfWeek(). Code:
void init() { if(MON) TradingDay[1]=true; if(TUE) TradingDay[2]=true; if(WED) TradingDay[3]=true; if(THU) TradingDay[4]=true; if(FRI) TradingDay[5]=true; } Code:
bool TradingTime() { CurrentTime = TimeHour(TimeCurrent()); if (StartHour < EndHour) { if ((CurrentTime < StartHour) || (CurrentTime >= EndHour)) return(false); } if (StartHour > EndHour) { if ((CurrentTime < StartHour) && (CurrentTime >= EndHour)) return(false); } return(true); } Code:
int start() { if (TradingDay[DayOfWeek()] == false) return(0); if (TradingTime() == false) return(0); //EA Code //... } Das ist vieleicht die einfachste Möglichkeit, die am wenigsten Code braucht. Gruß naranjoe |
|
|||
Joe, du bist echt der Hammer.
Die Zeitabfrage hab ich dank deiner Hilfe bereits umsetzen können und jetzt werde ich mich mal an die Wochentage machen. Grüße Dan |
|
|||
Danke !
Kann man ruhig mal wieder hoch holen und sich für die Unterstützung bedanken.
Vielen Dank Wieder etwas Verlust weggeschaufelt. |
|
|||
Hallo zusammen,
wer kann mir einen Zeitfilter in den EA "einbauen" ? Hab es probiert, wie oben beschrieben. Aber der EA arbeitet munter weiter, ohne das "Zeitfenster" zu beachten. Da ich kein "Plan" vom programmieren habe, brauche ich etwas Hilfe. Also der EA sollte vor allem nur nachts z.B. 22:30 bis 02:30 arbeiten. Es sollte Sonntag bis Freitag einstellbar sein, Start und Endzeit mit Stunde und Minuten und nach Lokalzeit arbeiten. Das Zeitfenster sollte auch ein und abschaltbar sein. Dann noch die Frage, was passiert mit den offenen Orders, wenn die Zeit abgelaufen ist ( als z.B. 02:30 ) ? Automatisch schließen lassen ( auch wenn die Position im Minus ist ) oder die offenen Orders abarbeiten lassen ? Viele Grüße PS: ein weiterer Wunsch wäre, ein Tailingstop, der auch alle 5 offenen Tades verarbeitet, nicht nur den letzten Trade |
Lesezeichen |
Stichworte |
ea, expert-advisor, handelszeiten, mql4, programmierung, trading zeiten, zeiten |
Themen-Optionen | Thema durchsuchen |
Ansicht | |
|
|