Preguntas de los principiantes MQL4 MT4 MetaTrader 4 - página 219
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
Siempre supe que contiene el número de pedidos -1, es decir, OrdersTotal()-1 y todo funcionaba, pero me puse a escribir un programa y de repente, un pedido ya no se cuenta, le pregunté a OrdersTotal() y me dio el número total de pedidos = 3, en lugar de 3-1.
¿Qué pasa?
La forma habitual del bucle en la ayuda:
int total=OrdersTotal();
for(int pos=0;pos<total;pos++)
{
}
Es decir, el primer orden es igual a cero.
Pero no, de hecho, el primer orden es 1, lo que significa que debemos empezar la búsqueda desde 1 y no desde cero?
¿Las metacitas han hecho algo mal o soy un estúpido?
Hola, ¿qué pasa con OrdersTotal()?
Siempre supe que contiene el número de pedidos -1, es decir, OrdersTotal()-1, y todo funcionaba, pero empecé a escribir un programa y de repente no se cuenta un pedido. Pedí OrdersTotal() y dice total de pedidos = 3, en lugar de 3-1.
¿Qué pasa?
La forma habitual del bucle en la ayuda:
int total=OrdersTotal();
for(int pos=0;pos<total;pos++)
{
}
Es decir, el primer orden es igual a cero.
Pero no, de hecho, el primer orden es 1, lo que significa que debemos empezar la búsqueda desde 1 y no desde cero?
¿Las metacitas han hecho algo mal, o soy un estúpido?
Has confundido las Órdenes Relacionadas y las Venenosas. Lea la referencia. Sea más específico en su pregunta: ¿qué está tratando de contar: PEDIDOS RETIRADOS o PUESTOS? Y sí, no ha cambiado nada: el índice del primer elemento empieza por '0'.
Añadido: ejemplo
Ejemplo: Calcular posiciones y órdenes pendientes
Has confundido las ORDENES RELACIONADAS y los PUESTOS. Lea la referencia. Formule su pregunta con más precisión: ¿qué está tratando de contar: ÓRDENES RETIRADOS o PUESTOS? Y sí, no ha cambiado nada: el índice del primer elemento empieza por '0'.
Añadido: ejemplo
Ejemplo: Calcular posiciones y órdenes pendientes
Me refiero a MQL4, no a MQL5, ¡no hay diferencia entre órdenes pendientes y de mercado!
Me refiero a MQL4, no a MQL5, ¡no hay división en pendientes y pendientes de mercado!
Estás escribiendo en el foro de MQl5. Está escribiendo en la sección principal. Si escribes en el foro de MQL5, obtendrás respuestas sobre MQL5.
Las preguntas sobre el antiguo terminal se dirigen a la sección especial: MQL4 y MetaTrader 4. A partir de ahora, escribe ahí. Le haré llegar sus preguntas.
He comparado dos variantes, en la primera, he utilizado OrdersTotal()-1 y he empezado la búsqueda desde cero - he obtenido el error
. En la segunda variante, he empezado con uno y he tomado todo OrdersTotal() - esta vez no hay error
En las capturas de pantalla, puede ver que OrdersTotal() muestra el número real de pedidos, no OrdersTotal()-1 ...
La pregunta es por qué OrdersTotal() muestra el número real de pedidos, en lugar de -1, ¿debería ser así o es algo nuevo?
Porque en este caso, debemos empezar la búsqueda no desde el cero, sino desde el uno.
He comparado dos variantes, en la primera, he utilizado OrdersTotal()-1 y he empezado la búsqueda desde cero - he obtenido el error
. En la segunda variante, he empezado con uno y he tomado todo OrdersTotal() - esta vez no hay error
En las capturas de pantalla, puede ver que OrdersTotal() muestra el número real de pedidos, no OrdersTotal()-1 ...
La pregunta es por qué OrdersTotal() muestra el número real de pedidos, en lugar de -1, ¿debería ser así o es algo nuevo?
Porque en este caso, debemos empezar la búsqueda no desde el cero, sino desde el uno.
Creo que he entendido mi error, lo siento...
Hay un offset de -1 en esta condición:
if (OrderSelect(i-1,SELECT_BY_POS)==true){}
¡Perdón por ser tan brusco, tomé la cadena de otro programa y no presté atención al offset!