Errores, fallos, preguntas - página 1499
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
El camino al infierno de la programación está pavimentado convariables globales" (Steve McConnell)
Se añadirá una advertencia sobre el no uso real de las variables locales y globales (de tipo simple o "complejo" sin constructores), pero la prioridad de esta tarea es baja.
Una activación por PC. No importa el número de terminales que haya.
¿Hay alguna confirmación en algún sitio?
El Comprador adquiere el derecho de activar el Producto tantas veces como especifique el Vendedor en el momento de la compra o alquiler del Producto. Por ejemplo, si se permiten 20 activaciones para el Producto en el momento de la compra, el Comprador podrá instalarlo en 20 configuraciones de hardware diferentes, incluso si el Vendedor reduce posteriormente este número.
https://www.mql5.com/ru/market/rules
Slawa, buenas tardes, ¿puedes comentar algo sobre la biblioteca (pregunta anterior)?
Esa es la forma de arreglarlo.
Esa es la manera de arreglarlo
Esa es la forma de arreglarlo.
¿Qué sentido tiene hacer esto? La biblioteca estándar no debe utilizarse a gusto del usuario, sino en estricta conformidad con la ideología de su estructura.Alexey Kozitsyn lo utiliza de forma incorrecta y por eso tiene muchos fallos en la salida. Sólo tiene que adjuntar el gráfico al objeto de la clase utilizando el método Attach después de haber creado el objeto CCart. Este método está sobrecargado y puede adjuntar tanto el gráfico actual como el necesario. Su cambio en el método de apertura acabará con la posibilidad de trabajar con el gráfico actual.
Y la petición a los desarrolladores de la biblioteca estándar - por favor, hacer una descripción de la estructura de la biblioteca. Muchos no lo entienden y empiezan a cometer errores, y tú vas con ellos, empiezas a romper todo lo que se ha hecho.
Pregunta sobre la biblioteca estándar de MT4.
Archivo Chart.mqh
Quiero abrir el gráfico. Utilizo el método Open(const string symbol_name,const ENUM_TIMEFRAMES timeframe).
1. Si utiliza un símbolo no disponible, la función ChartOpen() devolverá el error #4024 - error interno. Sin duda, el error puede ser interno, pero hay un código de error mucho más exacto - #4106 - un símbolo desconocido. ¿Tal vez deberíamos cambiar el código de error devuelto? Ya que el 4024 no indica al desarrollador nada sobre dónde buscar el error.
2. En caso de fallo, ChartOpen() asigna el valor 0 al campo m_chart_id, es decir, resulta que empezamos a trabajar con el gráfico actual, pero esto no es correcto, porque hemos fallado al abrir el gráfico que necesitamos para trabajar. En consecuencia, si no llamamos al método Detach(), el gráfico actual simplemente se cerrará después del trabajo. También creo que este no es el enfoque correcto. Es mejor que la función ChartOpen() devuelva -1 en caso de error.
¡¡¡Antes de trabajar con un gráfico, es necesario adjuntarlo a un objeto de clase mediante el método Attach !!! Si no quiere trabajar con el gráfico actual ( 0 ) entonces implemente esta comprobación y prohíba el uso del gráfico actual en su trabajo.
¿Y qué significa trabajar con el gráfico y no cerrarlo utilizando el método Detach para salir? ¿Es realmente difícil escribir una línea en el destructor de tus clases o en OnDeinit? El trabajo con los objetos debe estar estrictamente controlado, para evitar errores.
¿Qué sentido tiene hacer esto? La biblioteca estándar debe utilizarse no como el usuario quiere, sino en estricta conformidad con la ideología de su estructura.Alexey Kozitsyn no lo utiliza correctamente y por eso tiene muchos fallos en la salida. Sólo tiene que adjuntar el gráfico al objeto de la clase utilizando el método Attach después de haber creado el objeto CCart. Este método está sobrecargado y puede adjuntar tanto el gráfico actual como el necesario. Su cambio en el método Open acabará con la posibilidad de trabajar con el gráfico actual.
Y la petición a los desarrolladores de la biblioteca estándar - por favor, hacer una descripción de la estructura de la biblioteca. Mucha gente no lo entiende y empieza a cometer errores, y tú les sigues la corriente y empiezas a romper todo lo que has hecho.
He escrito claramente más arriba cuál es el sentido de hacerlo. Si hay un error al abrir el gráfico (por ejemplo, si se establece un símbolo no válido), entonces, por analogía con el método Attach(void), el método Open() vinculará el identificador actual del gráfico al objeto. ¿Por qué debería hacerlo? Si quiero trabajar con el gráfico actual, llamaré al método Attach(void) { m_chart_id=ChartID(); } y listo. Pero aquí tengo una situación evidentemente errónea en la que por alguna razón empiezo a trabajar con lo que no es. En general, es un problema de la propia función ChartOpen(), pero ya que no la cambian, al menos que la cambien en la biblioteca.
Otro argumento. Por favor, piense con lógica. El método se llama Open(). Implica que se abrirá algo nuevo. Y empezaremos a trabajar con este nuevo elemento. Pero aquí parece que estamos trabajando con el antiguo. No veo ninguna lógica. Y usted parece utilizar esta inexactitud para sus propios fines.
Este método está sobrecargado y puede vincular tanto el gráfico actual como el necesario. Y su cambio en el método Open acabará con la posibilidad de trabajar con el gráfico actual.
¿Qué va a matar? Seguirá teniendo el método Attach(), seguirá haciendo lo que estaba haciendo. Como has dicho, comprueba el ID de retorno de la función Open() y si es menor que 0, llama al método Attach(void). Eso es todo. No entiendo por qué hay que hacer tanto lío, si basta con llamar al método Attach(void) y adjuntar el gráfico actual.
Tal vez no te entienda. Entonces dame un ejemplo.
Por favor, pida también a los desarrolladores de la biblioteca estándar que hagan una descripción de la estructura de la biblioteca. Mucha gente no lo entiende y empieza a cometer errores, y tú les sigues la corriente y empiezas a romper todo lo que has hecho.