Einzelnen Beitrag anzeigen
  #15 (permalink)  
Alt 02.05.18
Angel Angel ist offline
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