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
...
llama a todo en métodos privados, pero ¿hay una "mentalidad Jedi" para librarse de CheckPointer(m_order)==POINTER_INVALID en el código fuente
...
Es más probable que esto no sea un truco, el algoritmo debe ser tal, que esta parte del código no se ejecuta si no hay orden.
O tal vez se pretendía que fuera así. Pero probablemente, si hay un puntero, no significa que haya una orden, así que tenemos que comprobar si hay una orden.
y si la memoria no me falla, a principios de año era posible desmarcar NULL en el registro y obtener 0 allí, ahora da un error
Cambios
Foro sobre trading, sistemas de trading automatizados y comprobador de estrategias
Bichos, errores, preguntas
Kirill Belousov, 2017.12.14 21:34
Es hora de retirarse
Cambios
Sí, efectivamente, pero me acordé de cómo lo hacía en MT4, así es como di de baja los punteros:
2019.09.17 07:52:40.855 tst (EURUSD,H1) 1 : 0
2019.09.17 07:52:40.856 tst (EURUSD,H1) 2 : 1048576
2019.09.17 07:52:40.856 tst (EURUSD,H1) 3 : 0
2019.09.17 07:52:40.856 tst (EURUSD,H1) 1 objetos no borrados restantes
2019.09.17 07:52:40.856 tst (EURUSD,H1) 1 objeto de tipo A izquierdo
2019.09.17 07:52:40.856 tst (EURUSD,H1) 24 bytes de memoria filtrada
Probablemente no sea así, el algoritmo debe ser tal que esta parte del código no se ejecute si no hay orden.
O tal vez sea esa la intención. Pero es poco probable, si hay un puntero, no significa que haya una orden, así que tenemos que comprobar la existencia de una orden.
Dependiendo del problema, ya he escrito en código cómo crear un "objeto de orden" que por sí mismo miraría lo que hay en el mercado - buscaría una orden en el diseñador usando un magik, si la encontrara la recogería, abriría una orden a un precio, el tipo de orden por sí mismo cuenta (mercado o pendiente), normalización de lotes, reintentaría abrir una orden si las recotizaciones estuvieran en un tick anterior, después de una colocación exitosa de la orden en el siguiente tick, colocaría un sl y así sucesivamente... todo esto se hace por sí mismo sin ninguna intervención del "objeto de la orden".
Y si la orden se ha cerrado, en cierto modo sigue ahí para la estrategia - en última instancia, la estrategia está interesada en el beneficio de la orden (actual o ya cerrada - ¡no importa!) y en elestado de la propia orden (aún no colocada, activa o ya cerrada)
todo funciona según lo previsto, tal vez usted tiene razón en alguna parte, pero por ahora el código todavía se está probando, los punteros deben ser comprobados, más tarde podemos probar sin esta comprobación ... aunque la lógica de trabajo implica las siguientes acciones si no hay tal objeto.... en principio no queda mucho para rehacer todo a las órdenes virtuales, todavía tengo que pensar ))))
Quería escribir lo que solía tener en lugar de
fue así:
pero recuerda cómo comprobar las sustituciones de macros en MQL
2019.09.16 22:57:42.837 tst (EURUSD,H1) a = 1
2019.09.16 22:57:42.837 tst (EURUSD,H1) POINTER_INVALID = 0
2019.09.16 22:57:42.837 tst (EURUSD,H1) NULL = 0
y si la memoria no me falla, a principios de año era posible desimprimir NULL en el registro y obtener 0 allí , ahora aparece un error
Es decir, el comportamiento NULL como si no debe cambiar en el futuro, pero lo que se sustituye allí en lugar de NULL no está claro, probablemente si esta situación se comprueba ahora, como se escribeif(CheckPointer(m_order)==POINTER_INVALID)) ) es por así decirlo el código correcto))
Y luego está esto, para el azúcar:
La primera prueba simple muestra
que no es azúcar, sino un... sustancia más líquida
La primera prueba simple muestra
que no es azúcar, sino un... sustancia más líquida.
Porque no está ahí). NULL no es ni aquí ni allá. Debe utilizar la función CheckPointer(). El puntero no necesita ser puesto a cero por sí mismo - después de borrarlo se convierte en POINTER_INVALID por sí mismo.
Porque no es ahí donde estás)) NULL no es ni aquí ni allá. Debe utilizar la función CheckPointer(). No es necesario poner a cero el puntero por sí mismo, se convierte en POINTER_INVALID por sí mismo después de la eliminación.
Estoy completamente de acuerdo. Si lees a los administradores, suele sonar así: "Escribe tus códigos correctamente
El MQL en general siempre es duro, nueva construcción, nuevos problemas, empiezas a averiguar si lo he utilizado mal, aquí tienes y fírmalo ))))
La primera prueba simple muestra
que no es azúcar, sino un... sustancia más líquida
Querido hombre. ¿Dónde están las estadísticas de sus trabajos independientes, productos en el mercado, publicaciones relacionadas con la programación? ¿O está tratando de abrirle los ojos a alguien sobre el tema de los punteros constantes, o de mostrar sus conocimientos sobre el tema de los tipos de sustancias...? En el futuro, por favor, tenga en cuenta el contexto de los ejemplos, en lugar de intentar reproducir un error del compilador.
Tengo un contexto simple: Si el código (en este caso una macro) está escrito con un error, creo que es posible reportarlo (y dar un ejemplo para probarlo). Y en este contexto no me queda claro qué tienen que verlas estadísticas
Y en este contexto no me queda claro qué tienen que ver las estadísticas.
Hazlo sencillo y la gente acudirá a ti.
;)
SZZY: Sus mensajes son casi siempre una buena idea, pero la presentación del material, bueno, no del todo con buenas intenciones, por supuesto su negocio, pero imho, quieren ayudar - ayudar, quieren ser inteligentes, bueno, a menudo resulta así
Depende de ti, pero aumentar tu autoestima con recursos online - .... Me da pereza seguir escribiendo.