[ARCHIVIO] Qualsiasi domanda da principiante, per non ingombrare il forum. Professionisti, non passate oltre. Da nessuna parte senza di te - 3. - pagina 240
Ti stai perdendo delle opportunità di trading:
- App di trading gratuite
- Oltre 8.000 segnali per il copy trading
- Notizie economiche per esplorare i mercati finanziari
Registrazione
Accedi
Accetti la politica del sito e le condizioni d’uso
Se non hai un account, registrati
for (i = 0; i < a1; i++)
{
OrderSelect(i,SELECT_BY_POS);
OrderDelete(OrderTicket());
}
Ecco un semplice script come questo dovrebbe cancellare tutti gli ordini in sospeso, ma cancella esattamente la metà degli ordini ... ???
a1 = OrdiniTotali();
per (i = 0; i < a1; i++)
{
OrderSelect(i,SELECT_BY_POS);
OrderDelete(OrderTicket();
}
Questo semplice script dovrebbe cancellare tutti gli ordini pendenti ma ne cancella esattamente la metà ... ???
Diciamo che ci sono stati 10 ordini.
Qui avete cancellato la metà (da zero a cinque)
ora vuoi selezionare il sesto... e ne rimangono solo 5. C'è un errore e non c'è niente da cancellare. È lo stesso per gli altri.
a1 = OrdiniTotali();
per (i = 0; i < a1; i++)
{
OrderSelect(i,SELECT_BY_POS);
OrderDelete(OrderTicket();
}
Questo semplice script dovrebbe cancellare tutti gli ordini in sospeso, ma cancella esattamente la metà degli ordini ... ???
Cambia la direzione della ricerca dell'ordine:
per (i=a1-1; i>=0; i--) {....}
Cambia la direzione dell'enumerazione degli ordini:
per (i=a1-1; i>=0; i--) {....}
1. Avete controllato?
Rapporto: Ha aiutato, ma sembra essere glitchato.
Primo terminale. Rimosso tutti i grafici e i simboli, aggiunto 7 simboli del dollaro, aggiunto i grafici. Tutti con ricariche.
Allungato il ticker a 3/4 dello schermo. Riempiti i primi 6, il 7° è arrivato a 5 caselle.
Dopo il prossimo riavvio non tutti riempiti completamente, la distribuzione è quasi casuale - il simbolo più basso nella lista, meno celle ottiene.
Il secondo terminale. C'erano 7 coppie di yen. Rimosso i caratteri extra, riavviato - si riempiono molto più in profondità, ma la profondità di riempimento è risultata essere distribuita in modo casuale.
Propendo per il fatto che questo sia un bug a causa della piccola cache - semplicemente non è abbastanza per tutti, mentre la distribuzione è casuale o "primo arrivato, primo servito".
In ogni caso, per una valuta il metodo funziona. Riassunto: ricetta al fatto :) Grazie.
Funziona ... Ma qual è la logica - che differenza fa i++ o i--?
Vi è già stato detto qual è il motivo. Non si tratta di i++ o i--, ma da quale estremità della lista iniziate a cancellare gli ordini - l'inizio della lista (come avete fatto) o la fine della lista (come dovete fare in questo caso).
Per capire cosa succede quando gli ordini vengono cancellati, è necessario conoscere e capire come gli ordini sono memorizzati nell'array.
Quando cancellate il primo ordine per primo (è indicizzato da i=0), gli indici di tutti gli ordini sono spostati nell'array - il primo ordine diventa nullo, il secondo diventa il primo, il terzo diventa il secondo e così via. Questo è il motivo per cui tutti gli ordini non sono completamente cancellati - infatti, quando i diventa 6, il sesto ordine viene spostato alla quinta posizione nella matrice degli ordini e l'ordine semplicemente non viene selezionato dall'indice 6.
Quando cancelli gli ordini dalla fine della lista, lo spostamento non avverrà - il primo ordine ha una posizione zero nella lista, e continuerà ad averla. Il decimo ordine aveva la posizione 9, è stato cancellato, poi il nono ordine, che ha una posizione 8 nella lista viene cancellato, e così via, fino al primo ordine con una posizione zero nella matrice degli ordini.
Opere .... ma qual è la logica - che differenza fa i++ o i--?
ti è già stata data una risposta da un utente
... aprire autonomamente l'orario.