Discusión sobre el artículo "Cómo escribir una profundidad de mercado de scalping usando como base la biblioteca CGraphic" - página 3
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
¿Las palabras que escribí en mi pregunta no significan nada?
Tu ejemplo
Este código está publicado por el autor del tema en la descripción de la clase https://www.mql5.com/es/articles/3336.
Así que esta pregunta no debería estar dirigida a mí al menos...
Estas palabras no significan nada para mi excepto una cosa - no has estudiado el código del ejemplo.
usted da un ejemplo de eliminación a través de
m_book_market.SetMarketBookSymbol(Symbol())Si abrimos este método, veremos allí una suscripción al ticker pasado.
pero no el borrado de la suscripción )) el borrado de la suscripción se hace a través de una función:
Debe ser copypasta. Ocurre. El autor probablemente escribió este código parcialmente en el navegador.
En lugar de
CMarketBook MarketBook.mqh
escriba
CMarketBook MarketBook;
era una pregunta capciosa para su tocayo )) no le gusta leer código, pero espera una respuesta lista ))
era una pregunta capciosa para mi tocayo )) no le gusta leer código, pero espera una respuesta lista ))
Eso es exactamente lo que siempre hago, e inicialmente hice la eliminación de la copa como debe ser, como en su ejemplo, que en realidad se requiere cuando se trabaja con el vidrio de la ayuda.
Pero cuando utilizo este método,
Me sale este error
P|S he averiguado cual es el problema, resulta que si este método se utiliza en el constructor de la clase, no es necesario utilizarlo en OnDeinit.
Retiro mi pregunta, me podeis dar un caramelito.
Si no utiliza un destructor en una clase
Esta construcción funciona normalmente
Pero puede que no sepa usar el destructor, o puede que esté implementado de forma torcida y por tanto no funcione como debería.
La función de suscripción es broadcast, está garantizado que borrará todas las suscripciones en OnDeinit, si tienes demasiados objetos en tu código y hay retrasos en su borrado, puede que no haya suficiente tiempo asignado para el procesamiento de OnDeinit, lo que significa que algunos objetos no serán borrados.
Aquí puedes buscar un problema en el código, que es lo más correcto, porque obviamente hay un problema y te disparará en el pie algún día, o simplemente borrarlos en OnDeinit y olvidarte de ello.
ps.
Eso es lo que yo hago siempre.
Obviamente no has parseado el ejemplo, o has colado un código torcido desde el principio, como, desmóntalo y me echaré unas risas ))
¿Con tal objeto CMarketBook MarketBook.mqh el compilador compilaría el código? Bueno, creaste un objeto MarketBook.mqh, el compilador pasó por alto este sacrilegio, pero estás trabajando con un objeto MarketBook, tendrías un error en la etapa OnInit, porque no tenías tal objeto.Le presté atención de inmediato porque el ejemplo obviamente no funciona, así que te hice una pregunta, pero obedientemente culpaste de todo al desarrollador de la clase y su ejemplo....
o pones un ejemplo de código que funcione donde se reproduzca este error o lo explicas todo de una vez sin códigos innecesarios, como has hecho ahora, te ahorrarás también tu tiempo.
La función de suscripción es de difusión, está garantizado para eliminar todas las suscripciones en OnDeinit, si usted tiene demasiados objetos en su código y hay retrasos en su eliminación, puede que no haya suficiente tiempo asignado para el procesamiento OnDeinit, lo que significa que algunos objetos no serán eliminados.
Aquí puedes buscar un problema en el código, que es lo más correcto, porque obviamente hay un problema y te disparará en el pie algún día, o simplemente borrarlos en OnDeinit y olvidarte de ello.
ps.
obviamente no has parseado el ejemplo, o se te ha colado un código torcido desde el principio, así que podéis averiguarlo vosotros mismos, y yo me echaré unas risas ))
¿Con tal objeto CMarketBook MarketBook.mqh el compilador compilaría el código? Bien, has creado un objeto MarketBook.mqh, el compilador pasó por alto este sacrilegio, pero estás trabajando con el objeto MarketBook, tendrías un error en la etapa OnInit, porque no has creado tal objeto, te lo di inmediatamente.Le presté atención a la vez porque el ejemplo es, obviamente, no funciona, así que te hice una pregunta, pero usted obedientemente volcado todo en el desarrollador de la clase....
Deberías aportar un ejemplo de código que funcione donde se reproduzca este error o explicarlo todo de una vez sin códigos innecesarios como has hecho ahora, te ahorrarás tiempo también.
Sólo estás en tu repertorio, me da igual lo que haya hecho el autor en el ejemplo, las erratas que haya cometido, hay que ser un completo idiota para no darse cuenta de que es sólo una errata.
La pregunta era completamente diferente.
En su ejemplo hay inicialización - llamada del cristal, luego hay su actualización a través del método Refresh(), pero no hay su borrado a través del método
MarketBookReleaseOnDeinit o implementación del mismo, sino en el destructor de la clase.
Por eso le hice una pregunta al autor, como es más correcto en su opinión matar el vaso usando su clase porque falta este trabajo en el ejemplo principal y en la propia clase y sería bueno implementarlo antes, no digo que haya algo malo, etc solo falta este punto me parece.
La pregunta fue hecha al autor y normalmente formulada, ¿por qué preguntar y discutir mis preguntas y demagogia durante varias páginas sobre lo que leo, lo que quiero conseguir de alguien, etc. Yo mismo soy capaz de entender todo en mi código, que se hace en realidad ... La pregunta era muy diferente.
Arriba en el código he añadido en color amarillo lo que en mi opinión debería estar presente en el indicador adjunto.
Sólo estás en tu repertorio, me da igual lo que haya hecho el autor en el ejemplo, las erratas que haya cometido, hay que ser un completo idiota para no darse cuenta de que sólo es una errata.
La pregunta era completamente diferente.
En su ejemplo, hay inicialización - llamada del vaso, luego hay su actualización a través del método Refresh(), pero no hay su eliminación a través del método
OnDeinit o implementación del mismo, sino en el destructor de la clase.
Por eso le hice una pregunta al autor, como es más correcto en su opinión matar el vaso usando su clase porque falta este trabajo en su ejemplo principal y en la propia clase y sería bueno implementarlo antes, no digo que haya algo malo, etc solo falta este punto me parece.
La pregunta fue hecha al autor y normalmente formulada, ¿por qué preguntar y discutir mis preguntas y demagogia durante varias páginas sobre lo que leo, lo que quiero obtener de alguien, etc. Yo mismo soy capaz de entender todo en mi código, que se hace en realidad ... la pregunta era completamente diferente
Arriba en el código añadido en color amarillo lo que en mi opinión debería estar presente en el indicador adjunto.
aqui no hay telepatas, el ejemplo que pusiste en la pregunta original no reproduce el problema del que escribes, ademas todos los mecanismos estan presentes en la clase, la solucion te la doy yo, pero no veo mas que reproches, la disputa esta cerrada.
Aquí no hay telépatas, el ejemplo que pusiste en tu pregunta original no reproduce el problema del que escribes, además, todos los mecanismos están presentes en la clase, la solución te la dan, pero no veo más que reproches, la disputa está cerrada.
- En primer lugar, no había ningún problema en mi pregunta.
- En segundo lugar, yo no reproché nada a nadie, sólo hice una simple pregunta al autor para aclarar mis conjeturas... y de ti en cada mensaje unas ridículas acusaciones y preguntas sobre el código, en mi dirección, que yo no escribí en absoluto, sino que tomé de la descripción del artículo de la clase como ejemplo.
La ayuda dice:
El destructor es una función especial que se llama automáticamente cuando se destruye un objeto de una clase. El nombre del destructor se escribe como el nombre de la clase con una tilde (~). Las cadenas, las matrices dinámicas y los objetos que requieren desinicialización se desinicializarán de todos modos, independientemente de la presencia de un destructor. Si hay un destructor, estas acciones se realizarán después de llamar al destructor.
No hay destructor en la clase que cerraría el cristal de precios por el método
MarketBookReleaseAdemás en el propio indicador en
tampoco está presente, me hicieron una simple pregunta - Cómo realizar correctamente la desinicialización del vaso.
Esperaba una respuesta a esta pregunta,
- no inventar nada, la propia clase se cerrará todo, incluso si no hay destructor declarado en ella.
- Añade
O añade un destructor a la propia clase.
Y serás feliz... y empezaste una dimagogia acusándome de unas erratas en código ajeno, que no compilará, cosa que sé sin ti, que no puedo leer algo allí.... en ruso, me apuntaste como a un ciervo.
Nuevo artículo Implementando una Profundidad de Mercado Scalping Usando la Librería CGraphic ha sido publicado:
Autor: Vasiliy Sokolov
Gracias, es una gran herramienta, muy fácil de modificar.