Mt4 Fin de soporte. - página 39

 
George Merts:

Es discutible que esto sea una ventaja.

Accidentalmente alguien cambiará la bandera - y esto afectará al comportamiento del CT.

Bueno, no hay manera de ser inmune a los accidentes. El factor humano es imparable).
 
Реter Konow:

Mi tarea inicial: mostrar soluciones efectivas sin usar OOP.


La esencia de mi solución: - generar una matriz global de banderas de eventos de nuevas barras de todos los símbolos y plazos una vez por minuto.

Ventajas:

1. Llenado automático de la matriz y borrado automático.

2. sin carga del sistema.

3. Acceso directo a la matriz desde cualquier función y guardando la bandera del evento antes de que se borre la matriz.

Mierda, al final me he despertado ....
Usted entiende que una barra de cualquier símbolo puede venir en cualquier instante y la tarea es como para decirle al sistema en el mismo instante que una nueva barra ha llegado. ¿Cómo se prevé eso cuando se sondea el sistema una vez por minuto?

 
Реter Konow:
Bueno, no podemos estar seguros contra los accidentes. El factor humano es imparable)).

Ahí lo tienes. Por lo tanto, creo que el código debe escribirse de forma que limite al máximo los posibles errores humanos. Precisamente porque el factor humano es irreductible. Ayer mismo encontré un error en mi código, por el cual las estadísticas del Asesor Experto se recogían desde el principio de la historia, y no desde la fecha especificada (fecha de creación del Asesor Experto). Simplemente me olvidé de inicializar la variable y se quedó a cero.

Así que, ahora he rediseñado el analizador de tal manera que sería necesario especificar la fecha, a partir de la cual se haría el análisis, y la fábrica de piezas del Asesor Experto devolvería sólo la fecha de creación y ninguna otra.

Ahora es imposible analizar el historial de operaciones antes de la fecha de creación del Asesor Experto. Aunque la versión anterior realizara operaciones, ahora no se incluirán en las estadísticas.

 
Nikolai Semko:
Mierda, por fin me he despertado....
Te das cuenta de que la barra de cualquier símbolo puede llegar en cualquier instante y la tarea es tanto como decirle al sistema en el mismo instante que ha llegado una nueva barra. ¿Cómo se prevé eso cuando se sondea el sistema una vez por minuto?

¿Por qué "en este mismo momento"?

Ustedes, amigos míos, simplemente tienen diferentes enfoques para hacer operaciones. Si estamos trabajando en el marco temporal M1 - deberíamos obtener la información de que ha llegado una nueva barra - no "en el mismo instante", sino a la llegada de un nuevo minuto. Si estamos trabajando en el marco temporal S1 (hola, Volchansky) - deberíamos obtener esta información a la llegada de un nuevo segundo. Si estamos trabajando en cada garrapata, la información debería llegar con la llegada de una nueva garrapata.

Y está la opción de "trabajar por evento" - pero entonces no deberíamos tener la función IsNewBar(), sino la función OnNewBar(), que en realidad es un "subconjunto" de la función OnTick()

 
Nikolai Semko:
Mierda, por fin me he despertado....
Te das cuenta de que una barra de cualquier símbolo puede llegar en cualquier momento y la tarea es tanto como decirle al sistema en ese mismo momento que ha llegado una nueva barra. ¿Cómo imagina que esto ocurrirá si se sondea el sistema una vez por minuto?

La función iBars() siempre devolverá el número actual de barras. Si ha cambiado desde la última llamada, se consignará el nuevo evento de barra en el array, si no ha cambiado, no se consignará.
 
Nikolai Semko:
Mierda, al final me he despertado ....
Te das cuenta de que cualquier barra de símbolos puede llegar en cualquier instante y la tarea es tanto como decirle al sistema en el mismo instante que ha llegado una nueva barra. ¿Cómo se prevé eso cuando se sondea el sistema una vez por minuto?

Ya veo. Así que la barra puede no llegar cuando se solicitan las iBars, pero puede llegar un momento después de la solicitud. Entonces se perderá para el sistema. Esa es la cuestión.


Entonces qué, ¿acceder continuamente? - Está claro que no es la mejor solución.

 
Реter Konow:

Ya veo. Así que el listón puede no llegar en el momento de la votación, sino que llegará un momento después de la misma. Entonces se perderá para el sistema. Esa es la cuestión.

Peter, sugiero otro tema de debate, por segunda vez. No es necesario escribir nada, sólo la teoría.

Foro sobre comercio, sistemas de comercio automatizados y prueba de estrategias de comercio

Soporte final de Mt4.

Alexey Viktorov, 2017.09.11 13:08

Creo que he encontrado un ejemplo primitivo de la utilidad de la POO. Esta es una función para llenar un array con un valor especificado. Hay ocho variedades según el tipo de matriz.

Imagina que tienes que escribir una función que necesita pasar un conjunto de parámetros, luego otro, luego un tercero... Usando el enfoque algorítmico obtendrás N nombres de funciones diferentes. Parece que no hay nada malo, puedes escribir 8 funciones como ArrayInitializeInt()ArrayInitializeDouble() y así sucesivamente. Pero es tan agradable no tener que pensar en el tipo de un array, sólo usar una función en cualquier caso, y sería seguro mezclar qué array pones ahí...


Документация по MQL5: Операции с массивами / ArrayInitialize
Документация по MQL5: Операции с массивами / ArrayInitialize
  • www.mql5.com
Операции с массивами / ArrayInitialize - справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5
 
Alexey Viktorov:

Peter, sugiero otro tema de debate, por segunda vez. No es necesario escribir nada, sólo la teoría.


Por favor, espere un poco. Vamos a entender completamente este tema y voy a leer cuidadosamente el segundo.
 
Реter Konow:
Un momento, por favor. Vamos a entender completamente este tema y voy a ver de cerca el segundo.

Como recuerdas el tema del nuevo bar se sacó para conocer los pros de la POO, pero en ningún caso las opciones de programación, y mucho menos tus habilidades. Pero las observaciones a su código y a su algoritmo en general desviaron la discusión hacia la dirección equivocada. Así que creo que no hay necesidad de continuar.

 
Alexey Viktorov:

Como recuerdas, el tema del nuevo bar se sacó para conocer los pros de la POO, pero no las opciones de programación, y mucho menos tus habilidades. Pero las observaciones sobre su código y su algoritmo en general desviaron la discusión hacia la dirección equivocada. Así que creo que no hay necesidad de continuar.

Es decir, ¿quieres que siga destrozando las ventajas de la OOP, y que todo el mundo me siga trolleando?) Pero básicamente tienes razón. La discusión ha ido en la dirección equivocada.