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==1) Vortag=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==2) Vortag=Vortag-1;
...
// Tag 3
Vortag=Vortag+1;
if (DOW==2||DOW==3) Vortag=Vortag-1;
...
// Tag 4
Vortag=Vortag+1;
if (DOW==3||DOW==4) Vortag=Vortag-1;
...
// Tag 5
Vortag=Vortag+1;
if (DOW==4||DOW==5) Vortag=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...