Einzelnen Beitrag anzeigen
  #1 (permalink)  
Alt 05.03.23
AVT AVT ist offline
Elite Mitglied
 
Registriert seit: Mar 2018
Ort: Hamburg
Beiträge: 612
AVT befindet sich auf einem aufstrebenden Ast
Standard Berechnungsloop für Chartzeiten

Könnte mir bitte jemand helfen, wie ich den Loop für zeitabhängige Berechnung im Indikator am besten formuliere?

Einstellungen:
1. Der Indikator wird automatisch/gezwungen im m5 Chart geladen.
Das ist möglich, weil er nur Daten zeigt (keine Kurse oder sonstiges).
2. Zeiteinheiten für die Neuberechnung der Werte m5 bis w1.
3. Es existiert schon ein Array
int iATimFrams[7]={5,15,30,60,240,1440,10080};
4. Berechnungen sollen mit jedem Beginn einer neuen Zeiteinheit geschehen.

OnCalculate sieht bisher so aus:
Code:
   // ====================================== first run
   if(prev_calculated==0)
   {
      // === calculate the past values
         CalcAdr30();    //from yesterday 30 days back
         CalcAdr0();     //for today
         CalcAdrLeft();  //for today
         CalcChange();   //summaries till now
         CalcState();    //summaries till now
   }
   else
   {
      // === hier fehlt mir eine elegante Lösung
   }
Wäre es besser, ein zweites Array mit den Repeat-Werten für den m5 Chart
int iACalcRepeats[7]={1,3,6,12,48,288,2016};
zu schaffen und mit dem zu rechnen als die Berechnungs Timeframes durch _Period zu dividieren?
Und/oder wäre es besser, die einzelnen CalcXy() Funktionen in einem 5minuten Timer zu packen anstatt als else Anweisung in OnCalculate (oder spielt das keine Rolle)?

Wäre nett, wenn mir Programmier-Profis da zeigen könnten, wie man es am besten macht.
Danke. AVT