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

 
Zolotai:

Non ha niente a che vedere con il codice. Ho solo bisogno della condizione giusta. La domanda è: c'è un modo per conoscere il tempo della barra corrente? Come faccio a sapere l'ora di un bar?
Time[] e iTime().
 
Zolotai:

Non ha niente a che vedere con il codice. Ho solo bisogno della condizione giusta. La domanda è: c'è un modo per conoscere il tempo della barra corrente? Come posso sapere l'ora del bar?
Time[index_need_bar]; vi restituirà il tempo aperto della barra con il numero "index_need_bar". Potete usare iTime() per altri simboli e timeframes
 

Come ottenere un segnale in un EA da questo indicatore

#property indicator_chart_window
#property indicator_buffers 2
#property indicator_color1 Red
#property indicator_color2 Blue
#define  SH_BUY   1
#define  SH_SELL  -1
extern int     AllBars=0;
extern int     Otstup=30;
extern double  Per=9;
int            SH,NB,i,UD;
double         R,SHMax,SHMin;
double         BufD[];
double         BufU[];

int init()
{
   if (Bars<AllBars+Per || AllBars==0) NB=Bars-Per; else NB=AllBars;
   IndicatorBuffers(2);
   IndicatorShortName("SHI_SilverTrendSig");
   SetIndexStyle(0,DRAW_ARROW,0,1);
   SetIndexStyle(1,DRAW_ARROW,0,1);
   SetIndexArrow(0,159);
   SetIndexArrow(1,159);
   SetIndexBuffer(0,BufU);
   SetIndexBuffer(1,BufD);
   SetIndexDrawBegin(0,Bars-NB);
   SetIndexDrawBegin(1,Bars-NB);
   ArrayInitialize(BufD,0.0);
   ArrayInitialize(BufU,0.0);
   return(0);
}
int start()
{
   int CB=IndicatorCounted();
   if(CB<0) return(-1); else if(NB>Bars-CB) NB=Bars-CB;
   for (SH=1;SH<NB;SH++)
   {
      for (R=0,i=SH;i<SH+10;i++) {R+=(10+SH-i)*(High[i]-Low[i]);}      R/=55;

      SHMax = High[Highest(NULL,0,MODE_HIGH,Per,SH)];
      SHMin = Low[Lowest(NULL,0,MODE_LOW,Per,SH)];
      if (Close[SH]<SHMin+(SHMax-SHMin)*Otstup/100 && UD!=SH_SELL) { BufU[SH]=Low[SH]-R*0.5; UD=SH_SELL; }
      if (Close[SH]>SHMax-(SHMax-SHMin)*Otstup/100 && UD!=SH_BUY) { BufD[SH]=High[SH]+R*0.5; UD=SH_BUY; }
   }
   return(0);
}

Ho provato attraverso iCustom ma dice che il valore è 2147483647 quando si specifica qualsiasi numero di linea o di barra ...

 
VOLDEMAR:

Come ottenere un segnale in un EA da questo indicatore

Ho provato attraverso iCustom ma dice che il valore è 2147483647 quando si specifica qualsiasi numero di linea o di barra ...

Questo è il valore EMPTY_VALUE. È nel buffer dell'indicatore per impostazione predefinita, se non c'è alcun segnale. Scorre il buffer e recupera i valori non vuoti.
 

Controlla i suoi buffer in questo modo:

if (Bufer0>0) {               // в double Bufer0 через iCustom() ранее получено значение буфера индикатора 0
   if (Bufer0!=EMPTY_VALUE) {
      // поймали значение в буфере
      }
   }
 
artmedia70:

Controlla i suoi buffer in questo modo:


OK ho capito, ma ci potrebbero essere un centinaio di valori nel buffer come trovare l'ultimo e come determinare se l'ultimo è un segnale di acquisto o di vendita?
 
Capito, grazie.
 
VOLDEMAR:

Ok, ho capito, ma ci possono essere centinaia di valori nel buffer e come trovare l'ultimo e come determinare qual è l'ultimo per comprare il segnale o vendere?

Non ho compilato il codice e non ho guardato in MT, ma BufD è il primo buffer blu, BufU è il buffer rosso zero. Cosa mostrano lì sullo schermo, punti blu e rossi? Quindi, vedere quale punto di quale colore indica cosa c'è lì. E catturarli nei buffer - rosso nel buffer zero, blu nel primo buffer.

Bene... E i valori devono essere presi sulla prima barra molto probabilmente, non l'ha visto ridisegnare o no. O forse è necessario un ciclo dalla barra zero fino al valore incontrato. Tutto dipende da come emette i suoi segnali...

 
Ciao, puoi dirmi perché non riesco a configurare nessun EA in Mt4, tutti mostrano valori negativi quando provo la strategia!
 
serjlarkin:
Ciao, puoi dirmi perché non posso impostare nessuno degli Expert Advisors in Mt4, tutti mostrano valori negativi quando provo la strategia!
Quale valore negativo?