[ARCHIV!] Alle Fragen von Anfängern, um das Forum nicht zu überladen. Fachleute, gehen Sie nicht vorbei. Ohne dich kann ich nirgendwo hingehen - 4. - Seite 397

 

Wie kann ich die maximalen Schwänze von gekauften Candlesticks finden?

D.h. die aktuelle Kerze wird gebildet, die vorherige Kaufkerze, wir bestimmen den Schwanz der Kaufkerze, dann bauen wir den Chart weiter auf, die Kaufkerze erscheint wieder und berechnet wieder den Schwanz,

Wie findet man nun das Maximum dieser Schwänze und schreibt sie in die Variable????

int Sum_xb;
int Sum_xs;
datetime last_time;   // глобальная переменная
int Kol_vo_b;
int Kol_vo_s;
int Sr_zn_b;
int Sr_zn_s;
extern int Num_kolvo_b=10;
extern int Num_kolvo_s=10;
int Zn_b;
int Max_b;

int start()
  {
   
  int xBost_b;
  int xBost_s;
double hi=High[1];
double op=Open[1];
double cl=Close[1];
double lo=Low[1];


   if (last_time != Time[0])
   {
      // Ура, новый бар!
      last_time = Time[0];      // запоминаем новый бар
      if(Close[1]>Open[1])
      { 
xBost_b=(hi-cl)*10000;
Kol_vo_b++;
}
      if(Close[1]<Open[1])
      {
 xBost_s=(cl-lo)*10000; 
 Kol_vo_s++;
 
   }
   
if (Kol_vo_b==Num_kolvo_b)
{
Kol_vo_b=0;
Sum_xb=0;
}
if (Kol_vo_s==Num_kolvo_s)
{
Kol_vo_s=0;
Sum_xs=0;
}  
 
Sum_xb=Sum_xb+xBost_b;
Sr_zn_b=Sum_xb/Kol_vo_b;

Sum_xs=Sum_xs+xBost_s;
Sr_zn_s=Sum_xs/Kol_vo_s;

Zn_b=xBost_b;
if(xBost_b>Zn_b)
Max_b=xBost_b;
}




Comment("\n xBost_b=",xBost_b,"\n Sum_xb=",Sum_xb,"\n Kol_vo_b=",Kol_vo_b,"\n Sr_zn_b=",Sr_zn_b,
"\n\n\n\n kolvo_s=",xBost_s,"\n Sum_xs=",Sum_xs,"\n Kol_vo_s=",Kol_vo_s,"\n Sr_zn_s=",Sr_zn_s,"\n\n\n\n Max_b=",Max_b);

return(0);
  }

wie man diesen Teil des Codes richtig schreibt, um den Höchstwert zu ermitteln!

Zn_b=xBost_b;
if(xBost_b>Zn_b)
Max_b=xBost_b;

 
Leute, könnt ihr mir sagen, wie ich das Maximum finde?!
 
//Функция поиска максимума/минимума за заданное количество баров
// type-максимум или минимум, barsearch -количество баров

double yMaxDayPrice(int type,int barsearch)
{
    int    timeframe=1440;
    double minmax;

    if(type==2)
       {
           minmax=Low[iLowest(timeframe,0,MODE_LOW,barsearch,0)];
       }
    if(type==1)
       {
           minmax=High[iHighest(timeframe,0,MODE_HIGH,barsearch,0)];
       }
return(minmax);          
}
 
BeerGod:

Kann der Zeitrahmen z. B. durch Null (aktuell) ersetzt werden?
 

https://docs.mql4.com/ru/series/ilowest können Sie, damit zum Zeitpunkt der Fehlersuche alles korrekt ist, die hohen und niedrigen Werte in den Kommentar schreiben.

https://docs.mql4.com/ru/constants/timeframes

 

Aber das ist ein bisschen anders als das, was ich gerne sehen würde...

Für Kaufbarren definieren wir das Ende in Punkten xBost_b=(hi-cl)*10000;

für die Verkaufsstangen... xBost_s=(cl-lo)*10000;

B-Kaufen, S-Verkaufen, ()-aktueller Balken

zum Beispiel eine Reihe von Balken:

1) B(S)-bestimmen Sie das Ende von B

2)BS(B) - definieren Sie nun das Ende von S

3) BSB(S) - jetzt definieren wir noch einmal das Ende von Balken B und dann müssen wir bestimmen, welches Ende größer ist , dieses oder jenes, dasgleiche für die Verkaufsbalken

Aber nach der Neuberechnung (z.B.) werden 10 Takte Maximum zurückgesetzt und alles geht zurück auf Null

zum Beispiel:

int Sum_xb;
int Sum_xs;
datetime last_time;   // глобальная переменная
int Kol_vo_b;
int Kol_vo_s;
int Sr_zn_b;
int Sr_zn_s;
extern int Num_kolvo_b=10;
extern int Num_kolvo_s=10;
int Zn_b;
int Max_b;

int start()
  {
   
  int xBost_b;
  int xBost_s;
double hi=High[1];
double op=Open[1];
double cl=Close[1];
double lo=Low[1];


   if (last_time != Time[0])
   {
      // Ура, новый бар!
      last_time = Time[0];      // запоминаем новый бар
      if(Close[1]>Open[1])
      { 
xBost_b=(hi-cl)*10000;
Kol_vo_b++;
}
      if(Close[1]<Open[1])
      {
 xBost_s=(cl-lo)*10000; 
 Kol_vo_s++;
 
   }
   
if (Kol_vo_b==Num_kolvo_b)
{
Kol_vo_b=0;
Sum_xb=0;
}
if (Kol_vo_s==Num_kolvo_s)
{
Kol_vo_s=0;
Sum_xs=0;
}
 
In meinem Kopf weiß ich, wie ich das Beste daraus machen kann, aber ich kann es nicht in Code umwandeln.
 
DanLett:
In meinem Kopf weiß ich, wie ich das Beste daraus machen kann, aber ich kann es nicht in Code umwandeln.


Ich gebe nicht vor, Recht zu haben, da ich ein Amateur bin, aber in einem meiner EAs habe ich Maxima und Minima auf die gleiche Weise gefunden, wie es Ihnen bereits gesagt wurde:

extern int count = 10;

..............................

highprice = High[iHighest(NULL,0,MODE_HIGH,count,0)];

..............................

lowprice = Low[iLowest(NULL,0,MODE_LOW,count,0)];

 
BeerGod:


Es ist keine gute Idee, Code mit Fehlern zu veröffentlichen
 

LIEBE PROGRAMMIERER!!!!

Bitte sagen Sie mir, wo ich eine Liste aller Fehler wie '(' - Semikolon erwartet oder '{' - Ausdruck im globalen Bereich nicht erlaubt usw. finden kann. Jedes Mal muss ich Foren im Internet durchstöbern und nach Übersetzungen für diese Fehler suchen.

DANKESCHÖN !!!!