Mi enfoque. El núcleo es el motor. - página 47

 
Реter Konow:

Más bien, soy crítico con mi trabajo. Por eso estoy mejorando todo el tiempo.

Anatoly es bueno. No hay duda de ello. La biblioteca es buena.

Pero, incluso la ventana que te mostré hoy puede hacerse con gran dificultad. Por no hablar de mucho más.

Sólo por interés, puedes componer y mostrar aquí el código que necesitas escribir para repetir mi ventana y lo compararemos con mi versión.

Pregunta: ¿Puede describir por qué es necesaria esa ventana y cómo ayuda en el comercio semiautomático?

 
Реter Konow:

¿Por qué escribiste la biblioteca gui?

Trabajar con objetos gráficos en MT4 es también lo que más tiempo consume. No sólo hay que crear un objeto, sino también establecer un montón de propiedades. Para simplificar el trabajo con los objetos gráficos tenía varias funciones que permiten crear rápidamente algunos objetos gráficos. Cuando apareció MT5, todos los objetos gráficos en ella tienen aún más propiedades y el número de parámetros en las funciones aumentó tanto, que parecían tontos. Por lo tanto, surgió una cuestión: cómo simplificar el trabajo con los objetos gráficos en las nuevas condiciones. A medida que aparecía la POO, se consideraban sus aplicaciones. Como resultado, primero se creó una clase para trabajar rápidamente con un objeto gráfico. Entonces surgió la idea de crear varios elementos compuestos. Me gustó la idea y escribí el primer artículo: cómo crear mis propios controles. Todo fue muy bien y en 2-3 semanas, practicando por diversión, había creado varios controles similares a los estándar y creado una biblioteca, su descripción se da en el segundo artículo. El tercer artículo es sobre formularios, pero es bastante formal para un conjunto, decidí completar la biblioteca y los formularios eran deseables para ello. Pero fue una pena lo de las formas, no se me ocurrió cómo mejorarlas. Además, entonces no había eventos de movimiento del ratón, por lo que las barras de desplazamiento son extrañas y el formulario se arrastra de una manera inusual. En cuanto a las formas, en lugar de incitarlas, las anatematizaron. Y no hay mucho trabajo para que la biblioteca sea muy útil. Incluso tengo pensamientos para mejorarlo, rehacer las barras de desplazamiento, el formulario de arrastrar y soltar, y hacer el formulario en sí de una manera diferente, que no copiaría una clase en blanco, y crear un objeto y conectar los controles a la misma.

 
Vitaly Muzichenko:

Pregunta por pregunta: ¿Puede describir por qué es necesaria esa ventana y cómo ayuda en el comercio semiautomático?

El trading semiautomático, es la misma "basura" incomprensible y financieramente perjudicial que el trading totalmente automático o manual.

Otro tipo de comercio que puede interesar a los operadores.

 
Artyom Trishkin:

Considérelo como mejor le parezca. Puedes releer las discusiones de los artículos de Anatoly - ahí están tus intentos de competir. Pero Anatoly lo hizo todo hace tiempo, modestamente, cualitativamente, profesionalmente, "sin ruido y sin polvo", y tú sigues alabándote.

La cuestión es: ¿cómo utilizarlo? ¿Hay que leer 50 artículos? Y, sin embargo, se le llama "rápido y fácil", qué paradójico.

 
Dmitry Fedoseev:

La cuestión es: ¿cómo utilizarlo? ¿Hay que leer 50 artículos?

De alguna manera, lo descubrí rápidamente, sin los artículos. Los leí por supuesto - salieron, los leí desde mi móvil. Para entender lo que allí se describe. Pero crear y trabajar con objetos allí es más sencillo que en el de Peter. Crear el número necesario de objetos con descripciones de propiedades en OnInit() y utilizar sus mensajes en OnChartEvent(). El modelo de evento habitual.

Más tarde adapté su librería para mí - la hice multiplataforma, añadí guardar los valores de todos los objetos creados, para evitar que se restablezcan a su estado original durante la reinicialización, añadí sonidos para muchas interacciones con los objetos (ajustados por defecto e individualmente, y desactivados - para que no sonaran y tintinearan constantemente), lo probé y lo abandoné - tengo mis propias ideas. La librería de Anatoly no permite crear objetos sobre la marcha, mediante nuevos del programa, no permite hacer más de una ventana activa... En general, tiene mucho que desarrollar. Pero esta es una pregunta para él. O a ti mismo - para hacer lo que necesitas para tus necesidades y con todos los objetos necesarios y las posibilidades de su uso.

 
Artyom Trishkin:

De alguna manera, lo descubrí rápidamente - sin los artículos. Los leí por supuesto - salieron, los leí desde mi móvil. Para entender lo que allí se describe. Pero crear y trabajar con objetos allí es más sencillo que en el de Peter. Crear el número necesario de objetos con descripciones de propiedades en OnInit() y utilizar sus mensajes en OnChartEvent(). Es el modelo de evento habitual.

A continuación, digitalicé su biblioteca para mí - la hice multiplataforma, añadí valores de guardado de todos los objetos creados, para que no se restablezcan a su estado original cuando se reinicien, añadí sonidos para muchas interacciones con los objetos (establecidos por defecto e individualmente, y desactivados - para que no sonara constantemente y se disparara), jugué y abandoné - tengo mis propias ideas. La librería de Anatoly no permite crear objetos sobre la marcha, mediante nuevos del programa, no permite hacer más de una ventana activa... En general, tiene mucho que desarrollar. Pero esta es una pregunta para él. O a ti mismo - para hacer lo que necesitas para tus necesidades y con todos los objetos necesarios y las posibilidades de su uso.

Creo que es posible crear objetos a través de new. Y la creación de formularios es la misma tonta que la mía, y en la biblioteca estándar es la misma - usted tiene que copiar la plantilla de formulario. Es interesante que se me critique tanto, casi se me anatema por mis formas, pero no han pasado de ahí.

 

ese es el ritmo... ¡esa es la velocidad!

Mientras me movía a 60km, 15 páginas se lanzaron al tema. Total de 1 página para 4(!) km ;-)

Peter no tiene tiempo para mover el núcleo y el motor del núcleo.

 
Dmitry Fedoseev:

Probablemente los objetos se pueden crear con lo nuevo, no puede ser imposible, ¿o es realmente imposible? Y la creación de formularios es tan tonta como la mía, y es lo mismo en la biblioteca estándar: hay que copiar la plantilla del formulario. Es interesante que se me critique tanto, casi se me anatema por mis formas, pero no se ha pasado de ahí.

Sí, tengo que repetir el mismo código cien veces para cien ventanas, pero con diferentes parámetros. Me deshice de eso. Para cada control creé un método universal de su creación - sólo tenía que introducir los parámetros necesarios para cada elemento. Por lo tanto, me resultó muy fácil crear - necesitaba una ventana - CreateWindow(inicial, individual, parámetros), etc. Y luego, si se crea el elemento, es posible añadirle chucherías, o dejarlo como estándar por defecto.

Es decir, aproximadamente (estructuralmente) así:

CreateWindow(0);

CreateButton(1,0,координаты);

CreateButton(2,0,координаты);

...

CreateNuclearBomb(1,0,координаты);

...

Bueno y ya es suficiente con tener una ventana con dos botones y una bomba atómica :)

Pero he rehecho la biblioteca de Anatoly. Me parece que es más complicado.

En cuanto a la creación en nuevo - si mi memoria no cambia - hace tiempo que no miro el código - tiene un objeto a nivel global, y ya sirve para crear y controlar todos los elementos.

Por supuesto, usted puede tratar de hacer una lista con varias bibliotecas, creado por el nuevo, y luego en el temporizador y eventos para ver estas listas y lo que sucede en ellos. Pero una vez que lo probé, cada uno de esos objetos reacciona a las acciones de los objetos vecinos: cuando mueves una ventana, el resto también se agita. Así que he renunciado a intentar averiguarlo: no tengo tiempo.

 
Artyom Trishkin:

Sí, tienes que repetir el mismo código cien veces para cien ventanas, pero con tus propios parámetros. Me deshice de eso - para cada control hice un método universal de su creación - sólo escriba los parámetros correctos para cada elemento. Por lo tanto, me resultó muy fácil crear - necesitaba una ventana - CreateWindow(inicial, individual, parámetros), etc. Y luego, si se crea el elemento, es posible añadirle chucherías, o dejarlo como estándar por defecto.

Es decir, aproximadamente (estructuralmente) así:

CreateWindow(0);

CreateButton(1,0,координаты);

CreateButton(2,0,координаты);

...

CreateNuclearBomb(1,0,координаты);

...

Bueno y ya es suficiente con tener una ventana con dos botones y una bomba atómica :)

Pero he rehecho la biblioteca de Anatoly. Me parece que es más complicado.

En cuanto a la creación en nuevo - si mi memoria no cambia - hace tiempo que no miro el código - tiene un objeto a nivel global, y desde él ya se trabaja para crear y controlar todos los elementos.

Por supuesto, usted puede tratar de hacer una lista con varias bibliotecas, creado por el nuevo, y luego en el temporizador y eventos para ver estas listas y lo que sucede en ellos. Pero una vez que lo probé, cada uno de esos objetos reacciona a las acciones de los objetos vecinos: cuando mueves una ventana, el resto también se agita. No tengo tiempo para resolverlo.

¿Qué es el parámetro 0 para CreateWindow(0) y CreateButton()? Con CreateWindow(0), es un identificador de ventana, mientras que con CreateButton(), significa que los botones estarán en el formulario 0. ¿O no? ¿Sólo es posible un formulario y todos los controles estarán en él?

 
Dmitry Fedoseev:

¿Cuál es el parámetro 0 de CreateWindow(0) y CreateButton()? Con CreateWindow(0) este es el identificador de la ventana y con CreateButton() significa que los botones estarán en el formulario 0. ¿O no? ¿Sólo es posible un formulario y todos los controles estarán en él?

Cada elemento puede estar unido a otro. Has acertado, el "0" es el identificador del elemento. Era una representación esquemática del principio de diseño de la interfaz gráfica de usuario. Los botones lo tienen, por lo que se adjuntarán a esta ventana. Si no añadiera un enlace a la ventana, ésta quedaría unida al gráfico. Creo que así es como se hace allí, no lo recuerdo exactamente.

Razón de la queja: