Metatrader Forum | Forex Expert-Advisor | Broker & Forex Tools
Zurück   Metatrader Forum | Forex Expert-Advisor | Broker & Forex Tools > Metatrader 4 > Programmierung MQL4

Programmierung MQL4 Hier gehts rund ums Programmieren in MQL4.


Portalsuche


Werbung

Login
Benutzername:
Kennwort:


Statistik
Themen: 3824
Beiträge: 36909
Benutzer: 6.083
Aktive Benutzer: 494
Links: 80
Wir begrüßen unseren neuesten Benutzer: Wombat
Mit 483 Benutzern waren die meisten Benutzer gleichzeitig online (21.04.16 um 17:12).
Neue Benutzer:
vor 4 Stunden
- Wombat
vor 19 Stunden
- idur
vor einem Tag
- DarthTrade...
vor einem Tag
- Eren
vor 2 Tagen
- Rene1504

Onlineuser
'Wer ist online' anzeigen Benutzer: 2
Gäste: 42
Gesamt: 44
Team: 0
Team:  
Benutzer:  fxnoob, Stier
Freunde anzeigen

Empfehlungen

Werbung

Like Tree2Likes
  • 1 Post By naranjoe
  • 1 Post By Nordlicht
Thema geschlossen
 
Themen-Optionen Thema durchsuchen Ansicht
  #1 (permalink)  
Alt 10.03.13
Premium Mitglied
 
Registriert seit: Mar 2013
Beiträge: 332
feelfree befindet sich auf einem aufstrebenden Ast
Standard 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
  #2 (permalink)  
Alt 10.03.13
Elite Mitglied
 
Registriert seit: Jun 2010
Ort: Trier
Beiträge: 116
naranjoe befindet sich auf einem aufstrebenden Ast
Standard

Warum denn erst mit einem Indikator um den dann auszulesen ?

Das kannst du doch alles mit deinem EA machen.
  #3 (permalink)  
Alt 10.03.13
Premium Mitglied
 
Registriert seit: Mar 2013
Beiträge: 332
feelfree befindet sich auf einem aufstrebenden Ast
Standard

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
  #4 (permalink)  
Alt 11.03.13
Elite Mitglied
 
Registriert seit: Jun 2010
Ort: Trier
Beiträge: 116
naranjoe befindet sich auf einem aufstrebenden Ast
Standard

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;
Interne Variablen:
Code:
int CurrentTime;
bool TradingDay[6]= { false, false, false, false, false, false };
Im init() fragen wir die Tage ab und setzen im Array Tradingday[] die Schalter entsprechend.
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; 
}
Dann die Abfrage der Zeit als bool die den Rückgabewert true oder false liefert.
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);
}
In Start() brauchst du dann nur noch die Abfrage für Wochentag und Trading Zeit.
Code:
int start() 
{
if (TradingDay[DayOfWeek()] == false) return(0);
if (TradingTime() == false) return(0);
//EA Code
//...
}
Ich habe hier die Möglichkeit der Abfrage des Wochentages über ein Array gelöst.
Das ist vieleicht die einfachste Möglichkeit, die am wenigsten Code braucht.

Gruß
naranjoe
Crashbulle likes this.
  #5 (permalink)  
Alt 11.03.13
Premium Mitglied
 
Registriert seit: Mar 2013
Beiträge: 332
feelfree befindet sich auf einem aufstrebenden Ast
Thumbs up

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
  #6 (permalink)  
Alt 08.02.15
Mitglied
 
Registriert seit: Jan 2015
Ort: Norddeutschland
Beiträge: 42
Nordlicht befindet sich auf einem aufstrebenden Ast
Standard Danke !

Kann man ruhig mal wieder hoch holen und sich für die Unterstützung bedanken.

Vielen Dank

Wieder etwas Verlust weggeschaufelt.
Crashbulle likes this.
  #7 (permalink)  
Alt 18.03.15
Neues Mitglied
 
Registriert seit: Apr 2012
Beiträge: 1
suntrader befindet sich auf einem aufstrebenden Ast
Standard

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
Angehängte Dateien
Dateityp: mq4 EA Green Hexane-TANPA EXPIRE.mq4 (5,9 KB, 40x aufgerufen)
Thema geschlossen

Lesezeichen

Stichworte
ea, expert-advisor, handelszeiten, mql4, programmierung, trading zeiten, zeiten


Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are aus
Pingbacks are aus
Refbacks are aus




Alle Zeitangaben in WEZ +1. Es ist jetzt 15:58 Uhr.



Der Wavesnode - Spam Firewall
-----------------------------------------------------------------------------------------------------------------------------
Powered by vBulletin® Version 3.8.5 (Deutsch)
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.
Powered by vBCMS® 2.7.0 ©2002 - 2017 vbdesigns.de
SEO by vBSEO 3.6.1
Copyright ©2009 - 2017 by Expert-Advisor.com - Das Metatrader Forum
MetaTrader bzw. MetaTrader 4 und MetaTrader 5 sind eingetragene Marken der MetaQuotes Software Corp.
-----------------------------------------------------------------------------------------------------------------------------