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 217

 
artmedia70:


Ao tentar ligar para a Alert para verificar, nada sai. O problema é que meu indicador não mudou para as três últimas barras. Eu o preparei para cortar movimentos falsos.

Por exemplo, quando eu vejo o crescimento ele sobe, mas se os próximos movimentos ocorrem dentro do filtro especificado, ele não muda e se move estritamente na horizontal. Nebhodhimosti antes do indicador plano, compare os dois últimos valores e determine a tendência. Se você quiser, posso enviar-lhe o código.

 
Forexman77:

Ao tentar ligar para a Alert para verificar, nada sai. O problema é que meu indicador não mudou para as três últimas barras. Eu o preparei para cortar movimentos falsos.

Por exemplo, quando eu vejo o crescimento ele sobe, mas se os próximos movimentos ocorrem dentro do filtro especificado, ele não muda e se move estritamente na horizontal. Nebhodhimosti antes do indicador plano, compare os dois últimos valores e determine a tendência. Se você quiser, posso enviar-lhe o código.

Eu lhe mostrei como encontrar o extremo mais próximo da linha indicadora em seu Expert Advisor. Fazer nBars iguais a Barras ou apenas substituir nBars por Barras
 
artmedia70:
Eu lhe mostrei como encontrar o extremo mais próximo de uma linha indicadora em um EA. Fazer nBars iguais a Barras ou apenas substituir nBars por Barras

Muitos parâmetros agora saem quando qualquer valor é chamado:a,b ou c.

O código do indicador:

#property copyright ""
#property link      ""
#property indicator_chart_window
#property indicator_buffers 1
#property indicator_color1 Red
//--- input parameters

//--- buffers
double ExtMapBuffer1[];
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int init()
  {
//---- indicators
   SetIndexStyle(0,DRAW_LINE,0,2);
   SetIndexBuffer(0,ExtMapBuffer1);
   IndicatorDigits(Digits+1);
//----
   return(0);
  }
//+------------------------------------------------------------------+
//| Custom indicator deinitialization function                       |
//+------------------------------------------------------------------+
int deinit()
  {
//----
   
//----
   return(0);
  }
//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
int start()
  {
    int counted_bars=IndicatorCounted(),                      
    limit;
    double
    raznica,raznica_static,
    MA_1_t,                                                  
    MA_2_t;
 
   if(counted_bars>0)
      counted_bars--;
   
   limit=Bars-counted_bars;
   
   static double MA_otshet;
   for(int i=0;i<limit;i++)
   {
      MA_1_t=iMA(NULL,0,7,0,MODE_EMA,PRICE_CLOSE,i+0);  
      MA_2_t=iMA(NULL,0,7,0,MODE_EMA,PRICE_CLOSE,i+1); 
      raznica=MA_1_t-MA_2_t;
      raznica_static=MA_1_t-MA_otshet;
      if(raznica_static > -0.001 && raznica_static < 0.001)
      {
      ExtMapBuffer1[i]=MA_otshet;
      }
      else
      if(raznica > -0.001 && raznica < 0.001)
      {
      ExtMapBuffer1[i]=MA_2_t;
      MA_otshet=MA_2_t;
      }
      if((raznica > 0.001) || (raznica <- 0.001))
      {
      ExtMapBuffer1[i]=MA_1_t;
      }
   }
   return(0);
  }
//+------------------------------------------------------------------+
 
Nah... É melhor você me mostrar o que está fazendo em sua EA. Como você obtém os dados de seu indicador?
 
artmedia70:
Nah... É melhor você me mostrar o que está fazendo em sua EA. Como você obtém os dados de seu indutor?

Nada de mais, tentando alertar e ver o alto mais próximo lá)

Carregue o indicador no diário, três dias sem nenhuma mudança, esse deve ser o problemaA?

for (i=2; i<Bars; i++) {
double a=iCustom(NULL, 0, "EMAF",0,0,i+1);
double b=iCustom(NULL, 0, "EMAF",0,0,i);
double c=iCustom(NULL, 0, "EMAF",0,0,i-1);
if ((a-b)*(b-c)<0) {
if (b<c) {
;// Fundo encontrado
}
if (b>c) {
Alerta ("b=",b) // Fundo encontrado
}
}
}

 
Forexman77:

Nada de mais, tentando alertar e ver o alto mais próximo lá)

Carregue o indicador no diário, três dias sem nenhuma mudança, esse deve ser o problemaA?

para (i=2; i<Bars; i++) {
duplo a=iCustom(NULL, 0, "EMAF",0,0,i+1));
duplo b=iCustom(NULL, 0, "EMAF",0,0,i);
duplo c=iCustom(NULL, 0, "EMAF",0,0,i-1);
se ((a-b)*(b-c)<0) {
se (b<c) {
;//Find the bottom
}
se (b>c) {
Alerta ("b=",b)// Pino encontrado
}
}
}

Esse não pode ser o problema. Fizemos um loop antes das grades. Escrever pausa após o alerta;
 
artmedia70:
Esse não pode ser o problema. Fizemos o loop antes das grades. Após o alerta, escreva pausa;

.
Após o intervalo, uma mensagem aparece. Mas o valor não corresponde ao indicador, talvez haja algo errado com o próprio indicador...
O indicador mostra a linha conforme eu preciso. O cálculo do indicador é baseado em três condições, que correspondem à situação atual.
 
Forexman77:
Após o intervalo, uma mensagem aparece. Mas, o valor não corresponde ao indicador, talvez haja algo errado com o próprio indicador?
O indicador mostra a linha conforme eu preciso. O indicador é calculado com base em três condições que correspondem à situação atual.

Em vez de Alerta("b=",b); Tipo:

Alert("Цена b="+DoubleToStr(b,Digits)+"\nВремя бара="+TimeToStr(Time[i]));
 
artmedia70:

Em vez de Alerta("b=",b); Escreva:



Não posso, já tentei de diferentes maneiras. Os valores não são claramente apropriados,

Sim e tempo em todos os valores "Bar time=2010.11.04 00:00". Chamadas através do roteiro.

O mais provável é que o problema seja com o indicador: o valor é obtido de

ExtMapBuffer1[i]

que é obtido a partir de três condições diferentes correspondentes à hora atual.

Quando chamo o valor atual de EURUSD tudo está bem: 1,3717, o que não pode ser dito sobre os altos.

 
Pessoal, poderiam me dizer o código que mostrava o equilíbrio que estava no início do mês...