[ARCHIVO] Cualquier pregunta de novato, para no saturar el foro. Profesionales, no pasen de largo. En ninguna parte sin ti - 3. - página 240
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
for (i = 0; i < a1; i++)
{
OrderSelect(i,SELECT_BY_POS);
OrderDelete(OrderTicket());
}
Aquí hay un simple script como este debería borrar todas las órdenes pendientes, pero borra exactamente la mitad de las órdenes ... ???
a1 = Total de pedidos();
for (i = 0; i < a1; i++)
{
OrderSelect(i,SELECT_BY_POS);
OrderDelete(OrderTicket();
}
Este sencillo script debería borrar todas las órdenes pendientes pero borra exactamente la mitad de ellas... ???
Digamos que hay 10 pedidos.
Aquí has borrado la mitad (de cero a cinco)
ahora quiere seleccionar el sexto... y sólo quedan 5. Hay un error y no hay nada que borrar. Lo mismo ocurre con los demás.
a1 = PedidosTotal();
for (i = 0; i < a1; i++)
{
OrderSelect(i,SELECT_BY_POS);
OrderDelete(OrderTicket();
}
Este sencillo script debería borrar todas las órdenes pendientes, pero borra exactamente la mitad de las órdenes ... ???
Cambiar la dirección de la búsqueda de órdenes:
for (i=a1-1; i>=0; i--) {....}
Cambiar la dirección de la enumeración de la orden:
for (i=a1-1; i>=0; i--) {....}
1. ¿Lo has comprobado?
Informe: Ayudó, pero parece que tiene fallos.
Primera terminal. Se han eliminado todos los gráficos y símbolos, se han añadido 7 símbolos de dólar y se han añadido gráficos. Todo con recargas.
Se ha ampliado el teletipo a 3/4 de la pantalla. Llenó los 6 primeros, el 7º llegó a 5 casillas.
Después del siguiente reinicio no se llenan todas por completo, la distribución es casi aleatoria - cuanto más bajo es el símbolo en la lista, menos celdas recibe.
La segunda terminal. Tenía 7 pares de yenes en él. Eliminados los caracteres extra, reiniciado - se llenan mucho más profundo, pero la profundidad de llenado resultó ser distribuido al azar.
Me inclino por el hecho de que se trata de un error debido al pequeño caché: no es suficiente para todos, mientras que la distribución es aleatoria o "por orden de llegada".
En cualquier caso, para una moneda el método funciona. Resumen: receta al hecho :) Gracias.
Funciona... Pero, ¿cuál es la lógica? ¿Qué diferencia hay entre i++ o i--?
Ya se le ha dicho cuál es el motivo. No se trata de i++ o i--, se trata de desde qué extremo de la lista empiezas a borrar órdenes: el principio de la lista (como has hecho) o el final de la lista (como tienes que hacer en este caso).
Para entender lo que ocurre cuando se borran los pedidos, es necesario conocer y comprender cómo se almacenan los pedidos en la matriz.
Cuando se elimina primero el primer pedido (está indexado por i=0), los índices de todos los pedidos se desplazan en la matriz: el primer pedido se convierte en nulo, el segundo en primero, el tercero en segundo, y así sucesivamente. Por ello, no se eliminan completamente todas las órdenes, de hecho, cuando i se convierte en 6, la sexta orden se desplaza a la quinta posición en la matriz de órdenes y la orden simplemente no se selecciona por el índice 6.
Cuando se eliminan pedidos del final de la lista, el desplazamiento no se produce: el primer pedido tiene una posición cero en la lista, y la seguirá teniendo. La décima orden tenía la posición 9, se eliminó, luego la novena orden, que tiene una posición 8 en la lista se elimina, y así sucesivamente, hasta la primera orden con una posición cero en la matriz de órdenes.
Obras .... pero cual es la lógica - ¿que diferencia hay entre i++ o i--?
ya ha sido contestado por un usuario
... abrir el horario de forma autónoma.