Errores, fallos, preguntas - página 2879
Está perdiendo oportunidades comerciales:
- Aplicaciones de trading gratuitas
- 8 000+ señales para copiar
- Noticias económicas para analizar los mercados financieros
Registro
Entrada
Usted acepta la política del sitio web y las condiciones de uso
Si no tiene cuenta de usuario, regístrese
Lo he retocado un poco
(es mejor no usar una macro de esa manera ;)
Lo he retocado un poco
(así que es mejor no usar la macro ;)
Cuando hago pruebas, confundo el código todo lo posible para evitar que el optimizador lance bucles vacíos
tienes
// for(int i = 0; i < 5; i++) sum += u.param[i];
La optimización de la ejecución de MQL puede terminar el primer bucle de antemano, ya que los valores calculados no se utilizan, por lo que se debe hacer algo después de la SpeedTest() con los resultados - este bucle
Lo he comprobado con el bucle comentado, no lo he tirado, pero en la otra prueba puede que me cuelgue
la macro es cuestión de gustos, yo lo he probado muchas veces y funciona, no veo el sentido de escribir lo mismo a mano
UPD: encontré donde leí cómo funcionan los compiladores modernos ahora, bastante informativo
https://habr.com/ru/post/431688/
https://habr.com/ru/post/47878/
el código da el valor iRSI de las asas y los tps siempre sólo 10, pero los precios y el gráfico también cambian.
iRSI(_Símbolo,PERIOD_H1,14,PRECIO_CIERRE)
construir 2652
el código da el valor iRSI de las asas y los tps siempre sólo 10, pero los precios y el gráfico también cambian.
iRSI(_Símbolo,PERIOD_H1,14,PRECIO_CIERRE)
construir 2652
Usted tiene la manija del indicador, es 10
A continuación, hay que obtener los valores de la barra de la derecha
Lee la ayuda, o busca las respuestas en el foro - son muchas
Usted tiene la manija del indicador, es 10
A continuación, hay que obtener los valores de la barra de la derecha
Lea la ayuda o busque respuestas en el foro: hay muchas
Lo tengo. Estudiaré los topes. Es extraño, tenía la sensación de que todo debería funcionar tal cual, quizás lo confundí con mql4.
Lo raro es que lo busqué en Google y no lo encontré en mql5 para obtener los datos del indicador.
Aha, según tu ejemplo como he entendido el valor del indicador RSI está al final en una variable de la siguiente forma
revisado:
2020.10.15 21:48:01.401 SpeedTst (EURUSD,H1) tst 1 : : loops=10000000000 ms=10864370
2020.10.15 21:48:12.264 SpeedTst (EURUSD,H1) tst 2 : : loops=10000000000 ms=10862287
la diferencia no es significativa, es muy probable que si cambiamos las pruebas en el orden inverso, los resultados sean los contrarios
no crítico
no es correcto incluir rand() en la prueba ya que esta función consume muchos más recursos que otros comandos.
Creo que esta sería una prueba más correcta:
Resultado:
Afortunadamente, después de todo, lo he puesto en el caballo equivocado. Los sindicatos son un poco más rápidos. Son más cómodos de trabajar y el código es más legible.
no es correcto incluir rand() en la prueba, ya que esta función consume un orden de magnitud más de recursos que los otros comandos.
no es crítico en absoluto
el tiempo de ejecución de rand() es constante, lo más probable es que sea una función común de C++, busca en google "rand c++ source code"
debes inicializarlo, pero si lo inicializas con constantes puedes encontrarte con la optimización
en general, no entiendo la aversión a rand()
una opción es inicializar con algo como esto:
sería rápido.
corrió su script, imho no es correcto.
El tiempo principal es cargar el código en la caché y luego en el procesador
y añadir la discreción del temporizador del sistema
tenemos... casi un número al azar.
hay que probarlo durante mucho tiempo, unas 100500 veces, en mi opinión
Es poco probable que sea correcto incluir rand() en la prueba, ya que esta función consume un orden de magnitud más de recursos que los otros comandos.
Creo que esta sería una prueba más correcta:
Resultado:
Afortunadamente, sigo apostando por el caballo equivocado. Los sindicatos son un poco más rápidos. Son más cómodos de trabajar y el código es más legible.
Una vez por una vez, y a una distancia de la primera victoria, (como el primer método ha eliminado la línea de conversión de corto a algo)
no es crítico en absoluto
el tiempo de ejecución de rand() es constante, lo más probable es que sea una función común de C++, busca en google "rand c++ source code"
debes inicializarlo, pero si lo inicializas con constantes puedes encontrarte con la optimización
en general, no entiendo la aversión a rand()
como variante para inicializar con algo así:
será rápidoLa cuestión es que hay que medir exactamente lo que hay que medir, sin cosas extrañas.
El objetivo era medir exactamente lo que se necesita, sin extras
no
Si hay fragmentos de código repetidos, ¡obtendrá pruebas de optimización!
¿Qué diferencia hay en el tiempo de ejecución de rand()?
que se ejecute 2/3 del tiempo de la prueba, lo principal es que el tiempo de rand() sea constante
Su código MQL utilizará las funciones MQL del sistema, ¿verdad? - ¿qué sentido tiene probar un código perfecto?