Qualquer pergunta de novato, de modo a não desorganizar o fórum. Profissionais, não passem por aqui. Em nenhum lugar sem você - 6. - página 160

 
Zolotai:

Não tem nada a ver com o código. Eu só preciso da condição correta. A questão é: existe alguma maneira de saber a hora do bar atual? Como sei a hora de um bar?
Tempo[] e iTime().
 
Zolotai:

Não tem nada a ver com o código. Eu só preciso da condição correta. A questão é: existe alguma maneira de saber a hora do bar atual? Como posso saber o horário do bar?
Time[index_need_bar]; lhe devolverá o tempo aberto da barra com o número "index_need_bar". Você pode usar o iTime() para outros símbolos e cronogramas
 

Como obter um sinal em um EA a partir deste indicador

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

Eu tentei através do iCustom mas ele diz que o valor é 2147483647 ao especificar qualquer linha ou número de barras ...

 
VOLDEMAR:

Como obter um sinal em um EA a partir deste indicador

Eu tentei através do iCustom mas ele diz que o valor é 2147483647 ao especificar qualquer linha ou número de barras ...

Este valor é VAZIO_VALOR. Ele está no buffer indicador por padrão, se não houver sinal. Cicle através do buffer e obtenha os valores não vazios.
 

Verifique seus amortecedores desta forma:

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

Verifique seus amortecedores desta forma:


OK, entendo isso, mas pode haver uma centena de valores no buffer como encontrar o último e como determinar se o último é um sinal de compra ou um sinal de venda ?
 
Entendi, obrigado.
 
VOLDEMAR:

Ok, eu entendo, mas pode haver centenas de valores em buffer e como encontrar o último e como determinar qual é o último a comprar sinal ou a vender ?

Eu não compilei o código e não procurei em MT, mas BufD é o primeiro buffer azul, BufU é zero buffer vermelho. O que eles mostram ali na tela, pontos azuis e vermelhos? Então, veja qual ponto de qual cor aponta para o que lá está. E pegue-os em amortecedores - vermelho em amortecedor zero, azul em primeiro amortecedor.

Bem... E os valores precisam ser capturados na primeira barra muito provavelmente, não a viram redesenhada ou não. Ou talvez seja necessário um loop desde a barra de zero até que o valor seja encontrado. Tudo depende da forma como dá seus sinais.

 
Olá, você pode me dizer por que não consigo configurar nenhuma EA em Mt4, todas elas mostram valores negativos ao testar a estratégia!
 
serjlarkin:
Olá, você pode me dizer por que eu não posso definir nenhum dos Consultores Especialistas em Mt4, todos eles mostram valores negativos quando eu testo a estratégia!
Que valor negativo?