Cualquier pregunta de los recién llegados sobre MQL4 y MQL5, ayuda y discusión sobre algoritmos y códigos - página 1015

 

Hola, no me regañes mucho por favor, solo estoy aprendiendo el lenguaje y OOP en general.

Me podéis decir por qué cuando intento multiplicar toda la fórmula asignada a ExtATRBuffer[i]=.... en el indicador ATR Cuando multiplico por 1 se muestra el valor real en el gráfico, cuando multiplico por 0,5 fraccionado es decir, algunos valores están arriba y abajo de la línea cero

¿Qué debo hacer para evitar el error?

Necesito obtener el valor real de la TAE multiplicado por una constante variable ...

¡¡¡gracias a todos los que han contestado!!!

//+------------------------------------------------------------------+
//| Average True Range                                               |
//+------------------------------------------------------------------+
int OnCalculate(const int rates_total,
                const int prev_calculated,
                const datetime &time[],
                const double &open[],
                const double &high[],
                const double &low[],
                const double &close[],
                const long &tick_volume[],
                const long &volume[],
                const int &spread[])
  {
   int i,limit;
//--- check for bars count
   if(rates_total<=ExtPeriodATR)
      return(0); // not enough bars for calculation
//--- preliminary calculations
   if(prev_calculated==0)
     {
      ExtTRBuffer[0]=0.0;
      ExtATRBuffer[0]=0.0;
      //--- filling out the array of True Range values for each period
      for(i=1;i<rates_total && !IsStopped();i++)
         ExtTRBuffer[i]=MathMax(high[i],close[i-1])-MathMin(low[i],close[i-1]);
      //--- first AtrPeriod values of the indicator are not calculated
      double firstValue=0.0;
      for(i=1;i<=ExtPeriodATR;i++)
        {
         ExtATRBuffer[i]=0.0;
         firstValue+=ExtTRBuffer[i];
        }
      //--- calculating the first value of the indicator
      firstValue/=ExtPeriodATR;
      ExtATRBuffer[ExtPeriodATR]=firstValue;
      limit=ExtPeriodATR+1;
     }
   else limit=prev_calculated-1;
//--- the main loop of calculations
   for(i=limit;i<rates_total && !IsStopped();i++)
     {
      ExtTRBuffer[i]=MathMax(high[i],close[i-1])-MathMin(low[i],close[i-1]);
      ExtATRBuffer[i]=ExtATRBuffer[i-1]+(ExtTRBuffer[i]-ExtTRBuffer[i-ExtPeriodATR])/ExtPeriodATR;

   // ExtATRBuffer[i]=(ExtATRBuffer[i-1]+(ExtTRBuffer[i]-ExtTRBuffer[i-ExtPeriodATR])/ExtPeriodA)*4;
     }
//--- return value of prev_calculated for next call
   return(rates_total);
  }
//+------------------------------------------------------------------+
 
Gracias a todos. Ayuda para entender : error de prueba: 2019.12.04 14:14:40.097 TestGenerator: error de datos no coincidentes (el valor alto 0.71570 en 2019.01.21 23:30 no se alcanza desde el marco temporal más bajo, el precio alto 0.71560 no coincide)
 
Ilzadjan Akhmedov:
Gracias a todos. Ayuda para entender : error de prueba: 2019.12.04 14:14:40.097 TestGenerator: error de datos no coincidentes (el valor alto 0.71570 en 2019.01.21 23:30 no se alcanza desde el marco temporal más bajo, el precio alto 0.71560 no coincide)

Cargar el historial del instrumento en prueba (F2)

 
Artyom Trishkin:

Cargar el historial del instrumento en prueba (F2)

Gracias por su atención. Cargado pero ahora el resumen es: 2019.12.04 16: 00: 20.408 TestGenerator: Error de datos inconsistentes (límite de volumen 409 excedido en 2016.03.30 23: 45)

Archivos adjuntos:
 
Ilzadjan Akhmedov:

Gracias por su atención. Descargado pero ahora el resumen es: 2019.12.04 16: 00: 20.408 TestGenerator: Error de datos inconsistentes (límite de volumen 409 superado el 2016.03.30 23: 45)

Para cada uno de los plazos, descargue el historial.

 
Artyom Trishkin:

Para cada uno de los plazos, descargue el historial.

Este asesor de $ 600, Hizo una prueba de nuevo no el comercio. por favor, ver lo que se puede hacer. Si resuelve el problema, por favor, envíe la configuración.

Archivos adjuntos:
 
Artyom Trishkin:

Intenta abrir un archivo que no existe utilizando FileOpen()...

He leído sobre esto. La única pista puede estar en esta frase"El nombre del archivo a abrir, puede contener subcarpetas. Si el archivo se abre para escribir, se crearán las subcarpetas especificadas si no hay ninguna. "Pero incluso aquí dice algunas subcarpetas, tal vez es una referencia a que en este directorio en estas subcarpetas se creará el archivo, porque no se escribe normalmente. Puede escribir normalmente, si no hay ningún archivo se creará. No soy un científico para adivinar todos los detalles. Ni siquiera entiendo cómo funcionan muchas funciones, porque no hay un código de función ni una descripción adecuada. Ya sabes, te lanzan un determinado hueso, y entiendes por ti mismo si es comestible o no.

 
Hola, ayúdenme a resolver este problema. conecté las señales, un mes todo estaba bien, al final del mes mis operaciones no se copiaron correctamente a las señales del proveedor, ahora el tamaño del lote no se respeta. ¿cuál podría ser el problema con el tamaño del lote, y por qué las señales no funcionaron correctamente, donde puedo ver lo que hay que hacer clic?
 
Seric29:

He leído sobre esto. La única pista puede estar en esta frase"El nombre del archivo a abrir, puede contener subcarpetas. Si el archivo se abre para escribir, se crearán las subcarpetas especificadas si no hay ninguna. "Pero incluso aquí dice algunas subcarpetas, tal vez es una referencia a que en este directorio en estas subcarpetas se creará el archivo, porque no se escribe normalmente. Puede escribir normalmente, si no hay ningún archivo se creará. No soy un científico para adivinar todos los detalles. Todavía no entiendo cómo funcionan muchas funciones, porque no hay un código de función ni una descripción adecuada. Ya sabes, tiras algún hueso y entiendes si es comestible o no.

¿Cómo se encuentra el sol por la mañana? ¿Has estudiado toda la astronomía?

Las funciones estándar no son para averiguar su funcionamiento interno. Son para usarlos. Y la descripción está en la documentación.

Te dije que usaras FileOpen() para crear un nuevo archivo. Pero no..., hay que hacer un coro de diez páginas en lugar de simplemente "cogerlo y usarlo". Bueno, a veces se puede decir "gracias" a los que ayudan.

 

Hola.

¿Nadie va a decir nada sobre el puesto de Bilder?

¿Tal vez tenga sentido ponerlo en un nuevo hilo, para que lo vea más gente? Si es así, pide a los moderadores que lo publiquen... ¿O crear uno tú mismo?

Любые вопросы новичков по MQL4 и MQL5, помощь и обсуждение по алгоритмам и кодам
Любые вопросы новичков по MQL4 и MQL5, помощь и обсуждение по алгоритмам и кодам
  • 2019.11.09
  • www.mql5.com
В этой ветке я хочу начать свою помощь тем, кто действительно хочет разобраться и научиться программированию на новом MQL4 и желает легко перейти н...