Cualquier pregunta de los recién llegados sobre MQL4 y MQL5, ayuda y discusión sobre algoritmos y códigos - página 1591

 
Maxim Kuznetsov:

con la estática en mql todo se ejecuta y está lleno de errores. El código siempre se construye/compila como un todo, sin obj intermedio y la declaración de estática es sólo un tributo a la tradición.

Si uno usa estática en mql - eso es casi 100% del mundo C/C++/C# ; o uno se asoma e imita ridículamente :-)

Pero también hay __hilo__ :-)

Si escribes estática en un módulo y no en funciones, sí. Lo más probable es que el codificador no sepa lo que está haciendo. :) Y lo que se refiere a las variables locales de las funciones y, lasvariables locales de los métodos de la clase, y también los campos de la clase, es incluso una cosa muy útil, creo.

Y los errores pueden surgir por no entender el conceptode variables estáticas y, en consecuencia, utilizarlas incorrectamente.
 
MakarFX:

después de

añadir

no ayudó) dondequiera que lo ponga)

 
Mihail Matkovskij:

Si escribes static en un módulo y no en una función, sí. El codificador probablemente no sabe lo que está haciendo. :) Y lo que se refiere a las variables locales de las funciones y, lasvariables locales de los métodos de la clase, y también los campos de la clase, es incluso una cosa muy útil, en mi opinión.

La forma de resolver los conflictos de nomenclatura sencillos es añadir m_ a_ mierda a las entidades, porque el compilador no conoce el ámbito y jura.

Dos programadores independientes no deben nombrar las funciones, clases y variables globales de la misma manera. Y los parámetros de los métodos y funciones deben ser únicos. También deberían hacerlo las variables locales.

no hay estática aquí :-)

Lo siento, me he equivocado.

 
законопослушный гражданин:

no sirvió de nada) donde quiera que lo pusiera)

Si quieres entender el código, mira toda la lógica del EA, qué hace y bajo qué condiciones.

He descrito todo el asesor muy claramente, incluso para los principiantes, si no lo entiendes, pregunta.

Si quiere que le redacten un EA, como "ciudadano respetuoso de la ley", vaya aquí

 
Maxim Kuznetsov:

La forma de resolver los conflictos de nombres simples es añadir la mierda m_ a_ a las entidades porque el compilador no sabe cómo alcance y jura.

Dos programadores independientes no deben nombrar las funciones, clases y variables globales de la misma manera. Y los parámetros del método y de la función deben ser únicos. También deberían hacerlo las variables locales.

no hay estática aquí :-)

Lo siento, me he equivocado.

Las tareas pueden ser diferentes y utilizar variables estáticas sólo para resolver conflictos de espacio de nombres, por supuesto, no debería (pero eso es inexacto... :)). Pero puede, por ejemplo, registrar cuántos objetos de alguna clase se han creado. Además, las constantes estáticas, algo muy útil. Métodos estáticos, etc. Puedes prescindir de la estática, por supuesto. Pero todo esto depende de muchos factores. La tarea en cuestión y las formas de resolverla. Bueno, por supuesto, depende de la comprensión del concepto de programación porparte de los programadores, en primer lugar.

 
Mihail Matkovskij:

Las tareas pueden ser diferentes y el uso de variables estáticas sólo para resolver conflictos de espacio de nombres no es ciertamente una buena idea (pero es inexacto... :)). Pero, por ejemplo, se puede anotar cuántos objetos de alguna clase se han creado. Además, las constantes estáticas, algo muy útil. Métodos estáticos, etc. Puede hacerlo sin estática, por supuesto. Pero todo esto depende de muchos factores. La tarea en cuestión y las formas de resolverla. Bueno, por supuesto, depende de la comprensión del concepto de programación porparte del programador, en primer lugar.

Ahora coge una biblioteca y #inclúyela...

Tendrás muchos conflictos de la nada. La razón es que usted y el autor se refieren a una misma cosa como dos personas razonables. En un simple EA, doble SL - y un montón de advertencias.

¿Cómo diablos puedo nombrar un stop loss, de manera que se garantice que no va a coincidir con nadie (¡sic!, con los nombres de los parámetros de los métodos), si se llama stop loss y significa exactamente eso?

Ooh ! la solución es inp_SL...y m_SL y a_SL de la visibilidad... dejar que los desarrolladores arrastren los metadatos y las áreas de definición en los nombres.

no hay lugar para enojarse...

 
Maxim Kuznetsov:

Ahora coge alguna biblioteca y #inclúyela para ti...

vas a tener muchos conflictos por nada. Sólo porque dos personas razonables, tú y el autor, se refirieron a una misma cosa como una misma cosa. En un simple EA, doble SL - y un montón de advertencias.

¿Cómo diablos puedo nombrar un stop loss, de manera que se garantice que no va a coincidir con nadie (¡sic!, con los nombres de los parámetros de los métodos), si se llama stop loss y significa exactamente eso?

Ooh ! la solución es inp_SL...y m_SL y a_SL de la visibilidad... dejar que los desarrolladores arrastren los metadatos y las áreas de definición en los nombres.

no hay lugar para la ira...

Rara vez utilizo las bibliotecas de cadenas, ya que rara vez estoy satisfecho con ellas. Prefiero hacer la mía propia. Pero puedo utilizar una biblioteca de terceros, sólo si necesito crear algo que ya hasido pensado muchas veces antes que yo. Y entonces esas bibliotecas de terceros a menudo tienen que ajustarse (por ejemplo, si de repente aparece un error, o me faltan algunas funciones o métodos necesarios). Y si hay demasiados conflictos como los que has descrito, es mejor buscar otra biblioteca. O cambiar los nombres mediante la sustitución automática, en el caso más extremo. Pero yo no lo haría.

 
MakarFX:

Si quieres entender el código, repasa toda la lógica del EA, qué hace y bajo qué condiciones.

Te he dejado todo el EA muy claro, incluso para los principiantes, si no lo entiendes, pregunta.

Si quieres que te redacten un EA, puedes ir aquí, como un "ciudadano de a pie ".

No, no quiero. Quiero resolverlo por mi cuenta.

El manual de MQLQL está escrito en un idioma diferente al mío, por lo que no entiendo algunas cosas, pero lo del Asesor Experto está explicado, gracias.

 
Maxim Kuznetsov:

Ahora coge alguna biblioteca y #inclúyela para ti...

tendrás muchos conflictos de la nada. Sólo porque dos personas razonables, tú y el autor, se refirieron a una misma cosa como una misma cosa. En un EA simple, la entrada de doble SL - y un montón de advertencias.

¿Cómo diablos puedo nombrar un stop loss, de manera que se garantice que no va a coincidir con nadie (¡sic!, con los nombres de los parámetros de los métodos), si se llama stop loss y significa exactamente eso?

Ooh ! la solución es inp_SL...y m_SL y a_SL de la visibilidad... dejar que los desarrolladores arrastren los metadatos y las áreas de definición en los nombres.

no hay lugar para la ira...

Aparentemente es un poco molesto...)) Nunca veo el sentido de insertar los grandes códigos binarios de otra persona en el cuerpo del programa. O bien requieren instrucciones reales, o bien hay que descomponerlas y entenderlas primero))

El generador de prefijos únicos en el proyecto es nuestro todo))))

 

No entiendo por qué todo el mundo habla de algún tipo de conflicto de nombres... Debe tratarse de programación procedimental... Por lo que sé, si hay varios conflictos de este tipo, se pueden resolver fácilmente con prefijos. Eso es todo... ¿Por qué tienes que escribir tanto sobre ello...? :)

Además, hace mucho tiempo, los desarrolladores añadieron una cosa como el espacio de nombres. No sé la 4ª versión, pero la 5ª la tiene desde hace tiempo. Así que no veo un problema tan grande.

Razón de la queja: