Preguntas de los principiantes MQL5 MT5 MetaTrader 5 - página 1163
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
Si se ha introducido, entonces hay una diferencia.
La lectura de una variable inicializada es siempre más rápida que la de una función.
No hay ninguna diferencia. No puedo encontrar el enlace ahora, pero la respuesta se dio hace mucho tiempo.
No hay ninguna diferencia. No puedo encontrar el enlace ahora - pero la respuesta se dio hace mucho tiempo.
Para Juan y las advertencias del compilador, no hay diferencia ))
No hay ninguna diferencia. Cuando se compila todo, todo se reúne en una sola llamada. Por eso es mejor hacerlo todo a través de funciones.
Iniciemos un hilo aparte sobre esto también y discutamos sobre ello como sobre los pips y los puntos... Eso le dará a la gente algo que hacer...
Os encanta imponer vuestras opiniones a todo el mundo...
Hay un MA con algún desplazamiento. Sea MA_shift = 5;
¿Por qué es posible obtener el valor correcto de MA de la barra cero del gráfico sólo si se pasa un doble desplazamiento negativo al CopyBuffer?
CopyBuffer(hMA, 0, -2*5, rates_total, MA_Buf);
MA_Buf[0] tiene ahora el valor correcto.
Hay un MA con algún desplazamiento. Sea MA_shift = 5;
¿Por qué es posible tomar el valor correcto de MA de la barra cero del gráfico, sólo si se pasa un doble desplazamiento negativo en CopyBuffer?
CopyBuffer(hMA, 0, -2*5, rates_total, MA_Buf);
MA_Buf[0] tiene ahora el valor correcto.
Dibuje primero un cuadro y especifique qué es la "barra cero" para su indicador con el parámetro de desplazamiento.
Leer una variable, más rápido que una función.
En realidad no, he comprobado que es más rápido que _Symbol o Symbol()https://www.mql5.com/ru/forum/160683/page933#comment_12780905.
el tiempo de acceso es el mismo, la optimización del código en MQL es muy buena, así que usa lo que sea conveniente.
según mis pruebas el tiempo de acceso puede ser diferente dependiendo de dónde se describa la variable y con qué modificadores, pero hay un 2-5% de velocidad, que en principio se puede achacar a la implementación en una determinada build, depende del número de build
¿Podría aconsejar cómo obtener fácil y rápidamente el resultado de la última operación con el símbolo actual? Ya que la documentación es bastante complicada. Para obtener el resultado, primero hay que encontrar el ticket de la operación requerida, para encontrar el ticket hay que encontrar la operación en el historial por su índice, el índice hay que buscarlo en el historial, sin olvidar que hay que filtrar por el símbolo.
Para evitar ir al historial de operaciones cada vez, basta con capturar la operación enOnTradeTransaction con el tipo
TRADE_TRANSACTION_DEAL_ADD - añadir una operación al historial
m_symbol.Name() - símbolo actual, InpMagic - identificador único del Asesor Experto
no es un hecho, he comprobado que es más rápido que _Symbol o Symbol()https://www.mql5.com/ru/forum/160683/page933#comment_12780905
Es decir, el tiempo de acceso es uno y el mismo, la optimización del código en MQL es muy chula, así que lo que sea conveniente, úsalo.
según mis pruebas el tiempo de acceso puede ser diferente dependiendo de dónde se describa la variable y con qué modificadores, pero hay un 2-5% de velocidad, que en principio se puede achacar a la implementación en una determinada build, depende del número de build
Estoy de acuerdo en que el optimizador funciona bien, pero confiar siempre en el optimizador del compilador es un error.
Curiosamente, están en mql como indocumentados.Hay que pensar con antelación en cómo se ejecuta el código a nivel de memoria, inicialización y devolución de valores.
Es decir, calcular el número de acciones ejecutadas por operación y si hay menos acciones, el código es más rápido. Y toma como práctica escribir un código óptimo de una vez.
En los códigos cortos quizás no haya diferencia, pero cuando hay un proyecto con cientos de archivos, es cuando aparecen los retrasos,
y sólo habrá un perfilador y reescribir el código. Cada uno elige su propio rastrillo )).
También busque en Google las palabras clave