Come controllare se un ordine è selezionato - pagina 3

 
FAQ:

ordinare per selezione e nient'altro.

Il selettore di ordini non sa affatto se un ordine è attualmente selezionato, e quale ordine è attualmente selezionato se è selezionato, quindi ti sbagli completamente.

 
Ant_TL:

Il selettore di ordini non sa se un ordine è attualmente selezionato, quindi ti sbagli di grosso.

Guardate qualsiasi EA! Sei il primo a cercare di selezionare da solo! Imparare! Perché sei così imbarazzato con tutto il forum?
 

Per quelli nel serbatoio :

1) Molto tempo fa, in una funzione lontana, hai selezionato un ordine e ci hai fatto del lavoro.

2) Dopo un tempo molto lungo, vuoi accedere di nuovo e scoprire di più sul suo destino.

3) contattate l'ordine e il terminale dice: non c'è nessun ordine (cioè l'ordine non è stato già scelto, lo avete già piazzato, e avete dimenticato con successo il suo nome (biglietto)). == errore

Cosa vi impedisce di selezionare l'ordine, nel momento in cui l'avete scelto, di memorizzare il suo nome (ticket) in una variabile globale, e poi, invece di tornare ad esso usando un nome dimenticato da tempo (ticket), selezionarlo usando il valore di questa variabile globale.

Se contiene il nome dell'ordine, allora avrai una risposta positiva che non l'hai dimenticato, e potrai conoscere il suo destino o fare qualche azione con esso.

Ma se si è dimenticato il suo nome, si ottiene solo una risposta negativa dalla funzione order select, e ci si rende conto che l'ordine deve essere cercato di nuovo nella lista.

Whew... è un sacco di testo...

 
borilunad:
Guardate qualsiasi EA! Sei il primo a provare a selezionarlo a tua discrezione! Imparare! Perché ti vergogni così tanto su tutto il forum?

Non sono io ad essere imbarazzato, sono quelli che non capiscono le cose fondamentali di cui scrivo (eppure cercano in modo piuttosto aggressivo di "fare la morale").

Cosa significa "controllare se un ordine è stato selezionato"?

Significa che in qualsiasi momento dell'esecuzione di un programma in mql4, c'è una tale costruzione interna, come l'ordine attualmente selezionato. Semplicemente usando OrderSelect, possiamo selezionare qualsiasi ordine aperto/chiuso per biglietto o numero nella lista.

Tuttavia, non possiamo controllare se un ordine è attualmente selezionato e qual è il suo numero tramite OrderSelect, ma solo selezionare un ordine usando i dati che già conosciamo, come il suo biglietto o il suo numero nella lista.

 
FAQ:

per coloro che sono nel serbatoio:

Per coloro che sono nel serbatoio, naturalmente posso scrivere la mia funzione OrderSelect, che oltre a selezionare un ordine scriverà il suo biglietto al globale e poi determinare questo biglietto se ho bisogno di sapere se l'ordine è selezionato, ma questo è chiamato un semplice problema di risoluzione attraverso il ...

 
FAQ:

Per quelli nel serbatoio :

1) Molto tempo fa, in una funzione lontana, hai selezionato un ordine e ci hai fatto del lavoro.

2) Dopo molto tempo, vuoi accedere di nuovo e scoprire di più sul suo destino.

3) contattate l'ordine e il terminale dice: non c'è nessun ordine (cioè l'ordine non è stato già scelto, lo avete già piazzato, e avete dimenticato con successo il suo nome (biglietto)). == errore

Se questo messaggio impedisce effettivamente di selezionare l'ordine, il suo nome (ticket) sarà memorizzato in una variabile globale, e poi invece di tornare ad esso (ricerca) utilizzando un nome dimenticato da tempo (ticket),

Se ha il nome dell'ordine, riceverai una risposta positiva che non l'hai dimenticato, e potrai scoprire il suo futuro destino o fare qualsiasi azione con esso.

Ma se si è dimenticato il suo nome si ottiene solo una risposta negativa dalla funzione order select, e si scopre che l'ordine deve essere cercato di nuovo nella lista.

Whew... è un sacco di testo...

Probabilmente pensa che dovremmo cercare il biglietto in base al numero che ci dà il DC e che vediamo sul grafico?
 
Ant_TL:

L'errore è "spaventoso" perché non dovrebbe esserci alcun errore

L'ordine può essere eseguito, e può restituire un errore, e non si può evitare questo errore.

 
Figar0:

L'ordine può essere eseguito, ma può restituire un errore, e non si può evitare questo errore.

Proprio così. Ma non sono d'accordo che non possiamo andare da nessuna parte senza questi errori. Lasciare tali errori nel codice è solo cattivo codice. È una situazione in cui non si può fare a meno di generare errori - un difetto del toolkit. Gli errori di esecuzione sono tutt'altra cosa, non sono realmente errori dell'Expert Advisor, ma è un'indicazione all'Expert Advisor di ulteriori azioni da intraprendere.

 

In effetti, c'è molta demagogia in corso.

bool OrderSelect( int index, int select, int pool=MODE_TRADES)
La funzione seleziona un ordine per lavorare con esso. Restituisce TRUE se la funzione si completa con successo. Restituisce FALSE se la funzione fallisce. Chiama GetLastError() per ottenere informazioni sull'errore.

Tutto ciò che serve per sapere se un ordine è scelto o meno.

Ant_TL:

Se dici così, giustifica il tuo punto di vista

void SomeFunс()

{

int tick=OrderTicket(); // Поразумевает ордер выбраный посредством OrderSelect  (ну или ошибку)

// ..... 

if(tick>0) OrderSelect(tick,SELECT_BY_TICKET);  // Так зачем его еще раз выбирать??? 
} 
 
borilunad:
Probabilmente pensa che dovremmo cercare il biglietto in base al numero che ci dà il DC e che vediamo sul grafico?

No, è davvero nel serbatoio.