Domande dai principianti MQL4 MT4 MetaTrader 4 - pagina 219
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
Ho sempre saputo che contiene il numero di ordini -1, cioè OrdersTotal()-1 e tutto funzionava, ma ho iniziato a scrivere un programma e improvvisamente, un ordine non viene più contato, ho chiesto OrdersTotal() e mi ha dato il numero totale di ordini = 3, invece di 3-1.
Cosa succede?
La forma abituale del ciclo nell'aiuto:
int total=OrdersTotal();
for(int pos=0;pos<totale;pos++)
{
}
Cioè, il primo ordine è uguale a zero.
Ma no, infatti, il primo ordine è 1, il che significa che dovremmo iniziare la ricerca da 1 e non da zero?
Le meta-citazioni hanno fatto qualcosa di sbagliato o sono stupido io?
Ciao, cosa succede con OrdersTotal()?
Ho sempre saputo che contiene il numero di ordini -1, cioè OrdersTotal()-1, e tutto funzionava, ma ho iniziato a scrivere un programma e improvvisamente un ordine non viene contato. Ho chiesto OrdersTotal() e dice ordini totali = 3, invece di 3-1.
Cosa succede?
La forma usuale del ciclo nell'aiuto:
int total=OrdersTotal();
for(int pos=0;pos<totale;pos++)
{
}
Cioè, il primo ordine è uguale a zero.
Ma no, infatti, il primo ordine è 1, il che significa che dovremmo iniziare la ricerca da 1 e non da zero?
Le meta-citazioni hanno fatto qualcosa di sbagliato o sono stupido io?
Hai confuso gli ORDINI RELATIVI e le PISTE. Leggete il riferimento. Sii più specifico nella tua domanda: cosa stai cercando di contare: ORDINI RIMOSSI o POSIZIONI? E sì, non è cambiato nulla - l'indice del primo elemento inizia con '0'.
Aggiunto: esempio
Esempio: calcolare le posizioni e gli ordini pendenti
Hai confuso gli ORDINI RELATIVI e le POSIZIONI. Leggete il riferimento. Formulate la vostra domanda in modo più preciso: cosa state cercando di contare: ORDINI RETRIBUITI o POSIZIONI? E sì, non è cambiato nulla - l'indice del primo elemento inizia con '0'.
Aggiunto: esempio
Esempio: calcolare le posizioni e gli ordini pendenti
Intendo MQL4, non MQL5, non c'è differenza tra ordini pendenti e a mercato!
Intendo MQL4, non MQL5, non c'è una divisione in pending e market pending!
State scrivendo nel forum MQl5. Stai scrivendo nella sezione principale. Scrivi nel forum MQL5 - e riceverai risposte su MQL5.
Le domande sul vecchio terminale sono indirizzate alla sezione speciale: MQL4 e MetaTrader 4. D'ora in poi, scrivi lì. Vi inoltrerò le vostre domande.
Ho confrontato due varianti, nella prima, ho usato OrdersTotal()-1 e ho iniziato la ricerca da zero - ho ottenuto l'errore
. Nella seconda variante, ho iniziato da uno e ho preso tutto OrdersTotal() - nessun errore questa volta
Negli screenshot, potete vedere che OrdersTotal() mostra il numero effettivo di ordini, non OrdersTotal()-1 ...
Ladomanda è perché OrdersTotal() mostra il numero effettivo di ordini, piuttosto che -1, dovrebbe essere così o è qualcosa di nuovo?
Perché in questo caso, dovremmo iniziare la ricerca non da zero, ma da uno!
Ho confrontato due varianti, nella prima, ho usato OrdersTotal()-1 e ho iniziato la ricerca da zero - ho ottenuto l'errore
. Nella seconda variante, ho iniziato da uno e ho preso tutto OrdersTotal() - nessun errore questa volta
Negli screenshot, potete vedere che OrdersTotal() mostra il numero effettivo di ordini, non OrdersTotal()-1 ...
Ladomanda è perché OrdersTotal() mostra il numero effettivo di ordini, piuttosto che -1, dovrebbe essere così o è qualcosa di nuovo?
Perché in questo caso, dovremmo iniziare la ricerca non da zero, ma da uno!
Credo di aver capito il mio errore, scusate...
C'è un offset di -1 in questa condizione:
if (OrderSelect(i-1,SELECT_BY_POS)==true){}
Scusate la franchezza, ho preso la stringa da un altro programma e non ho fatto attenzione all'offset!