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

Der Aufbau ist folgender:
1. alles wird für das current Symbol() berechnet
2. die einzelnen Berechnungen/Signale sind in Funktionen, damit man sie ein/ausschalten kann
3. gemeinsam werden die Werte aus den Funktionen mit dem Close verglichen
Der Close ist also immer gleich und muß nur einmal geholt werden.
Frage: wie mache ich das am besten, der Funktion übergeben oder gibt es bessere Wege?
Code sieht grob so aus:
Code:
OnCalculate()
{
   if(ShowEma1) FuncEma1(); //SigWanted
   if(ShowEma2) FuncEma2(); //SigWanted
}

FuncEma1()
{
   double CClose=iClose(NULL,PERIOD_M1,0);
   double m1MAcur=iMA(NULL,PERIOD_M1,MA1peri,0,MA1meth,MA1price,0);
   double m1MApre=iMA(NULL,PERIOD_M1,MA1peri,0,MA1meth,MA1price,1);

   if(m1MAcur>m1MApre) { if(CClose>m1MAcur) ...; else ...; }
   if(m1MAcur<m1MApre) { if(CClose<dmMAcur) ...; else ...; }
}
FuncEma2()
{
   double CClose=iClose(NULL,PERIOD_M1,0);
   double m1MAcur=iMA(NULL,PERIOD_M1,MA2peri,0,MA2meth,MA2price,0);
   double m1MApre=iMA(NULL,PERIOD_M1,MA2peri,0,MA2meth,MA2price,1);

   if(m1MAcur>m1MApre) { if(CClose>m1MAcur) ...; else ...; }
   if(m1MAcur<m1MApre) { if(CClose<m1MAcur) ...; else ...; }
}
Wäre nett, wenn jemand mir da weiterhelfen könnte. Danke, AVT