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.

Login
Benutzername:
Kennwort:


Statistik
Themen: 4978
Beiträge: 43260
Benutzer: 7.223
Aktive Benutzer: 75
Links: 84
Wir begrüßen unseren neuesten Benutzer: Mane
Mit 2.475 Benutzern waren die meisten Benutzer gleichzeitig online (16.01.20 um 22:38).
Neue Benutzer:
vor 20 Stunden
- Mane
vor 2 Wochen
- AlbertZiz
vor 2 Wochen
- michak
vor 2 Wochen
- Amateur
vor 2 Wochen
- infos1982

Onlineuser
'Wer ist online' anzeigen Benutzer: 0
Gäste: 137
Gesamt: 137
Team: 0
Team:  
Benutzer:  
Freunde anzeigen

Empfehlungen

Thema geschlossen
 
Themen-Optionen Thema durchsuchen Ansicht
  #11 (permalink)  
Alt 05.04.18
Mitglied
 
Registriert seit: Dec 2017
Ort: 76891
Beiträge: 126
Angel befindet sich auf einem aufstrebenden Ast
Standard

Das Problem ist, dass ich - trotz umfangreicher Recherche, hier im Forum wie auch dem Quälen diverser Suchmaschinen - nicht umsetzen kann, wie man die Wochenenden eliminiert. Es hört sich so einfach an "Zähle Z hoch, multipliziere es mit 86400 und definiere darüber den Tag, ab dem der Pivot gezeichnet werden soll" und dann fällt er auf einen Sonntag / Samstag und beim Freitag darauf wird die Linie umso länger.
Gibt es denn keine Funktion, die den Wochentag zurückliegender Tage abfragt oder generell zurückliegende Daten abfragt oder so? Mit Bedingungen könnte man dann arbeiten. Bisher fand ich immer nur Abfragemöglichkeiten der aktuellen Zeiten / Tage / Bars usw.
__________________
MQL4-Interessiert... und noch gaaaanz am Anfang
  #12 (permalink)  
Alt 05.04.18
AVT AVT ist offline
Elite Mitglied
 
Registriert seit: Mar 2018
Ort: Hamburg
Beiträge: 612
AVT befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von Angel Beitrag anzeigen
Gibt es denn keine Funktion, die den Wochentag zurückliegender Tage abfragt oder generell zurückliegende Daten abfragt oder so? Mit Bedingungen könnte man dann arbeiten. Bisher fand ich immer nur Abfragemöglichkeiten der aktuellen Zeiten / Tage / Bars usw.
Ich habe in meinen Indikatoren immer diese Bedingung:
Code:
for(i=limit;i>=0;i--) // countdown to current
{  

   // == Mo-Fr
   if( (   TimeDayOfWeek(Time[i])>=1  // Montag
        && TimeDayOfWeek(Time[i])<=5) // Freitag
   { machwas() ; }

}
Vielleicht kannst Du damit was anfangen. AVT
  #13 (permalink)  
Alt 05.04.18
Mitglied
 
Registriert seit: Dec 2017
Ort: 76891
Beiträge: 126
Angel befindet sich auf einem aufstrebenden Ast
Standard

Also, ich versuchte es mal nachzuvollziehen.

PHP-Code:
TimeDayOfWeek() 
liefert mir den aktuellen Tag der Woche in einem Zahlenwert, z.B. Montag ist "1" usw.

Wenn ich nun am Donnerstag zB.
PHP-Code:
TimeDayOfWeek(1
programmiere, bekomme ich immer noch den Zahlenwert des aktuellen Tages (Donnerstag, also "4"), nur nicht des Montags ("1").

So auch bei

PHP-Code:
TimeDayOfWeek(Time[i]) 
"Time([i]) kann egal welchen Wert annehmen, ich bekomme immer den aktuellen Tag(eswert) von heute.

Kann das sein?
__________________
MQL4-Interessiert... und noch gaaaanz am Anfang
  #14 (permalink)  
Alt 16.04.18
Mitglied
 
Registriert seit: Dec 2017
Ort: 76891
Beiträge: 126
Angel befindet sich auf einem aufstrebenden Ast
Standard

Ok. Die Feiertage zu berücksichtigen ist nicht einfach. Überhaupt ist die Programmierung in Bezugnahme vergangener Zeiten bzw. Wochentage unheimlich schwierig. Sollen noch mehr als der aktuelle WOCHENpivotpunkte hinzu kommen, stoßen meine Fähigkeiten definitiv an meine Grenzen.

Mal ein Nebenthema: Hat jemand eine Idee, wie ich zB. eine Indikatorlinie auf Knopfdruck bzw. Tastendruck einer definierten Taste ein- und wieder ausblenden kann?
__________________
MQL4-Interessiert... und noch gaaaanz am Anfang
  #15 (permalink)  
Alt 02.05.18
Mitglied
 
Registriert seit: Dec 2017
Ort: 76891
Beiträge: 126
Angel befindet sich auf einem aufstrebenden Ast
Standard

So, nach sehr viel hin- und herüberlegen und -programmieren und unzähligen Verwünschungen habe ich es herausgefunden. Hier das Prinzipielle:

PHP-Code:
   int Vortag=0;
   
int DOW;// DOW="DayOfWeek

void OnInit()
  {  
      
Vortag=0;
      
ObjectsDeleteAll();
  }

int start()
   
// Tagespivotpunkte
// Aktueller Tag 0     
{
   
Vortag=Vortag+1;
   
DOW=DayOfWeek(); // "DOW" wird der akuelle Tag der Woche zugewiesen
                 
DH1=iHigh(NULL,PERIOD_D1,Vortag);
                 
DC1=iClose(NULL,PERIOD_D1,Vortag);
                 
DL1=iLow(NULL,PERIOD_D1,Vortag);
                 
DPP_0 NormalizeDouble((DH1+DL1+DC1)/3,Digits);          
                 
ObjectCreate(0,("Tages-Pivot Tag 0"),OBJ_TREND,0,(StringToTime("23:59")-(0*86400)),DPP_0,(StringToTime("00:01")-(0*86400)),DPP_0);  // Term linke Seite: Definiert (rechtes) Ende der Linie, Term rechte Seite definiert (linken) Anfang der Linie    

// Tag 1
Vortag=Vortag+1;    
if (
DOW==1Vortag=Vortag-1// Wenn beim Starten und Betrachten des EA DOW=Montag=1 dann wird der Vortag (Sonntag) zwar hochgezählt (Vortag = Vortag +1), aber wegen der Bedingung gleich wieder abgezogen, damit Freitag 
                             // durch ein hochgezählten Samstag und Sonntag nicht falsch hochgezählt wurde, sondern exakt ein Handelstag (Tageskerze) weniger ist als Montag         
                  
DH2=iHigh(NULL,PERIOD_D1,Vortag);
                  
DC2=iClose(NULL,PERIOD_D1,Vortag);
                  
DL2=iLow(NULL,PERIOD_D1,Vortag);
                  
DPP_1 NormalizeDouble((DH2+DL2+DC2)/3,Digits);
                  
ObjectCreate(0,("Tages-Pivot Tag 1"),OBJ_TREND,0,(StringToTime("23:59")-(1*86400)),DPP_1,(StringToTime("00:01")-(1*86400)),DPP_1);                       
....
// Tag 2  
Vortag=Vortag+1;    
if (
DOW==1||DOW==2Vortag=Vortag-1;  
...
// Tag 3   
Vortag=Vortag+1;   
if (
DOW==2||DOW==3Vortag=Vortag-1;   
...
// Tag 4  
Vortag=Vortag+1
if (
DOW==3||DOW==4Vortag=Vortag-1;      
...
// Tag 5 
Vortag=Vortag+1
if (
DOW==4||DOW==5Vortag=Vortag-1
Ich hoffe, es ist einleuchtend.
Besonders die Schnipsel (ersichtlich aus Tag 2 bis Tag 5) sind der Schlüssel. In der Zeit 23:00 - 24:00 Uhr wird kein Pivot angezeigt und ab 24:00 Uhr sollte man in einen anderen Timeframe und zurück wechseln, damit die neuen Pivots angezeigt werden.
Eigentlich wollte ich das Ganze mittels Schleife gestalten, aber das haut nicht so einfach hin und es wird schnell unübersichtlich, so dass eine Fehlersuche fast unmöglich wird. Ich bin froh, es so hinbekommen zu haben.

So, nun zu meinem neuen (alten) Projekt in einem anderen Threat, in welchem ich den Hintergrund zwischen zwei Zeitpunkten ändern und darstellen will, hier ist angedacht z.B. bei Schnitt / Überschreiten der EMA10 der EMA20 (M15) bis zum Unterschreiten farbig darzustellen. Die y-Werte können durchaus sehr weit gegriffen sein, also never-reached-Konstanten. Das Ganze wandert natürlich im Chart mit fortlaufender Zeit nach links, also so leicht finde ich das gar nicht! Hat jemand eine Idee? Wie gesagt, dazu eröffne ich einen neuen Threat und dieser hier kann geschlossen werden...
__________________
MQL4-Interessiert... und noch gaaaanz am Anfang
Thema geschlossen

Lesezeichen

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 +2. Es ist jetzt 05:45 Uhr.





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