Eso es porque IndBuff no está asignado a rates_total + 1 Y ArrayResize no es aplicable a él. Rompieron el para construir. ¿Tenemos que usar ahora if-arses?
¿Sabes qué es lo más molesto? Que cualquier comportamiento sea engañado silenciosamente, sin avisar. Y entonces la gente sale herida. Estoy harto de este metatrader.
¿Sabes qué es lo más molesto? Que cualquier comportamiento sea engañado silenciosamente, sin avisar. Y entonces la gente sale herida. Estoy harto de este metatrader.
Todo está como antes.
La culpa es tuya.
Consejo - aprende a usar el depurador y no tendrás que hacer correcciones, verás todos tus fallos de una vez.
¿Sabes qué es lo más molesto? Que cualquier comportamiento sea engañado silenciosamente, sin avisar. Y entonces la gente sale herida. Estoy harto de este metatrader.
No he notado ningún cambio en el cálculo de los indicadores. Como has visto arriba, Nikolay ha explicado correctamente lo que significan los valores límite calculados como rates_total-prev_calculated.
Y lleva años funcionando, desde el cuarto terminal.
Nikolai Semko #: Aquí es donde necesitas el menos uno :))
La impresión muestra que las dimensiones son correctas.
Usa la lógica:
Si límite = 0, entonces un nuevo tick
Si limit = 1, significa una nueva barra (el último elemento del buffer rates_total es -1, y tienes rates_total, de ahí el desbordamiento)
Si el límite > 1, es mejor recalcular todo el indicador
Nikolay conozco las construcciones si y para una, pero siempre trabajé con for, simplemente me acostumbré, es más conveniente. Pero he notado algunas cosas extrañas con durante mucho tiempo y he estado posponiendo el tratar de resolverlo. Antes funcionaba bien
Paso 1: Crear una plantilla utilizando el 'MQL5 Wizard':
Paso 2: deletrear correctamente "límite" y UTILIZAR la matriz de cierre - ¡¡¡NO la llamada iClose!!!
Resultado:
y no hay errores.
Gracias por el ejemplo directo de i++, por supuesto. Pero el hecho de que tenga un bucle inverso, no lo has notado. Y si se cita iClose como ejemplo, debe utilizarse para mostrar que el índice i se utilizará posteriormente en otras funciones.
Si limit = 1, significa una nueva barra (el último elemento del buffer rates_total es -1, y tienes rates_total, de ahí el desbordamiento)
Si el límite > 1, es mejor recalcular todo el indicador
aquí es donde se equivoca - mejor usar si limit != 1
Así que toda la lógica es más o menos lo que es:
limit = rates_total - prev_calculated;
if (limit == 0) {..} // новый тикelseif ( limit == 1) {..} // новый барelse {..} // полный пересчет всего индикатора
Entiendo que algunos se indignen y digan que por qué tengo que recalcular todo si limit == 2, pero cuando limit no es igual a 1 y no es igual a 0, significa que se trata de la primera inicialización del indicador o que algo ha ido mal (por ejemplo, fallo de conexión o del servidor) Además, muchas veces me he encontrado con situaciones en las que prev_calculado era mayor que rates_total. Probablemente, antes era algún fallo y ahora se ha solucionado, pero desde entonces uso este diseño como medida de seguridad.
Para iniciar sesión y usar el sitio web MQL5.com es necesario permitir el uso de Сookies.
Por favor, active este ajuste en su navegador, de lo contrario, no podrá iniciar sesión.
Ha iniciado sesión. La autenticación de dos factores se ha desactivado. Vuelva a configurarla y escanee un nuevo código QR, o continúe con la autenticación de dos factores desactivada.
Eso es porque IndBuff no está asignado a rates_total + 1
Y ArrayResize no es aplicable a él.
Rompieron el para construir. ¿Tenemos que usar ahora if-arses?
for(int i=limit - 1;....
al menos...
Esto se debe a que el IndBuff no está asignado a rates_total + 1
y ArrayResize no es aplicable a él.
for(int i=limit - 1;....
como mínimo...
¿Sabes qué es lo más molesto? Que cualquier comportamiento sea engañado silenciosamente, sin avisar.
Y entonces la gente sale herida. Estoy harto de este metatrader.
¿Sabes qué es lo más molesto? Que cualquier comportamiento sea engañado silenciosamente, sin avisar.
Y entonces la gente sale herida. Estoy harto de este metatrader.
¿Sabes qué es lo más molesto? Que cualquier comportamiento sea engañado silenciosamente, sin avisar.
Y entonces la gente sale herida. Estoy harto de este metatrader.
No he notado ningún cambio en el cálculo de los indicadores. Como has visto arriba, Nikolay ha explicado correctamente lo que significan los valores límite calculados como rates_total-prev_calculated.
Y lleva años funcionando, desde el cuarto terminal.
Aquí es donde necesitas el menos uno :))
Nikolay conozco las construcciones si y para una,
pero siempre trabajé con for, simplemente me acostumbré, es más conveniente.
Pero he notado algunas cosas extrañas con durante mucho tiempo y he estado posponiendo el tratar de resolverlo.
Antes funcionaba bien
para i>=0 ticks
para i>0 bars
Y no se necesitaba ningún "si".
Paso 1: Crear una plantilla utilizando el 'MQL5 Wizard':
Paso 2: deletrear correctamente "límite" y UTILIZAR la matriz de cierre - ¡¡¡NO la llamada iClose!!!
Resultado:
Y no hay errores.
Paso 1: Crear una plantilla utilizando el 'MQL5 Wizard':
Paso 2: deletrear correctamente "límite" y UTILIZAR la matriz de cierre - ¡¡¡NO la llamada iClose!!!
Resultado:
y no hay errores.
Gracias por el ejemplo directo de i++, por supuesto.
Pero el hecho de que tenga un bucle inverso, no lo has notado.
Y si se cita iClose como ejemplo, debe utilizarse para mostrar que el índice i se utilizará posteriormente en otras funciones.
Nikolai conozco las construcciones de si y para uno,
Si no, si
aquí es donde
se equivoca - mejor usar
si limit != 1
Así que toda la lógica es más o menos lo que es:
Entiendo que algunos se indignen y digan que por qué tengo que recalcular todo si limit == 2,pero cuando limit no es igual a 1 y no es igual a 0, significa que se trata de la primera inicialización del indicador o que algo ha ido mal (por ejemplo, fallo de conexión o del servidor)
Además, muchas veces me he encontrado con situaciones en las que prev_calculado era mayor que rates_total. Probablemente, antes era algún fallo y ahora se ha solucionado, pero desde entonces uso este diseño como medida de seguridad.
si límite != 1