Einzelnen Beitrag anzeigen
  #9 (permalink)  
Alt 14.03.18
AVT AVT ist offline
Elite Mitglied
 
Registriert seit: Mar 2018
Ort: Hamburg
Beiträge: 612
AVT befindet sich auf einem aufstrebenden Ast
Standard

Zwischenbericht
Zitat:
Zitat von AVT Beitrag anzeigen
Die Idee: PERIOD_M1 benutzen und halt für jede Minute sehen, ob es ein neues High/Low gibt.
Mit der Hilfe von traderdoc und Leopold sieht der M1 Chart perfekt aus und es spielt keine Rolle, ob ich von 15:30-16:30 oder von 15:47- 16:03 gehen will WENN Period()==1 ist; relevanter Code-Snip dazu:
Code:
int TotalSecs=(StringToTime(RStopHour)-StringToTime(RStartHour));
int NoOfBars=TotalSecs/60/Period(); // core M1 without /Period()
string RStartTime, RStopTime, PStartTime, PStopTime;
static double Max, Min;
int Hval_index, Lval_index;
int i=iBarShift(NULL,PERIOD_M1,StringToTime(RStopHour));

for(i=limit;i>=0;i--) // MUST count down to zero, 250,249 ... 2,1,0
{
  // day, start, stop conditions
  // == core M1 calc:
  //Hval_index = iHighest(NULL,PERIOD_M1,MODE_HIGH,NoOfBars,i+1);
  //Lval_index = iLowest(NULL,PERIOD_M1,MODE_LOW,NoOfBars,i+1);
  Hval_index = iHighest(NULL,Period(),MODE_HIGH,NoOfBars,i+1);
  Lval_index = iLowest(NULL,Period(),MODE_LOW,NoOfBars,i+1);
  Max = High[Hval_index];
  Min = Low[Lval_index];
}
Das einzige was mir fehlt, ist eine Möglichkeit, die finalen Max/Min Werte aus einer M1 Berechnung für die Dauer des Tages festzuhalten. Wie Ihr seht habe ich im Code eine annähernde Weise für höhere Zeiteinheiten eingbaut, die weichen aber im Ergebnis teilweise gravierend ab.

Wenn ich NULL,PERIOD_M1 explizit benutze, dann heißt das für mich Berechnung für aktuellen Markt im M1 Chart und nicht in dem gerade geladenen Chart! Spaßeshalber habe ich mal versucht, im Dow-Chart als Symbol statt NULL den Dax einzutragen - und da ging dann alles durcheinander. Sieht danach aus, als wäre iHighest/Lowest hier nicht die erste Wahl.

Also, in diesem Zustand ist der Indikator noch unbrauchbar. AVT