Secuencia de ejecución de Init() y DeInit() - página 17

 
fxsaber:

Resulta que los Servicios tendrán casi todas las funciones On: OnInit, OnDeinit, OnTick(string),OnTimer,OnTrade,OnTradeTransaction, OnTester, OnTesterInit, OnTesterPass, OnTesterDeinit, OnBookEvent, OnChartEvent(long ChartID, ...), OnCalculate, ...


Y si no necesita los buffers de los indicadores y no quiere enfrentarse a las muletas de los indicadores/asesores, escriba en un nuevo tipo de programa -Servicios- que no sufra las limitaciones (estiradas de las versiones anteriores de MT).

Exactamente.

No habrá OnCalculate.

Todavía no hay solución con OnChartEvent

 
Slawa:

Así es.

Estas muletas deben ser molestas para muchas personas

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

No puedo obtener los datos del indicador de alta TF

Sergey Dzyublik, 2017.04.14 10:55

El usuario tenía un indicador que medía la "fuerza" del mercado.
El indicador funcionó en el marco temporal y el par de divisas actuales.

La tarea consistía en mostrar los resultados de 8 divisas populares en un gráfico con la posibilidad de seleccionar un TF independiente para su visualización.
No importa en qué TF se encuentre el usuario - debe mostrar los resultados de la que se ha establecido en los parámetros.

El problema de cargar el tráfico de otras monedas por el TF requerido se resolvió con la siguiente muletilla:

   for (int i = ArraySize(symbols_load) - 1; i >= 0; --i){
      int counter = 0;
      int max_count = 10;
      while(counter < max_count){
         RefreshRates();
         double tmp_arr[];
         int res = CopyClose(symbols_load[i] + Suffix, int(TF), 0, 3, tmp_arr);
         if (res == 3)
            break;
         RefreshRates();
         ++counter;
      }
   }

donde:

symbols_load- lista de monedas necesarias para cargar
Sufijo: posible prefijo del nombre de los pares de divisas
TF- plazo requerido

¿Es posible añadir una suscripción/suscripción a los datos históricos (barras y ticks) para un determinado volumen? Para que siempre haya un caché (de barras y ticks frescos) de un determinado tamaño en el Servicio para los símbolos dados.


Cuánto más fácil sería entonces redactar, por ejemplo, los folletos de mercado.

 
Slawa:

Los indicadores deben utilizarse para el fin al que están destinados.

En otras palabras, la secuencia de ejecución de los indicadores OnInit y OnDeinit cuando se cambia el símbolo-períododel gráfico no debería molestar a nadie

Este enfoque explica muchas cosas.

Por lo tanto, debemos aceptarlo como es, lo principal es ser conscientes de ello.

 
Slawa:

No.

Vuelve a leer cuáles son los indicadores. Akelis. Colby. Pregunte a Yandex cuáles son los indicadores de mercado.

En MT3, cuando introdujimos el concepto de indicadores personalizados, permitimos operar con objetos en los gráficos porque sólo había 2 buffers de indicadores.

Hagamos un poco de historia. Al principio existía FXCharts, pero no lo descubrí porque me incorporé a la empresa en octubre de 2002. Luego estaba MetaTrader. Me incorporé a la empresa para desarrollar MQL II (FXCharts ya tenía un lenguaje de estrategias de negociación). Cuando hicimos MQL II y EAs, cambiamos el nombre a MetaTrader 2. Cuando se permitió escribir indicadores personalizados, MetaTrader 3 se convirtió en el tercero.

Luego llegó MetaTrader 4 y MQL4. Los indicadores personalizados tienen la oportunidad de operar con 8 buffers de indicadores. Se ha mantenido la posibilidad de trabajar con objetos en el gráfico. Pero como los indicadores se calcularon en el hilo de la interfaz, hubo poca gente que abusó del trabajo con los objetos.

Y ahora tenemos MT5. La arquitectura es completamente diferente, pero somos rehenes de MT4 en términos de habilidades para operar con objetos gráficos en el gráfico. Sí, somos stajanovistas, también, como héroes, añadimos posibilidades casi ilimitadas de gestión de gráficos a partir de indicadores. Hemos llegado. La ilustración - 16 páginas de discusiones sobre nada.

Pasemos a los servicios

La carpeta de Servicios ha aparecido en el Editor MQL5, pero aún no está claro cómo utilizar esta herramienta. https://www.mql5.com/ru/forum/190129


Services , новый функциона в архитеркуте MT5, похороны MT4 не за горой.
Services , новый функциона в архитеркуте MT5, похороны MT4 не за горой.
  • www.mql5.com
Хотелось бы подробней с примерами использования обсудить новый функционал...
 
Slawa:

Los indicadores deben utilizarse para el fin al que están destinados.

En otras palabras, la secuencia de OnInit y OnDeinit del indicador al cambiar el símbolo-períododel gráfico no debería molestar a nadie

¿Y por qué todos los argumentos se han trasladado a los objetos gráficos? Hay otros recursos globales como variables globales, archivos, etc. (¿pueden usarse en los indicadores de acuerdo con su finalidad?) que será fuente de errores, si"el orden de ejecución OnInit y OnDeinit del indicador en el cambio del símbolo-períododel gráfico no debería molestar a nadie". Una vez más, hay que tener en cuenta que el núcleo está ahora implementado de tal manera que el orden debe preocupar al programador MQL, para evitar el rastrillo causado por la incertidumbre de la secuencia de llamadas OnInit/Deinit. Para no preocuparse MQL necesita un núcleo que internamente se encargue de resolver la incertidumbre.
 
Stanislav Korotky:
¿Por qué todo el argumento recae en los objetos gráficos? Hay otros recursos globales como las variables globales, los archivos, etc. (¿se pueden utilizar en los indicadores? (¿pueden utilizarse en los indicadores según su finalidad?) que será fuente de errores, si"el orden de ejecución OnInit y OnDeinit del indicador al cambiar el símbolo-períododel gráficono molesta a nadie". Una vez más, hay que tener en cuenta que el núcleo está ahora implementado de tal manera que el orden debe preocupar al programador MQL, para evitar el rastrillo causado por la incertidumbre de la secuencia de llamadas OnInit/Deinit. Para no preocuparse MQL necesita un núcleo que internamente se encargue de resolver la incertidumbre.
Esta es una buena pregunta sobre los archivos. Si hay que restablecer algo en la desinicialización y leerlo en la siguiente inicialización, podría haber algunos problemas.
 
Stanislav Korotky:

¿Cómo es posible que los servicios o la capacidad de ejecutar varios EA en un solo gráfico no cubran completamente los problemas que estamos discutiendo?

Imagínese que en lugar de los indicadores mencionados en el hilo, hubiera un Servicio en funcionamiento que contuviera una parte totalmente calculada del indicador. Y pondrá el indicador en el gráfico que visualizará los datos, calculados por el Servicio en los buffers del indicador.


Los indicadores deben usarse de acuerdo con su propósito y no hacer algo universal de ellos, sólo porque hay varios indicadores que se lanzan en un gráfico. De esta manera, puedes empezar a quejarte de la prohibición de OrderSend en los indicadores.

 
fxsaber:

¿Cómo es posible que los servicios o la capacidad de ejecutar varios EA en un solo gráfico no cubran completamente los problemas que estamos discutiendo?

Imagínese que en lugar de los indicadores mencionados en el hilo, hubiera un Servicio en funcionamiento que contuviera una parte totalmente calculada del indicador. Y pondrá el indicador en el gráfico, que visualizará los datos calculados por el Servicio en los buffers del indicador.

Es decir, ¿podrá crear un indicador a través del Servicio?
 
Alexey Kozitsyn:
Es decir, ¿será posible crear un indicador a través del servicio?
Esto ya es posible desde un EA (con algunas limitaciones).
 
fxsaber:
Esto todavía es posible desde el EA (con algunas limitaciones).
¿Te refieres a usar muletas? ¿Puedo darle un ejemplo?