Cualquier pregunta de novato, para no saturar el foro. Profesionales, no pasen de largo. En ninguna parte sin ti - 6. - página 217

 
artmedia70:


Intentando llamar a Alerta para comprobarlo, no sale nada. El caso es que mi indicador no ha cambiado en las últimas tres barras. Lo configuré para cortar los movimientos falsos.

Por ejemplo, cuando veo el crecimiento sube, pero si los siguientes movimientos se producen dentro del filtro especificado no cambia y se mueve estrictamente en horizontal. Nebhodhimosti antes de que el indicador plano, comparar los dos últimos valores y determinar la tendencia. Si quieres te puedo enviar el código.

 
Forexman77:

Intentando llamar a Alerta para comprobarlo, no sale nada. El caso es que mi indicador no ha cambiado en las últimas tres barras. Lo configuré para cortar los movimientos falsos.

Por ejemplo, cuando veo el crecimiento sube, pero si los siguientes movimientos se producen dentro del filtro especificado no cambia y se mueve estrictamente en horizontal. Nebhodhimosti antes de que el indicador plano, comparar los dos últimos valores y determinar la tendencia. Si quieres te puedo enviar el código.

Le he mostrado cómo encontrar el extremo más cercano de la línea del indicador en su Asesor Experto. Hacer nBars igual a Bars o simplemente sustituir nBars por Bars
 
artmedia70:
Te he mostrado cómo encontrar el extremo más cercano de una línea de indicador en un EA. Hacer nBars igual a Bars o simplemente sustituir nBars por Bars

Ahora salen muchos parámetros cuando se llama a cualquier valor:a,b o c.

El código del 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);
  }
//+------------------------------------------------------------------+
 
No... Será mejor que me muestre lo que está haciendo en su EA. ¿Cómo se obtienen los datos de su indicador?
 
artmedia70:
No... Será mejor que me muestre lo que está haciendo en su EA. ¿Cómo se toman los datos del inductor?

No mucho, tratando de Alerta y ver el alto más cercano allí)

Cargar el indicador en el diario, tres días sin cambios, ese debe ser el 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) {
;// Encontrado fondo
}
if (b>c) {
Alert ("b=",b) // Encontrado fondo
}
}
}

 
Forexman77:

No mucho, tratando de Alerta y ver el alto más cercano allí)

Cargar el indicador en el diario, tres días sin cambios, ese debe ser el 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);
si ((a-b)*(b-c)<0) {
si (b<c) {
;//Encuentra el fondo
}
si (b>c) {
Alert ("b=",b)// Se ha encontrado una clavija
}
}
}

Ese no puede ser el problema. Hemos hecho un bucle antes de Bares. Escriba la pausa después de la alerta;
 
artmedia70:
Ese no puede ser el problema. Hemos hecho el bucle antes de Bares. Después de la alerta, escriba break;

.
Después de la pausa; aparece un mensaje. Pero el valor no se corresponde con el indicador, ¿quizás hay algo que no funciona en el propio indicador?
El indicador muestra la línea como la necesito. El cálculo del indicador se basa en tres condiciones, que corresponden a la situación actual.
 
Forexman77:
Después de la pausa; aparece un mensaje. Pero, el valor no coincide con el indicador, ¿tal vez hay algo mal con el propio indicador?
El indicador muestra la línea como la necesito. El indicador se calcula a partir de tres condiciones que corresponden a la situación actual.

En lugar de Alert("b=",b); Tipo:

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

En lugar de Alert("b=",b); Write:



No puedo, lo he intentado de diferentes maneras. Los valores son claramente inapropiados,

Sí y la hora en todos los valores "Bar time=2010.11.04 00:00". Llamada a través del guión.

Lo más probable es que el problema esté en el indicador: el valor se obtiene de

ExtMapBuffer1[i]

que se obtiene a partir de tres condiciones diferentes correspondientes a la hora actual.

Cuando llamo al valor actual del EURUSD todo está bien: 1,3717, lo que no se puede decir de los máximos.

 
Amigos, ¿podrían decirme el código que muestra el saldo que había a principios de mes...