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

 
Hola a todos. Podrían decirme cómo funciona la llamada al indicador en mql4. Cambio el periodo de CCI en el bucle, pero si el número de iteraciones es superior a 205, entonces CCI empieza a dibujar ceros, y en otro buffer. Si num=204, entonces el periodo puede ser incluso 500, pero si num=205, entonces el periodo máximo puede ser 207, y entonces contendrá cero. Hay varios miles de barras en el gráfico. Si no cambiamos el período en el bucle, todo está bien, por supuesto. ¿Cuál puede ser la razón? Constantemente tengo problemas con las llamadas de los indicadores múltiples. Por favor, aconsejar cómo tratar con él, tal vez leer algunos artículos?
   if(rates_total>prev_calculated)
   {
      int num=205;
      period =2;   

         for(int i=0; i<=num; i++)
         {
            cci[i] = iCCI(NULL,0,period,PRICE_CLOSE,i);   
            period++;
         }
      ////////////
      period=208;

      for(int i=0; i<100; i++)
      {
         CCI[i] = iCCI(NULL,0,period,PRICE_CLOSE,i);
      }
    
   }
Si num=300, el periodo máximo es de 66
Archivos adjuntos:
iCCI.mq4  10 kb
 
De vez en cuando intento ejecutar el indicador y funciona, pero el terminal se cuelga.
 
Al menos dime por dónde hay que cavar, como se dice.
 
Aleksandr Kononov #:
Al menos dime por dónde hay que cavar, como se dice.

¿y para qué hace este tipo de investigación? ¿Tiene sentido práctico? ¿O sólo por interés?

 
Aleksandr Kononov #:
Al menos dime por dónde hay que cavar, como se dice.

.

 
No es un estudio, es un problema práctico. Es que en este ejemplo se ha quitado todo el sentido, dejando lo más importante. Me encuentro constantemente con este problema y estoy cansado de resolverlo por intuición. Quiero explicar por qué nos quedamos sin memoria y luego tengo este problema, cuando las funciones de llamada de indicadores se utilizan más de una vez. Si los llamas sin cambiar el punto, todo está bien. Pero si cambio el periodo, empiezo a tener problemas.
 
Aleksandr Kononov llamada al indicador se utilizan más de una vez. Si los llamas sin cambiar el punto, todo está bien. Pero si cambio el periodo, empiezo a tener problemas.

una cosa es calcular 200 barras de un indicador. Otra cosa es calcular una barra para 200 indicadores... No está claro de dónde puede venir la necesidad de cargar 200 indicadores... es posible que haya un límite para tales "experimentos" por lo que termina en la memoria...

 
En cuanto a "dónde aplicar", es una cuestión de imaginación. Muchos lugares
 
¿Hay alguna forma de comprobar la memoria? ¿Cómo se consume o algo más?
 
Aleksandr Kononov #:
En cuanto a dónde aplicarlo, es una cuestión de imaginación. En muchos sitios.

el código colgado no se puede aplicar en ningún sitio... Tienes que establecer las tareas que se pueden hacer... Y es más fácil estropear el código... Los indicadores tienen que trabajar rápido, no hay tiempo para cálculos súper largos.

Razón de la queja: