Preguntas de los principiantes MQL5 MT5 MetaTrader 5 - página 503
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
Para los pares de divisas, si pones un límite, todo funciona, pero para el timeframe no funciona, incluso si lo pones en el indicador h1 no funciona
https://docs.mql4.com/ru/chart_operations/periodwindow
https://docs.mql4.com/ru/constants/chartconstants/enum_timeframes
Valor de retornoPeríodo del gráfico actual (en minutos).
Pruébalo, tal vez funcione.
O eliminar las comillas.
https://docs.mql4.com/ru/chart_operations/periodwindow
https://docs.mql4.com/ru/constants/chartconstants/enum_timeframes
Valor de retornoPeríodo del gráfico actual (en minutos).
Pruébalo y verás si funciona.
Otra pregunta, al añadir en el principio cuando el indicador #property strict da error array out of range en 'Indicator name' (100,41) cómo tratar con él
¿Qué tiene de malo?
Lo siento, no sabía lo de la inserción del código, pero en cuanto al código en sí, ¿por qué ocurre cuando se inserta #property strict y todo funciona sin él?
¿Has visto la ayuda del MetaEditor?
También ha cambiado el trabajo con las funciones, el ámbito de las variables y la liberación de memoria en las matrices locales. Dado que los cambios resultaron ser bastante significativos, se decidió introducir una nueva propiedad #property strict con el fin de maximizar la compatibilidad con el antiguo enfoque para escribir programas MQL4. Cuando se crea un nuevo programa MQL4 utilizando el Asistente MQL4, esta propiedad se añade siempre a la plantilla.
Y así sucesivamente:
Tabla de diferencias entre compiladores:
Antiguo compilador MQL4
Nuevo compilador MQL4
Nuevo compilador MQL4 con #property strict
Los puntos de entrada init(), start(), deinit() pueden tener cualquier parámetro y cualquier tipo de retorno
init(), start(), deinit() se mantienen por compatibilidad,
y los nuevosOnInit(),OnStart(),OnCalculate(),OnTick(),OnTimer(),OnChartEvent(),OnTester(),OnDeinit() deben coincidir exactamente con sus firmas
Mismo
El resultado de retorno de la función init() no es analizado de ninguna manera por el subsistema ejecutor
El resultado de retorno de las funciones init() y OnInit() no es analizado de ninguna manera por el subsistema ejecutor
Cuando se devuelve un valor distinto de cero desde OnInit(), el experto o indicador se detiene y el programa se descarga
Los nombres de las variables pueden ser casi todos (excepto las palabras reservadas), incluidos los caracteres especiales y los puntos.
Los nombres de las variables no pueden tener caracteres especiales ni puntos.
La listade palabras reservadas se amplía, por lo que no se pueden nombrar palabras comunes como corto, largo, const, etc.
Mismo
El ámbito de una variable es desde la declaración (incluso en un bloque anidado) hasta el final de la función.
Mismo
Rango de visibilidad de una variable: desde la declaración hasta el final del bloque en el que se declara la variable.
Inicialización implícita de todas las variables (tanto globales como locales) con ceros.
El mismo
Inicialización sólo de las variables globales. De las variables locales, sólo se inicializan implícitamente las cadenas
Las matrices locales no se liberan al salir de la función
Las matrices locales se liberan al salir de la función
Las matrices locales se liberan al salir {}
El error"Array out of range" no conduce a un error crítico*.
Lo mismo. Excepto en el caso de las matrices de estructuras y clases, para las que este error es crítico
"Array out of range" es un error crítico y hace que el programa se detenga
No hay estructuras ni clases
Hayestructuras y clases. Aparecen otros tipos de datos.
Mismo
Cadenas - de un solo byte.
datetime - Entero de 32 bits
La variable predefinida Volumen es de tipo doble
Cadenas - unicode.
datetime - Entero de 64 bits
El volumen es una variable predefinida de tipo largo.
Mismo
ArrayCopyRates() produce una copia virtual a la matriz double[][6]
ArrayCopyRates() produce una copia virtual al array MqlRates[]. Por compatibilidad, la copia al array double[][6] se mantiene, pero esta copia no es virtual sino real.
También.
Las funciones no pueden devolver valores aunque tengan un tipo. Para ello, el compilador inserta automáticamente return(0) al final de la función.
Lo mismo.
Las funciones de cualquier tipo deben devolver siempre un valor
Número de archivos abiertos simultáneamente - 32
Número de archivos que se abren simultáneamente - 64
Mismo
Los archivos se abren siempre en modo compartido **
El modo de compartición debe declararse explícitamente con FILE_SHARE_READ y/o FILE_SHARE_WRITE
Mismo
Los guiones de la ventana de entrada muestran los nombres de las variablesexternas
Los nombres de lasvariablesexternas y deentrada se muestran en la ventana de parámetros de entrada para los scripts en modo show_inputs.
Para los scripts en el modo show_inputs, los comentarios de cadena se muestran en la ventana de entrada en lugar de los nombres delas variablesexternas y deentrada
* Debe prestar especial atención al error "Array out of range" - muchos indicadores antiguos personalizados producirán este error en el nuevo compilador en modo estricto cuando se ejecutan en un gráfico. Es conveniente encontrar la causa y solucionarla.
** En el nuevo MQL4 y MQL5 las banderas FILE_SHARE_READ y FILE_SHARE_WRITE son responsables del modo de compartir archivos, no existían en el antiguo MQL4.
¿dime qué pasa?
Perdona si te molesto, pero ahora aparece este error
39ª posición.
El mismo error, ¿array fuera de rango?