Errores, fallos, preguntas - página 2258
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
Es necesario poder seguir los cambios en las propiedades de todos los gráficos, no sólo de aquel en el que se encuentra el programa MQL.
Hacer una muleta a través de un temporizador.
Hacer una muleta a través del temporizador.
No quiero hacer una muleta. Los desarrolladores de MQ pueden ampliar las posibilidades.
Foro sobre comercio, sistemas de comercio automatizados y pruebas de estrategias
Bichos, errores, preguntas
Anatoli Kazharski, 2018.08.20 08:11
Quiero poder rastrear los cambios en las propiedades de todos los gráficos, no sólo de aquel en el que está colocado el programa MQL.
Ahora mismo el eventoCHARTEVENT_CHART_CHANGE no contiene ningún otro parámetro:
Evento
Valor del parámetro id
valor del parámetro lparam
valor del parámetro dparam
Valor del parámetro sparam
El evento de cambiar las dimensiones del gráfico o cambiar las propiedades del gráfico a través del diálogo de propiedades
CHARTEVENT_CHART_CHANGE
-
-
-
//---
Para seguir este evento en otros gráficos abiertos, se podría habilitar la supervisión especificando el ID del gráfico deseado.
Por ejemplo, así:
Como lparam-parámetro podría ser el identificador del gráfico en el que se realizaron los cambios. El parámetro sparam podría ser el nombre del símbolo.
Error durante la ejecución:
Resultado: esperado:
A::f<int>:1 A::f<int>:1
A::f<int>:753790661 A::f<int>:2
A::f<int>:Error:4007
Por lo demás:
Bien. ¿Cuál es la diferencia? ¿Por qué el tamaño del array se ha convertido de repente en 753790660 (en lugar de uno) y como consecuencia se ha agotado la memoria (4007)? MT5\1881\32
Además... si elimina literalmente tres caracteres de la clase en el primer caso, el resultado también será correcto
Gracias por el mensaje.
Arreglado.
Para que funcione en la compilación actual, no especifique el scop de la clase al declarar sus métodos.
Los demás informes de errores están relacionados con éste y no se reproducirán una vez que se realicen las correcciones.
el ejemplo de la ayuda no funciona:
https://www.mql5.com/ru/docs/basis/function/operationoverload
el ejemplo en la parte inferior de la página no funciona, de las palabras:
Другой пример перегрузки операции индексирования - работа с матрицами. Матрица представляет собою двумерный динамический массив, размеры массивов заранее неопределены. Поэтому нельзя объявить массив вида array[][] без указания размера второго измерения и затем передавать этот массив в качестве параметра. Выходом может служить специальный класс CMatrix, который содержит в себе массив объектов класса CRow.
el compilador escribe:
no se puede devolver el objeto 'CMatrix', no se encuentra el constructor de copia 'CMatrix::CMatrix(const CMatrix &)' tst.mq5 244 14
no se puede devolver el objeto 'CMatrix', no se encuentra el constructor de copia 'CMatrix::CMatrix(const CMatrix &)' tst.mq5 261 11
no se puede devolver el objeto 'CMatrix', no se encuentra el constructor de copia 'CMatrix::CMatrix(const CMatrix &)' tst.mq5 281 14
no se puede devolver el objeto 'CMatrix', no se encuentra el constructor de copia 'CMatrix::CMatrix(const CMatrix &)' tst.mq5 303 11
4 error(es), 0 advertencia(s) 5 1
Error de compilación (ME\1881\32)
Y así:
bien. ¿Qué diferencia hay?Esta no es la razón.
esto ayuda mucho al leer el código y ayuda a evitar errores en algunas situaciones.Tenga en cuenta que esto en MQL no funciona en todas partes:
que en C++ se compila sin error
Tenga en cuenta que esto en MQL no funciona en todas partes:
que en C++ compila sin error
El C++ tiene un don para la perversión. Tal vez en algún lugar de las macros esto podría ser utilizado, pero no directamente.
Puede ser posible usar esto en algún lugar de las macros, pero no directamente.
Las macros no tienen nada que ver con esto - sustituye esto por un puntero normal y tendrás exactamente la misma sintaxis:
En MQL no se puede hacer referencia explícita a b.A::x, mientras que en C++ sí se puede. ¿Por qué esta restricción?Las macros no tienen nada que ver con esto: sustituye esto por un puntero ordinario y tendrás exactamente la misma sintaxis:
En este caso está justificado. La variante con esto - no está claro por qué escribirlo así. Cuando A:: ya lo dice todo.