[Qualsiasi domanda da principiante, per non ingombrare il forum. Professionisti, non passate oltre. Da nessuna parte senza di te - 4. - pagina 397

 

Come posso trovare le code massime delle candele di acquisto?

Cioè si costruisce la candela attuale, la candela di acquisto precedente, abbiamo determinato la coda della candela di acquisto, poi continuiamo a costruire il grafico, la candela di acquisto appare di nuovo e di nuovo abbiamo calcolato la coda,

ora come trovare il massimo di queste code e scriverle nella variabile????

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);
  }

come scrivere correttamente questa parte del codice per trovare il massimo!

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

 
Gente, potete dirmi come trovare il massimo?
 
//Функция поиска максимума/минимума за заданное количество баров
// 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:

si può sostituire il timeframe con null (corrente), per esempio?
 

https://docs.mql4.com/ru/series/ilowest è possibile, in modo che tutto sia accurato al momento del debug, mettere i valori alti e bassi nel commento.

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

 

Ma questo è un po' diverso da quello che vorrei vedere...

per le barre di acquisto definiamo la coda in punti xBost_b=(hi-cl)*10000;

per le barre di vendita... xBost_s=(cl-lo)*10000;

B-Acquista, S-Vendi, ()-Barra corrente

per esempio una serie di barre:

1) B(S)-determinare la coda di B

2)BS(B) - definire ora la coda di S

3) BSB(S) - ora definiamo ancora una volta la coda della barra B e poi dobbiamo determinare quale coda è maggiore questa o quella, lostesso per vendere lebarre

Ma dopo il ricalcolo (per esempio) 10 barre massime saranno azzerate e tutto tornerà a zero

per esempio:

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;
}
 
So come ottenere il massimo nella mia testa, ma non riesco a convertirlo in codice) Spero nel vostro aiuto!
 
DanLett:
So come ottenere il massimo nella mia testa, ma non riesco a convertirlo in codice) Spero nel vostro aiuto!


Non pretendo di avere ragione, dato che sono un dilettante, ma in uno dei miei EA ho trovato massimi e minimi nello stesso modo, come ti è già stato detto:

extern int count = 10;

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

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

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

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

 
BeerGod:


Non è una buona idea postare codice con errori
 

CARI PROGRAMMATORI!!!!

Per favore ditemi dove posso trovare una lista di tutti gli errori come '(' - punto e virgola previsto o '{' - espressione sullo scopo globale non consentita e così via. Ogni volta devo sfogliare i forum su Internet e cercare le traduzioni di questi errori.

GRAZIE !!!!

Motivazione: