Errores, fallos, preguntas - página 3149
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
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.
¿Quién ha dicho que éste es el único cálculo correcto de límite e indicador?
Estamos hablando de otro cálculo de límite y del propio indicador -de izquierda a derecha- desde el principio de la historia hasta la época actual. Es más sencillo y evidente.
En dicho límite calculado (int limit = rates_total - prev_calculated; if(limit>1) limit=rates_total-1;) todos los datos sobre
Si el tick actual (límite==0), entonces for(int i=límite; i>=0; i--) { // . } calculará el indicador en cada nuevo tick, y sólo se recalculará la barra cero.
Si abrimos una nueva barra (límite==1), entonces for(int i=límite; i>=0; i--) { // ... } realizará el cálculo de la primera barra y de la barra cero, la anterior y la recién abierta.
Si esta historia cambia (límite>1), entonces for(int i=límite; i>=0; i--) { // ... } realizará un recálculo completo del indicador para todo el historial disponible (el historial ha sido modificado en alguna parte)
¿Qué diferencia hay? ¿Puede ser menor que cero?
Sí, lo he hecho (añadido al post anterior)
Pero aparentemente este problema es para siempre.
Y ahora sólo hay "si".
Sólo Artyom entendió el problema.
Pero aparentemente este problema es para siempre.
Y ahora sólo hay "si".
No, no lo entendí. Aclarar lo que he entendido...
el operador ternario parece más lacónico (IMHO)
Además, como he dicho, qué pasa si algo sale mal y prev_calculado resulta ser mayor que rates_total.
Me encontré con esta situación, cuando las barras máximas en la ventana son != ilimitadas, pero por ejemplo, 50000. En ese caso, el tamaño de la matriz de barras aumentaría en 1 con cada nueva barra, pero en algún momento volvería a ser de 50000. No sigo la lógica. Lo cogí hace un par de años. Hay que comprobarlo ahora. Prepararé un desbloqueo en mi VPS.
No, no lo entendí. Aclarar lo que he entendido...
Lo que por ahora no funciona como antes
limit==0
para ticks i>=0
para barras i>0
Has escrito todo correctamente arriba,
sólo para la nueva barra mal impresafor(int i=limit; i>=0; i--)
el operador = no es necesario aquí, pero es probablemente en el pasado,
a menos que devuelvan el comportamiento anterior.
Lo que por ahora no funciona como antes
limit==0
para ticks i>=0
para barras i>0
Has escrito todo correctamente arriba,
sólo para una nueva barra mal impresafor(int i=limit; i>=0; i--)
aquí el operador = no es necesario, pero es probablemente en el pasado,
a menos que devuelvan el comportamiento anterior.
De nuevo no entiendo nada. ¿Qué tiene de malo? Todo parece ser como antes.
No lo entiendo de nuevo. ¿Qué tiene de malo? Todo parece ser como antes.
Con este diseño.
El búfer del indicador está fuera de los límites.
Por favor, muéstrame un ejemplo paraticks con ciclo i>=0
tal vez he olvidado algo y lo estoy haciendo mal.
Con este diseño
, el búfer del indicador se sale de los límites.
Con este diseño.
El búfer del indicador está fuera de los límites.
Por favor, muéstrame un ejemplo paraticks con ciclo i>=0
tal vez he olvidado lo que estoy haciendo mal.
Ya escribí que con esta construcción estás accediendo al índice del buffer con rates_total (cuando prev_calculated == 0 ).
Y esto es un desbordamiento porque rates_total es el tamaño del buffer cuyo último elemento rates_total-1