Preguntas sobre el MQL4 - página 10

 
Slawa,
BIEN. Gracias.
Ahora tengo que meditar un rato...
 
No puedo esperar a que se actualice el ME y a que se construya uno nuevo.
Es imposible escribir algo bien...
El foro es indispensable en ese sentido.
Gracias de nuevo.
 
Myxu
intente utilizar ArrayCopy();


lo he probado. no tiene ningún sentido. la velocidad es idéntica.

y con variables locales, es 5 veces más rápido.
 
<br / translate="no"> probado. no tiene absolutamente ningún sentido. la velocidad es idéntica.
Es 5 veces más rápido con las variables locales.


¿Cuánto tiempo tarda en su código?
 
Tengo un pavo en el que se lleva todo el tiempo, prácticamente. :)
analizador de patrones cronométricos estadísticos :)

En cada barra accede a diferentes Close[] unas 2000 veces,
y luego lleva mucho a los arrays. Tengo que comprobarlo antes de cada acceso al array con un montón de if()'s.
Ni siquiera intento convertirlo en HLC :)

pero me gustaría desarrollar la idea, porque trae algunos beneficios.
 
1. ¿Cuánto tiempo sigue durando la tarea?
2. ¿No hay bucle o bucle infinito en el indicador?
 
Yo también uso IndicatorCounted(), pero la inicialización tarda entre 10 y 30 segundos en el Athlon 1700... y quiero añadir más trucos...

Si sólo inserto este constructo en un lugar, la velocidad aumenta 2 veces.

y en general la velocidad de acceso a arrays y variables locales difiere 10 veces.
 
Estaba pensando... quizás debería hacer una DLL...
¿alguien puede recomendar un compilador pequeño y rápido?
Preferiblemente C o Pascal.
 
Con tanto tiempo, está claro que hay algo mal en el código.
Estoy trabajando en un bucle sin fin, aprox. 2000 líneas de código, incluyendo el procesamiento de matrices y el rediseño de objetos gráficos. Un bucle tarda unos 10-12 ms. Entre los ticks consigue envolver alrededor de 30-500 veces.
La MT es muy rápida. Busque el problema en su código.
 
er... intenta algo así por ti mismo...
    t2=LocalTime(); for(d=5000 ;d>0;d--) for(k=1;k<5000;k++){ z=Cerrar[k];y=Cerrar[k+1];x=Cerrar[k+2]; z=Abrir[k];y=Abrir[k+1];x=Abrir[k+2]; }
Razón de la queja: