Cualquier pregunta de los recién llegados sobre MQL4 y MQL5, ayuda y discusión sobre algoritmos y códigos - página 1687

 
¿Qué tienen que ver sus índices y la cantidad de pedidos devueltos? Cree un par de órdenes y haga un bucle a través de ellas. El bucle no será un array, sino un número que devolverá OrdersTotal como una función normal, ya que no devuelve la dirección del índice del array donde se almacenan los pedidos.
 

Eltamaño de la matriz es el número de elementos de la matriz (o de órdenes, por ejemplo)

El primer elemento tiene un índice de 0, siempre,

el último es uno menos que el tamaño del array.


Si quieres crear un array con un elemento, la única forma de acceder a ese elemento es utilizar arr[0]. En todos los demás casos, obtendrá un error de desbordamiento del array.

Lo mismo ocurre con las órdenes, sólo que no hay error, pero no se puede llegar al primer elemento (orden) de otra manera.

 
Aquí está la referencia https://www.mql5.com/ru/docs/array
Документация по MQL5: Операции с массивами
Документация по MQL5: Операции с массивами
  • www.mql5.com
Операции с массивами - Справочник MQL5 - Справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5
 
Lo entiendo, OrdersTotal sólo da el importe, pero para referirnos al pedido usamos OrderSelect y aquí ya pasa por el array. He pasado por alto este punto.
 
Sí, así es. OrderSelect(0,


 
Nerd Trader un índice del array donde se almacenan los pedidos.

No está haciendo un pase sobre un número, sino sobre la lista de órdenes en su cuenta de operaciones. Y el número de pedidos es sólo un número... no se pueden hacer pases sobre él... ¿cómo se hace un pase sobre un número 100? Tú no... Y en la lista de 100 líneas, podemos hacer una pasada de cada línea.

El número devuelto por OrdersTotal() es un número primo... Se ha diseñado de forma que coincida SIEMPRE con el número de pedidos de la lista.

Si sabe que sólo tiene 1 pedido en todo momento, entonces sólo necesita trabajar con un número de pedido "0" sin ningún OrdersTotal()...

 
Nikolay Ivanov #:

No está haciendo un pase sobre un número, sino sobre la lista de órdenes en su cuenta de operaciones. Y el número de pedidos es sólo un número... no se pueden hacer pases sobre él... ¿cómo se hace un pase sobre un número 100? Tú no... Y en la lista de 100 líneas, podemos hacer una pasada de cada línea.

El número devuelto por OrdersTotal() es un número primo... Se ha diseñado de forma que coincida SIEMPRE con el número de pedidos de la lista.

Si sabe que sólo tiene 1 pedido en todo momento, entonces sólo tiene que trabajar con un número de pedido "0" sin ningún OrdersTotal()...

Aleksei Stepanenko #:

El tamaño del array es el número de elementos del array (o de órdenes, por ejemplo)

El primer elemento tiene un índice 0, siempre,

el último es uno menos que el tamaño del array.


Si quieres crear un array con un solo elemento, la única forma de acceder a él es utilizar arr[0]. En todos los demás casos, obtendrá un error de desbordamiento del array.

Lo mismo ocurre con las órdenes, sólo que no hay error, pero no se puede llegar al primer elemento (orden) de otra manera.

Sí, lo es.
 
Nerd Trader usamos OrderSelect y ya pasa por el array. He pasado por alto este punto.

El array (lista) pasa por un CICLO. El OrderSelect sólo selecciona el pedido cuyo número de orden se ha creado en este ciclo para seguir trabajando.

Документация по MQL5: Торговые функции / OrderSelect
Документация по MQL5: Торговые функции / OrderSelect
  • www.mql5.com
OrderSelect - Торговые функции - Справочник MQL5 - Справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5
 
Nerd Trader un índice del array donde se almacenan los pedidos.
La cosa es que el formulario es conveniente en el sentido de que dándole el número de posiciones, puede llenar cualquier matriz. En mi caso todo se bloquearía si se introduce 0, porque el ArrayResize está ligado al número de posiciones. Por esta razón tengo una condición adicional si el número de posiciones es superior a 0, entonces este bucle. Yo también me lío con eso siempre, ahora lo he vuelto a comprobar. El consejo es correcto, porque si no el forte no llenará el elemento cero del array, que es para lo que sirve el forte.
 
Genial, amigos, que tengamos un consenso
Razón de la queja: