Discusión sobre el artículo "Biblioteca para el desarrollo rápido y sencillo de programas para MetaTrader (Parte XVII): Interactividad de los objetos de la biblioteca." - página 3

 
Artyom Trishkin:

Se pueden obtener propiedades de orden. También se pueden obtener las propiedades de las posiciones. De las propiedades de las posiciones se puede obtener toda su historia - desde la orden de operación hasta el cierre. Cada operación de una posición le permite conocer la orden, que se utilizó para conseguir la operación. En general - toda la historia de cualquier posición puede ser fácilmente obtenida, y todas las órdenes y operaciones pueden ser encontradas en ella.

¡genial!

este es un material necesario para mi estudio, se que sabes como esta organizado el sistema de ordenes de MT5 (desafortunadamente, practicamente no hay gente con esta informacion en este foro).

por favor dime el numero del articulo donde puedo encontrar este material.

 
Igor Makanu:

¡Genial!

este es un material necesario para mi estudio, se que tienes conocimiento de como funciona el sistema de ordenes MT5 (desafortunadamente, casi no hay gente con esta informacion en este foro)

por favor dime donde puedo encontrar este material.

La primera parte habla de la estructura general de la biblioteca (sigue siendo casi la misma que se describe, pero sufre mejoras en el proceso de narración).

En la segunda parte se empieza a crear una colección de órdenes y posiciones. En la cuarta parte, se empieza a hablar de los eventos de negociación..... Y todo esto se extiende hasta el noveno artículo, donde comienza la finalización a la compatibilidad con MQL4.

 
Artyom Trishkin:

El surrealismo, Peter, sólo está en tu cabeza - aquí todo está estructurado y es fácilmente accesible....

Te has adentrado demasiado en la filosofía en tu elaboración, olvidando la practicidad de la construcción de tal "esquema ideal". He aquí algunas citas:

"Hoy vamos a ir un poco más allá, y dotar a este objeto, y por lo tanto - y cualquier otro objeto de la biblioteca, la capacidad de establecer qué propiedades serán controladas externamente por sus cambios, el tamaño del cambio controlado y el tamaño del nivel controlado del valor de la propiedad del objeto. "

Considere lo siguiente: "...la magnituddel cambiocontrolado y el tamañodel nivel controladodel valor de la propiedad delobjeto". ¿Qué es " la magnitud del nivel controlado del valor de la propiedad del objeto"? Es decir, 1. Existe una propiedad del objeto. 2. La propiedad tiene un nivel controlado de valor. 3. El nivel controlado tiene n número de valores y .... 4. También está el tamaño del cambio controlado, que puede variar. ¿No parece una exageración en el número de entidades? Esto es sólo una gota en el mar de filosofía de tu artículo.

Más adelante:

"Así que aquí es adecuado para controlar el cambio de estados de las propiedades de los objetos: entero y real - su lista para cada clase heredera es única y representará el identificador de evento. También tendremos que tener en cuenta la dirección del cambio de las propiedades - un aumento o disminución en el valor de la propiedad - vamos a llamarlo la causa del evento, y el valor por el que se cambió la propiedad del objeto. El identificador del evento, su causa y el valor del cambio se registrarán en una clase simple del evento base del objeto y se almacenarán en la lista de eventos ocurridos simultáneamente. "

Hagamos una lista de las entidades encontradas:

1."Cambio de estados de las propiedades del objeto". Es decir, hay propiedades y hay estados de propiedades del objeto. Ostensiblemente, por estado de una propiedad se entiende su valor. Pero el valor se puede representar como un objeto cuya propiedad será su tipo. Lo que se hizo dividiendo los estados de la propiedad (valor) en entero y real. Luego, había una referencia a alguna lista única (no sé cuándo apareció exactamente) de estados de propiedades enteros y reales de los objetos de los sucesores de la clase.

2. 2. "Dirección de cambio de las propiedades" Bueno, está claro: el aumento/disminución del valor es la dirección del cambio. PERO, ¿POR QUÉ LA DIRECCIÓN DEL CAMBIO ES LA CAUSA DEL SUCESO? En principio, el cambio de dirección es la causa del suceso, no la dirección en sí.

3. " Escribiremos el identificador del evento, su causa y el valor del cambio en una clase simple del evento base del objeto y lo guardaremos en la lista de eventos ocurridos simultáneamente."

Esto es sorprendente. Hay un identificador de evento. Bien. Hay la causa del evento y la cantidad de cambio en algo (sólo la cantidad de cambio. abstractamente), bien. ¡PERO HAY UNA SIMPLE CLASE BASE DE EVENTOS! Repito: ¡Una simple clase base de eventos! Abstracción de la abstracción. El evento, como cosa-en-sí, ¡ha encontrado su clase! Pero es sólo un evento objeto. Así que puede haber eventos de propiedad, eventos de nivel de valor (estados de propiedad).

Y la guinda del pastel:

4."y almacenar en la lista de eventos ocurridos concurrentemente". Es decir, también hay una lista de eventos ocurridos concurrentemente. Y por qué no... Pero, entonces debería haber una lista de sucesos con niveles de diferencia temporal controlada respecto a otros sucesos. Podemos añadir eso, ¿no?).

Esto es sólo un pequeño fragmento de un artículo más amplio de la serie. ¿Crees que es muy simple? )) Estudiaré sus artículos como un interesante experimento de programa de una persona que se suponía que iba a ser filósofo por vocación)).

 
Реter Konow:

Te has adentrado demasiado en la filosofía en tu elaboración, olvidando la practicidad de construir tal "esquema ideal".He aquí algunas citas:

"Hoy vamos a ir un poco más allá, y dotar a este objeto, y por lo tanto - y cualquier otro objeto de la biblioteca, la capacidad de establecer qué propiedades serán controlados externamente por sus cambios, el tamaño del cambio controlado y el tamaño del nivel controlado del valor de la propiedad del objeto. "

Considere lo siguiente: "...la magnituddel cambiocontrolado y el tamañodel nivel controladodel valor de la propiedad delobjeto". ¿Qué es " la magnitud del nivel controlado del valor de la propiedad del objeto"? Es decir Existe una propiedad del objeto. 2. La propiedad tiene un nivel controlado de valor. 3. El nivel controlado tiene n número de valores y .... 4. También está el tamaño del cambio controlado, que puede variar. ¿No parece una exageración en el número de entidades? Esto es sólo una gota en el mar de filosofía de tu artículo.

Además:

"Por eso es conveniente controlar el cambio de estados de las propiedades del objeto: entero y real - su lista para cada clase heredera es única y representará el identificador del evento. También tendremos que tener en cuenta la dirección del cambio de las propiedades - un aumento o disminución del valor de la propiedad - llamémoslo la causa del evento, y el valor por el que se cambió la propiedad del objeto. El identificador del evento, su causa y el valor del cambio se registrarán en una clase simple del evento base del objeto y se almacenarán en la lista de eventos ocurridos simultáneamente. "

Hagamos una lista de las entidades encontradas:

1."Cambio de estados de propiedades de un objeto". Es decir, hay propiedades y hay estados de propiedades del objeto. Aparentemente, el estado de una propiedad significa su valor. Pero el valor se puede representar como un objeto cuya propiedad será su tipo. Lo que hiciste dividiendo los estados de las propiedades (valor) en entero y real. Luego, había una referencia a alguna lista única (no sé cuándo apareció exactamente) de estados enteros y reales de propiedades de objetos de clases sucesoras.

2. 2. "Dirección de cambio de las propiedades" Bueno, está claro - aumento / disminución del valor es la dirección del cambio. PERO, ¿POR QUÉ LA DIRECCIÓN DEL CAMBIO ES LA CAUSA DEL SUCESO? En principio, el cambio de dirección es la causa del suceso, no la dirección en sí.

3. "El identificador del evento, su causa y el valor del cambio se registrarán en una clase simple del evento base del objeto y se almacenarán en la lista de eventos ocurridos simultáneamente."

Esto es asombroso. Hay un identificador de evento. Bien. Hay la causa del evento y la cantidad de cambio en algo (sólo la cantidad de cambio. abstractamente), bien. ¡PERO HAY UNA SIMPLE CLASE BASE DE EVENTOS! Repito: ¡Una simple clase base de eventos! Abstracción de la abstracción. El evento, como cosa-en-sí, ¡ha encontrado su clase! Pero es sólo un evento objeto. Así que puede haber eventos de propiedad, eventos de nivel de valor (estados de propiedad).

Y la guinda del pastel:

4."y almacenar en la lista de eventos ocurridos concurrentemente". Así que también hay una lista de eventos ocurridos concurrentemente. Y por qué no... Pero, entonces debería haber una lista de sucesos con niveles de diferencia temporal controlada con respecto a otros sucesos. Se puede añadir, ¿no?)

Esto es sólo un pequeño fragmento de un artículo más amplio de la serie. ¿Crees que es muy simple? )) Estudiaré sus artículos como un interesante experimento de programa de una persona que se suponía que iba a convertirse en filósofo por vocación)).

Qué complicado es todo en tu cabeza :D

La complejidad te la has inventado tú.

A lo mejor soy muy malo explicando las cosas, pero....

Tenemos un precio. El precio es una propiedad de un símbolo. El precio tiene la capacidad de cambiar. Ya sea en la dirección de su aumento o en la dirección de su disminución. El tamaño (la cantidad por la cual el precio aumentó o disminuyó tenemos el derecho de controlar y establecer - esto es "el tamaño del cambio controlado"). Y también el precio puede cruzar el valor fijado (controlado por nosotros en el programa), que también podemos fijar - esto es "el tamaño del nivel controlado del valor de la propiedad del objeto".

¿Está claro?

Tenemos un spread. El spread es una propiedad de un símbolo. El spread tiene la posibilidad de cambiar. Ya sea hacia su aumento o hacia su disminución. El tamaño (la cantidad en la que el spread ha aumentado o disminuido tenemos el derecho de controlarlo y establecerlo - esto es "el tamaño del cambio controlado"). Y también el spread puede cruzar el valor fijado (controlado por nosotros en el programa), que también podemos fijar - esto es "el tamaño del nivel controlado del valor de la propiedad del objeto".

¿Queda claro?

Son sólo dos propiedades diferentes de un mismo objeto - un símbolo. Que sea el actual. Aunque pueden ser propiedades de diferentes símbolos - objetos son diferentes, pero las propiedades del mismo tipo de objetos son los mismos. Y el control sobre las mismas propiedades del mismo tipo de objetos es el mismo. Absolutamente. Porque se ejecuta en un objeto básico, del que heredan todos los objetos - es su fundamento. Y es el mismo para todos los objetos - no el mismo para todos, pero el mismo.

Entonces: diferentes propiedades de un mismo objeto pueden ser controladas de diferentes maneras - puedes crear métodos de control para cada una de las propiedades - escribir un control para cada propiedad y descansar en eso. O puedes escribir un método para controlar absolutamente cualquier propiedad de cualquier objeto y no escribir toneladas de código para cada propiedad, sino escribir un solo método para todas ellas a la vez.
Y después de que el objeto haya registrado sus eventos en la lista de sus propios eventos (estos eventos se llaman eventos básicos - absolutamente todos los objetos los tienen), entonces el programa envía eventos - eventos completos, que el usuario ya puede procesar y tomar una decisión, entonces para saber en el programa de qué objeto vino el evento, y qué tipo de evento es, necesitamos describirlo. Y describirlo sin ambigüedades. Para ello existen tres parámetros

  1. tipo de objeto - es el identificador de la colección en la que comprobamos el estado de alguna propiedad. Digamos que es una colección de símbolos - así que el primer número es el identificador de la colección de símbolos, y nos indica que estamos comprobando el objeto símbolo para los cambios en algunas de sus propiedades.
  2. La causa del evento es lo que ha provocado que el objeto registre su evento - un aumento o disminución del valor de la propiedad en la cantidad que controlamos (por ejemplo, un aumento del spread en más de 2 puntos), o que el precio cruce el nivel que controlamos - el precio pasó a ser inferior al nivel que controlamos, y podemos enviar un evento al usuario que podemos comprar....
  3. propiedad donde ocurrió el evento - hay muchas propiedades, y para saber qué propiedad generó el evento, necesitamos obtener su número en la lista de propiedades del objeto.

En pocas palabras: sabemos con certeza que (1) fue el símbolo que nos envió el evento, (2) - la propiedad llegó a ser menor que el nivel controlado, y (3) - esta propiedad es el precio de Oferta.

¿Complicado? No te lo inventes - es sencillo.

Y entonces, bam:

Tenemos un permiso de negociación. El permiso de negociación es una propiedad de una cuenta. El permiso de negociación puede cambiar. Y por varios valores. Tamaño (el valor al que el permiso de comercio ha cambiado tenemos el derecho de controlar y establecer - esto es "el tamaño del cambio controlado"). Y también el permiso para el comercio puede cruzar el valor establecido (controlado por nosotros en el programa), que también podemos establecer - este es "el tamaño del nivel controlado del valor de la propiedad del objeto", por ejemplo - hay una prohibición de la apertura de posiciones para comprar.

Y después de todo, esto - un objeto completamente diferente, enviará al programa los mismos códigos que fueron enviados por el símbolo a partir del cual se construye el evento. Y todo esto se hará por un mismo método de un objeto-fundación de todos los objetos.

¿Está claro?

Y en general - todo está descrito en los artículos. Pero parece que sólo estás troleando? :) Para hacer tales preguntas, usted debe leer con la actitud "cómo todo está funcionando aquí", y no ahondar en la simple organización de los datos.

 
Artyom Trishkin:
...¿Complicado? No se lo invente - es sencillo....

Un error clásico de los autores de artículos es pensar que si el material está claro para ellos, lo está para todo el mundo). Pero no es así.

Tu explicación ahora pone muchas cosas en su sitio, y si la hubieras puesto en el artículo (digamos al principio), más claro estaría. Y no te estoy troleando. Simplemente cuando el flujo de abstracción (aunque justificado y necesario) no se mezcla con lo concreto y cuando no se remiten y explican mutuamente, (empieza a prevalecer la abstracción), surgen opiniones como las que expresé arriba.

S.F. En general, según he entendido, intentas generalizar y recoger en esta biblioteca todo lo que hay en algo-trading.

 
Реter Konow:

Un error clásico de los autores de artículos es pensar que si el material está claro para ellos, lo está para todo el mundo). Pero no es así.

Tu explicación ahora pone muchas cosas en su sitio, y si la hubieras puesto en el artículo (digamos al principio), habría quedado más claro. Y no te estoy troleando. Es sólo que cuando el flujo de abstracción (aunque justificada y necesaria) no se mezcla con lo concreto, y cuando no se remiten y explican mutuamente, (empieza a dominar la abstracción), surgen opiniones como las que expresé arriba.

S.F. En general, según he entendido, en esta biblioteca intentas generalizar y recoger todo lo que hay en algo-trading.

Lo único que pretendo es dar a la gente una herramienta para crear fácilmente programas de cualquier complejidad algorítmica.

La biblioteca simplemente se encarga de toda la rutina que uno siempre tiene que escribir por sí mismo.

El usuario sólo tendrá que "hacer una pregunta - obtener una respuesta - procesarla".

Y la propia biblioteca se encargará de recordar los eventos. Es decir, en principio, será suficiente con ver qué tipo de evento, y de qué objeto vino, y luego - de acuerdo con la lógica concebida para procesarlo.

El usuario puede preguntar cómo se cerró la última posición - obtendrá una respuesta - a continuación, de acuerdo con su lógica....

O pedir dar la última posición cerrada y luego parsearla por sus componentes - la biblioteca permite obtener todos los datos sobre cualquier posición que el usuario haya tomado de los datos de la biblioteca.

O puedes hacerlo de esta manera: el programa recibe un evento de que tal posición fue abierta/cerrada en tal símbolo, o tal orden fue puesta/borrada. Si el programa tiene que seguir la interferencia de otra persona en el comercio, este mensaje le informará de ello - el programa no envió ninguna solicitud, pero el entorno ha cambiado - debe ser procesado.

En principio, se puede pensar y poner en práctica un montón de cosas - Trato de dar todas las herramientas posibles para esto. Automáticos - todo ya está ahí, y no es necesario inventar usted mismo - acaba de obtener listo y cuidadosamente dado ;).

 
Реter Konow:

Un error clásico de los autores de artículos es pensar que si el material está claro para ellos, lo está para todo el mundo). Pero no es así.

...

Y el error clásico de algunos lectores es que no leen, sino que inmediatamente hacen preguntas :)

Si se empieza a leer desde el primer artículo, no habrá tales preguntas, porque toda la "filosofía" está ahí, y está explicada.

 

Artem, ¡gracias!

No, no pares, sigue escribiendo - resulta genial.

He leído con interés tu discusión con Peter. Muy correcto y al grano.

Escribí una carta a AMD, - no estoy involucrado en el diseño y fabricación de procesadores, pero, chicos, habéis hecho un disparate del proceso de 8nm....

Estoy esperando una respuesta

 
Реter Konow:

Te has adentrado demasiado en la filosofía en tu elaboración, olvidando la practicidad de construir tal "esquema ideal" ... .

La filosofía aquí es ésta: inducción (de lo particular a lo general) o deducción (de lo general a lo particular).

Artyom utiliza el método inductivo de presentación.

Jefe: Bueno, Gleb Georgievich, hay una bala. Su juicio...

Zheglov: Bueno, ¿qué dices, "inteligencia"?

Sharapov: Bueno, la bala es como una bala, ordinaria, de pistola....

Zheglov: Sí, sería bueno encontrar un casquillo.

Jefe: Es mejor mirar el arma en sí.

Zheglov: Así es. Bueno, significa lo siguiente: una bala disparada por un arma importada del calibre 6,35 del sistema Bayard o, digamos, Omega.

Jefe: ¿Qué significa eso?

Zheglov: La bala, Sergei Ipatich, la bala. Seis estrías verticales izquierdas, eso es todo - la escritura es bastante "independiente".

¿Qué dices a eso? A juzgar por las marcas, la vaina es nuestra, doméstica.

Zheglov: Sí. ¿Dónde se encontró?

Jefe: Donde debería estar. A la izquierda del cuerpo. El reflector funcionaba correctamente.

Zheglov: Sí, el casquillo es nuestro. Hmm. Bueno, lo pondremos en el acertijo. Todavía tenemos que buscar el arma. Nadezhda, ¿sabes si había armas en la casa?

Nadezhda: No lo sé.

[Weiners. La Edad de la Piedad]

 
Aleksei Mikhanoshin:

Artem, ¡gracias!

No, no pares, sigue escribiendo - lo estás haciendo muy bien.

He leído con interés tu discusión con Peter. Muy correcta y al grano.

Escribí una carta a AMD, - No estoy involucrado en el diseño y fabricación de procesadores, pero, chicos, habéis argumentado tonterías sobre el proceso de 8nm....

Estoy esperando una respuesta

Hola, Alexei.

¿Por qué detenerse al principio del viaje? Todas las paradas para pensar ya se han hecho - ahora sólo adelante en los baches ;)

¿Cómo te ha respondido AMD?