Errores, fallos, preguntas - página 460

 
voix_kas:

El EA requiere acceso a un indicador. Puede obtenerlo al menos de tres maneras: IndicatorCreate(...) o iCustome(...) o, si es un indicador estándar, por ejemplo, iMA(...).

Según tengo entendido, cuando se utiliza cualquier variante, hay que liberar explícitamente el asa resultante (IndicatorRelease).

La cuestión es elegir la forma de llamar al indicador. ¿Cuáles son los pros y los contras de cada método? Interés prioritario en la velocidad de procesamiento.

IndicatorCreate - para los indicadores estándar, para que en el caso de la muñeca sean los análogos de la llamada iMA. iCustom - para indicadores personalizados "a medida". Es decir, cosas esencialmente diferentes.

La velocidad de llamada de iMA y de IndicatorCreate(IND_MA) debería ser comparable, pero no lo he comprobado.

En cuanto a IndicatorRelease - tiene sentido llamarlo, si no va a necesitar volver a este indicador después del cálculo. No tengo tales situaciones - si se necesita algún indicador (con un conjunto dado de parámetros), entonces se necesitará para el cálculo/recalculación adicional, y si los parámetros de entrada del script cambian, entonces todo se reiniciará y se crearán nuevas manijas.

 

De hecho, el 99% de las veces, llamar a IndicatorRelease es un error lógico por parte del programador.

La creación de un indicador es una de las operaciones más caras, que pone en marcha mecanismos muy profundos de su cálculo. Tratar de cerrar un asa del indicador es también una operación muy costosa, si se piensa en los procesos reales de su aplicación. La frecuente creación y cierre de indicadores demuestra que el desarrollador no entiende en absoluto la esencia de las operaciones.

Es muy fácil de entender.

Документация по MQL5: Доступ к таймсериям и индикаторам / IndicatorRelease
Документация по MQL5: Доступ к таймсериям и индикаторам / IndicatorRelease
  • www.mql5.com
Доступ к таймсериям и индикаторам / IndicatorRelease - Документация по MQL5
 
Renat:

De hecho, en el 99% de los casos, llamar a IndicatorRelease es un error lógico por parte del programador.

La creación de un indicador es una de las operaciones más costosas que pone en marcha mecanismos muy profundos para calcularlos. Tratar de cerrar un asa del indicador es también una operación muy costosa si se piensa en los procesos reales subyacentes de su implementación. La frecuente creación y cierre de indicadores demuestra que el desarrollador no entiende en absoluto la esencia de las operaciones.

Es muy fácil de entender.

Permítanme intervenir en la conversación y decir: los mecanismos de m-programa, terminal, forex (de hecho, por qué estamos reunidos aquí)

La razón por la que estamos aquí son simples verdades, así que lo que nos impide entenderlas y segar los rublos - o el software que vamos a vender,

¡Y si no hay posibilidad de hacerlo tenemos que callar hasta que ocurra un "milagro" !

 
Im_hungry:

Permítanme intervenir en la conversación y decir: los mecanismos del programa, el terminal, el forex (básicamente para lo que estamos aquí)

Tenemos que tener cuidado con lo que hacemos y lo que no queremos hacer con él,

Debemos guardar silencio hasta que ocurra un "milagro".

Un bello ejemplo de corriente de pensamiento incomprensible. Envidio esas habilidades.
 
Renat:
Un bello ejemplo de flujo de pensamiento incomprensible. Es envidiable poder hacerlo.

Seguramente un Jedi de nivel 80, el maestro Yoda está meditando tranquilamente al margen :)

Y no hay duda de que "ayudaron a los niños sin hogar en caso de problemas" (a partir de las 12 sillas).

 

No hace mucho, mi código de trabajo dejó de compilar.

Está culpando al código de la biblioteca estándar:

'GetLastError' - ambiguous call to overloaded function with the same parameters SymbolInfo.mqh  718     10
'GetLastError' - ambiguous call to overloaded function with the same parameters	SymbolInfo.mqh	725	57
Aparentemente por lo que hay en mi código:
#import "kernel32.dll"
uint GetLastError();
#import
.....
kernel32::GetLastError() 
.... 

¿Cómo puedo "digerir" esto para que mi programa vuelva a funcionar? No estoy seguro de qué ha cambiado en la nueva versión de MQL.

¿No se permite que las funciones importadas tengan el mismo nombre que las incorporadas? ¿Cómo seguir con la vida?

 
7134956:

¿Cómo puedo "digerir" esto para que mi programa vuelva a funcionar? No entiendo muy bien qué ha cambiado en la nueva versión de MQL.

basta con añadir un parámetro dentro de

#import "Kernel32.dll"
uint GetLastError(int);
#import
 
sergeev:

añadir un simple parámetro dentro de

Gracias. Parece haber ayudado. Pero es una especie de muleta para pasar un parámetro que es redundante.
 
Pensemos en ello como una función o un autocontrol.
 
sergeev:
Pensemos que se trata de una función o un autocontrol.

Podrías sacarlo y envolverlo en una biblioteca separada, renombrándolo.

También podrías intentar pedir espacios con nombre, pero probablemente sea inútil.