Características del lenguaje mql5, sutilezas y técnicas - página 61
Está perdiendo oportunidades comerciales:
- Aplicaciones de trading gratuitas
- 8 000+ señales para copiar
- Noticias económicas para analizar los mercados financieros
Registro
Entrada
Usted acepta la política del sitio web y las condiciones de uso
Si no tiene cuenta de usuario, regístrese
Ahora me he encontrado con un problema cuando el historial contiene más de 1000 operaciones y cuando llamo a la función de procesamiento del historial, por ejemplo, para calcular el beneficio del mismo. + La información del gráfico empieza a ralentizarse y el terminal se cuelga. Es decir, los presupuestos vienen con retraso.
Sin el código sólo se pueden hacer conjeturas.
Foro sobre trading, sistemas de trading automatizados y pruebas de estrategias de trading
Peculiaridades de mql5, consejos y trucos
Alexey Navoykov, 2017.07.21 17:04
Es decepcionante que no haya herencia múltiple en MQL. Sin embargo, podemos hacer que funcione de cualquier manera posible - con plantillas y macros - ¿cómo podemos evitarlas?)
Esto es lo que he hecho.Todas las clases fuente deben ser declaradas como plantillas que definen la clase padre.
Por supuesto, hay algunas sutilezas, relacionadas con el hecho de que las clases se heredan secuencialmente (en el orden que hemos establecido), en lugar de concurrentemente (como en la verdadera herencia múltiple). En particular, tendrán diferentes prioridades cuando se produzca una sobrecarga. Además, si una misma clase de plantilla participa varias veces en la cadena de herencia, serán clases completamente diferentes, no relacionadas entre sí de ninguna manera. Así que tenemos que tener cuidado aquí. Pero no hay problemas con las interfaces, se puede heredar sin restricciones.
Pero, ¿qué pasa sin la declaración en forma de plantillas?
Por ejemplo, tenemos dos bibliotecas listas para ser autosuficientes:
clase CLib1 : public CClass1 { };y
class CLib2 : public CClass2 { };
Tenemos que hacer que exista esa herencia en la clase del programa:
CLib1--> CLib2 --> CProgram para que ambas bibliotecas estén disponibles en la clase CProgram. Y la biblioteca CLib1 estará disponible en CLib2.
El código de ambas bibliotecas no puede ser modificado de ninguna manera.
¿Es posible?
Con la herencia múltiple probablemente sería así
class CProgram : public CLib1,CLib2 { };
¿Qué tal sin una declaración de plantilla?
Por ejemplo, tenemos dos bibliotecas listas para ser autosuficientes:
clase CLib1 : public CClass1 { };y
class CLib2 : public CClass2 { };
Necesitamos hacer tal herencia en la clase de programa:
CLib1--> CLib2 --> CProgram para que ambas bibliotecas estén disponibles en la clase CProgram. Y la biblioteca CLib1 estará disponible en CLib2.
El código de ambas bibliotecas no puede ser modificado de ninguna manera.
¿Es esto posible?
Con la herencia múltiple probablemente sería así
class CProgram : public CLib1,CLib2 { };
No perderás nada si haces esto:
class CProgram { CLib1 lib1; CLib2 lib2; };
No perderás nada por hacerlo:
Probablemente la mejor manera de obtener datos de las funciones asíncronas de copia (CopyRates, CopyTicks, etc.) es a través de EventChartCustom.
Especialmente relevante para los indicadores.
Es posible saber que el servidor de operaciones ha cambiado, no sólo la cuenta -AccountInfoString (ACCOUNT_SERVER) en OnDeinit (EA, no indicador) devolverá el nuevo servidor de operaciones.
Memo
Foro sobre comercio, sistemas de comercio automatizados y pruebas de estrategias
Mi descontento con los probadores de estrategias. con los desarrolladores de MQL
fxsaber, 2017.12.04 09:11
Resultado
Hay toda una clase de indicadores que superponen los gráficos de precios de otros símbolos en el gráfico de precios. Se hacen de la misma manera: a través de topes indicadores.
Sin embargo, en MT5 existe un maravilloso OBJ_CHART, que permite realizar esta tarea de forma mucho más bonita y sin búferes de indicadores.
Por ejemplo, puede poner cualquier indicador y ver inmediatamente cómo se ve en otro símbolo.
Esquema esclavo: se muestran varios gráficos como fondo del gráfico principal.
Por ejemplo, puede lanzar cualquier indicador y ver inmediatamente cómo se ve en otro símbolo.
Esquema esclavo: se muestran varios gráficos como fondo del gráfico principal.