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
Sí, esta es otra pregunta que sigue surgiendo y no tiene una respuesta clara. Cuando necesites heredar tu propia clase - qué es mejor hacer, heredarla o escribir una nueva versión extendida de tu clase.
Todo depende de la idea general de lo que quieres al final, imho
si se planea utilizar la clase en otro lugar, es necesario hacerla completa sin herencia
en mi ejemplo, la clase CError puede obtener GetLastError(), desmarcarse con una descripción y devolver el valor (int) del error. pienso usarlo en todas partes, de todos modos, sólo hay un constructor que define el lenguaje en una variable estática y el caso que devuelve el texto del error
Pero hay otro método útil - bool ServerDisable(); - define la disponibilidad del servidor (código MT4/МТ5 multiplataforma), muy buena función, parece que se necesita en algún otro lugar en el código, pero pensé, que voy a utilizarlo para las operaciones comerciales de todos modos - lo puse en la clase COrder
.....
y si quiero utilizarlo para el arrastre? .... - mucho espacio para la imaginación, pero al final se utilizará como un objeto en COrder - ¿dónde más se podría utilizar?
en mi opinión, todo parece engorroso, es más fácil incluir la biblioteca de funciones de servicio con el enlazador, y el compilador no incluirá las partes no utilizadas en el ejecutable por sí mismo
toda la clase sería bastante compacta en el estilo de procedimiento, mostré un ejemplo para una función para abrir una orden que puede almacenar en constantes estáticas el volumen de la ordenhttps://www.mql5.com/ru/forum/85652/page17#comment_12805083
¿Es realmente importante mantenerse dentro de los límites? Si es importante mantenerse dentro de los límites, también puedes escribir funciones.
Estaba respondiendo en el contexto de tu mensaje de que si no usas clases, tendrás que molestarte con firmas de llamadas incómodas. Demostré que no tienes que molestarte.
¿Qué me impide enviar el nombre del símbolo al constructor, haciendo que la clase sea flexible y versátil? ¿No considera la posibilidad de comerciar con la cartera como una cuestión de principio?
considerando todo,
Pero hasta ahora me he quedado con la investigación - ahora estoy casi listo para investigar 1000 y 1 formas de MM y todo tipo de trucos con los sistemas de orden )))
Pero sigo pensando que al final no sería demasiado flexible, ya he escrito 2 veces más arriba que sería mejor un estilo procedimental + pequeñas clases con funciones bien afinadas de manejo de órdenes.
Voy a pasar a probar mis ideas por ahora y luego veré lo que edito a menudo en el código y lo que dejo sin tocar
.....
¿Y si quiero utilizarlo para el arrastre? .... Hay más espacio para la imaginación, pero al final se seguirá utilizando como un objeto en el COrder - ¿dónde más se podría utilizar?
Las barras de arrastre están separadas porque no tienen nada que ver con la lógica principal. Pueden existir o no.
***
Las barras de arrastre y otras funciones de mantenimiento similares deben hacerse como descendientes de una clase, y sus instancias deben crearse en un array. Si se activa una función, se añade una instancia al array y se ejecuta. Si todas las funciones están desactivadas, la matriz está vacía y no se ejecutan los ifs innecesarios. Puede insertar al menos 100 barras de arrastre en el EA, y no afectará a la velocidad de su ejecución.
Esa no es la manera de hacerlo. Al menos tienes que llamar tanto a Bid() como a Ask(). Tu código parece sólo una variable, haciendo parecer que su valor permanece inalterado, cuando en realidad no es así.
por desgracia, siempre se ha hecho así, en MT4 sigue siendo Bid y Ask y no hay caprichos del Creador para arruinar este simple uso y obtener los precios actuales ;)
Tengo el siguiente esquema en el que no he experimentado ningún problema.
¿estamos hablando de este código?https://www.mql5.com/ru/code/22770
me gusta mucho la implementación. muy bueno para el probador y optimizador, probablemente lo usaré como base, el código es corto y legible, para ser honesto me sorprende leer tu código, tienes un estilo de escritura mucho más sofisticado, yo suelo enchufar y jugar, sé que no puedo entender la lógica
por desgracia, siempre ha sido así, en MT4 sigue siendo Bid y Ask y ningún capricho del creador destruye este simple uso y obtener los precios actuales ;)
Pero sus valores son invariables dentro del procesamiento de eventos en curso (a menos que llames a RefreshRates forzosamente, por supuesto). Así que son variables, no funciones. Y sus funciones parecen variables
Dé a los FP una tarea real de gestión y procesamiento de matrices de cientos de megabytes o gigabytes de datos y todo su modelo de mensajes de cuento de hadas (los datos son inmutables) se irá al infierno.
Estos son teóricos, justo a tiempo para salir de las tareas del mundo real y emitir en su universo ficticio :) las historias de las telecomunicaciones son pases de datos tontos.
De hecho, la única posibilidad de combatir la complejidad es empaquetarla en objetos.Pero sus valores son inmutables dentro del procesamiento de eventos en curso (a menos que llame a RefreshRates forzosamente). Por lo tanto, son variables, no funciones. Y sus funciones parecen variables
No sé ni cómo explicar el problema que se comenta en tu ejemplo, intentaré explicarlo humanamente - a mí, como persona que tuvo el primer PC Pentium-90, me duele ver que para conseguir un uso conveniente, se añadirá una llamada a función extra, que implica poner valores de registros en la pila... y ...allá vamos.
Sé que ahora todo se almacena en caché repetidamente a nivel del procesador, y sospecho que los desarrolladores de compiladores harán más eficiente la "llamada a función desde la llamada a función"
entonces su ejemplo debería ser así:
O así:
Vasiliy, este artículo te sería muy útil para no torturarte exprimiendo la POO por la POO.
Tengo una idea de marco funcional para la MT. Casi no habrá OOP allí. Sólo funciones, "mónadas" y otra funcionalidad pseudo FP. Estoy escribiendo todo entre comillas, ya que es imposible hacer FP en toda regla en MQL.
Los comentarios son innecesarios.
no os gustáis tanto, o tal vez es lo contrario de 2 gays buscando una salida para vosotros mismos)
por cierto, me han gustado sus artículos, los del experto son flojos, débiles, pero él me gusta igual,
y no soy gay.