Error de redimensionamiento de matrices en la versión beta 530 - página 5

 
angevoyageur:

Si quieres probar, y evitar la actualización de otro terminal, tienes que eliminar la siguiente carpeta :

  • Windows 7 : C: \ ProgramData \ MetaQuotes \ WebInstal después de una actualización exitosa, el terminal de prueba a los otros terminales no se actualizan.
  • Windows XP : C: \ Documentos y configuraciones \ ~ Todos los usuarios \ ~ Datos de la aplicación \ ~ MetaQuotes \ ~ Webinstall \ ~.

Esta información (probablemente tomada del foro ruso) ya no está actualizada. A partir de la v534, la actualización en Win7+ se pone en %appdata%\metaquotes\webinstall, no en %programdata%\metaquotes\webinstall.

Puede cambiar de nuevo en las versiones posteriores.

 
cyclops993:

Esta información (probablemente tomada del foro ruso) ya no está actualizada. A partir de la v534, la actualización en Win7+ se pone en %appdata%\metaquotes\webinstall, no en %programdata%\metaquotes\webinstall.

Puede cambiar de nuevo en las versiones posteriores.

Gracias.
 
angevoyageur:

Probablemente no soy un buen ejemplo, ya que soy un programador profesional. Así que no es un gran esfuerzo para mí, y me gusta aprender nuevos lenguajes de programación. También tengo algo de experiencia con oop.

. . . . .

En su mayor parte estoy de acuerdo con lo que has escrito, no soy un ingeniero de software pero he incursionado un poco con mql5 y no he necesitado usar ninguna POO en el código que he escrito. . . pero, aprendo mucho leyendo y entendiendo el código de otras personas, sin entender el principio detrás de la POO puede ser difícil seguir algún código de mql5.
 
RaptorUK: En su mayor parte estoy de acuerdo con lo que has escrito, no soy un ingeniero de software, pero he incursionado un poco con mql5 y no he necesitado usar ninguna POO en el código que he escrito... pero, aprendo mucho leyendo y entendiendo el código de otras personas, sin entender el principio detrás de la POO puede ser difícil seguir algún código de mql5.

En mi opinión, la POO implica creer en la encapsulación, la abstracción, la herencia y el polimorfismo. No creo que se suponga que puedas "seguir" los códigos de otros por la Abstracción. Todo lo que necesitas saber es lo que hace . En una nota más seria, creo que la POO proporciona un nivel de organización/catalogación que es forzado && soportado por el lenguaje && el IDE. Un programador no puede tener demasiada organización, esto probablemente termina ahorrando tiempo en futuros proyectos para la mayoría de los programadores.

 

Gracias por su respuesta angelvoyager que era una buena visión de alguien que si familiarizado con ambos lados de la moneda, estoy en el mismo barco que Raptor, los conceptos de oop han comenzado a interesarme y quiero aprender más sobre él, es bueno saber que no es del todo neccessary para seguir utilizando mql4 incluso con las características mql5, pero aún así, me gustaría entender cuáles son las ventajas de la codificación de acuerdo con los conceptos y principios de oop y lo bien que se aplican a la codificación de un pequeño proyecto como un EA.

 

Cuando codifico un EA normalmente acaba siendo similar al del libro, una función central que acumula el estado actual de las cosas, y almacena esa información en matrices globales rodeadas de funciones periféricas que utilizan la información en esas mismas matrices para decidir qué hacer, cada una de ellas llama a otras funciones de ayuda para calcular cosas como el tamaño de los lotes, etc. La función start() simplemente llama primero a la función central seguida de las funciones periféricas en orden de prioridad. Esa estructura básica funciona bastante bien aunque nunca me ha gustado el hecho de que todo se centre en el acceso global a esas matrices, pero no me ha gustado lo suficiente como para buscar una forma diferente de hacerlo. En otras palabras, funciona lo suficientemente bien como para no intentar arreglarlo.

Me gustaría saber en qué se diferenciaría un enfoque oop de ese y cuáles serían las ventajas del mismo.

 
SDC: Cuando codifico un EA normalmente acaba siendo similar al del libro, una función central que acumula el estado actual de las cosas, y almacena esa información en matrices globales rodeadas de funciones periféricas que utilizan la información de esas mismas matrices para decidir qué hacer, cada una de ellas llama a otras funciones de ayuda para calcular cosas como el tamaño de los lotes, etc. La función start() simplemente llama primero a la función central seguida de las funciones periféricas en orden de prioridad. Esa estructura básica funciona bastante bien aunque nunca me ha gustado el hecho de que todo se centre en el acceso global a esas matrices, pero no me ha gustado lo suficiente como para buscar una forma diferente de hacerlo. En otras palabras, funciona lo suficientemente bien como para no intentar arreglarlo.

Me gustaría saber en qué se diferenciaría un enfoque oop y cuáles serían sus ventajas.

Creo que estás describiendo un flujo de programa. No creo que esa sea la gran_idea detrás de la POO. (imo) La POO trata de abordar los siguientes problemas. Soy un novato en POO, pero estoy formando mi visión del mundo sobre ella.

1) ¿Son tus funciones independientes de las variables globales? En otras palabras, ¿son tus funciones objetos independientes? Encapsulación

2) ¿Su función oculta los detalles como local_variable_names? ¿Simplifica el volumen de códigos en la pantalla? Abstracción

3) ¿Tiene la capacidad de crear copias duplicadas de sí mismo para las modificaciones? ¿Como la capacidad de crear sus propios tipos de datos? Herencia.

4) ¿Tiene la capacidad de cambiar sobre la marcha? Ejemplo: ¿Puede la función manejar integer_array así como double_arrays? Polimorfismo.

Las formas en que la POO puede ayudar en la construcción_ea es similar a cómo un ea_builder ayuda a un no_programador a construir un expert_advisor. Usted acaba de tomar su favorito Order_Accounting_Function -> Data_Function -> Función de seguimiento de eventos -> Función de definición de volumen -> Función de definición de criterios de negociación -> Funciones de comercio -> Función de procesamiento de errores. Y boom, tienes un Expert_Advisor. Todas tus funciones de definición de criterios de negociación que has desarrollado a lo largo de los años pueden ser fácilmente intercambiadas.

Yo como ejemplo, si quisiera modificar mi asesor experto, tendría que estudiar dónde se aplican mis variables globales y qué otra función depende de ella (como en sus matrices de estado o de situación). OOP hace que sea as_simple_as Contabilidad(Opción_3); Display(Opción_1); Caption(Opción_5); TradingSys(Opción_7); VolumeSize(Opción2); OrderType(Opción_2) y eso es todo el experto.

Esto hace que sea más fácil para otra persona a utilizar su conjunto de bibliotecas, y por lo general lo que funciona para otra persona trabaja para usted también en algún momento en el futuro. Si nada más, piensa en objetos independientes en una línea de montaje :)

 
***P: (No quiero olvidar esto). Seguro que a la mayoría de nosotros no nos gusta no_saber qué hay en los códigos que usamos. O nos consumimos tratando de entender los códigos de alguien más, de lo contrario probablemente no lo usaríamos. Sin embargo, la mayoría de las funciones nativas ( ejemplo OrderSend() ) en mql4 son objetos desde nuestro punto de vista. No_vemos sus códigos sin embargo lo aceptamos. Creo que esta aceptación de las librerías de otros es algo que un programador profesional que trabaja en grandes proyectos tiene que aceptar y construir. De lo contrario, estás atascado re-creando la rueda.
 

La última versión de mi EA se está acercando a eso, es ahora todos los archivos de inclusión, pero no son lo suficientemente robusto para ser utilizado fuera de la caja sin al menos algunas modificaciones. El error que cometo a menudo es que no me sorprendo a mí mismo escribiendo código específico de criterios en funciones que deberían ser ambiguas hasta después del hecho y dependen demasiado de arrays glabales, cuando tenga tiempo voy a utilizar más arrays locales y más paso de parámetros para compensar el menor acceso global.

 
ubzen:
***P: (No quiero olvidar esto). Seguro que a la mayoría de nosotros no nos gusta no_saber qué hay en los códigos que usamos. O nos consumimos tratando de entender los códigos de alguien más, de lo contrario probablemente no lo usaríamos. Sin embargo, la mayoría de las funciones nativas ( ejemplo OrderSend() ) en mql4 son objetos desde nuestro punto de vista. No_vemos sus códigos sin embargo lo aceptamos. Creo que esta aceptación de las librerías de otros es algo que un programador profesional que trabaja en grandes proyectos tiene que aceptar y construir. De lo contrario, estás atascado re-creando la rueda.
Hay una diferencia. . . Yo no tengo otra opción que usar OrderSend() si quiero hacer un pedido. . . Sí tengo la opción de usar la librería de otro o no. . . incluso cuando se respeta el código fuente sigo intentando entenderlo antes de intentar usarlo, así es como se encuentran y arreglan algunos errores: https://www.mql5.com/en/forum/133792/page3 "Y mi corrección para elcomentario deRaptorUK :"

Razón de la queja: