Tutte le domande dei nuovi arrivati su MQL4 e MQL5, aiuto e discussione su algoritmi e codici - pagina 1166
![MQL5 - Linguaggio delle strategie di trading integrato nel client terminal MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
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
Potete dirmi per favore come impostare la selezione degli ordini per simbolo per OrdersTotal()?
In questo momento, se c'è un ordine aperto su una coppia, non si aprirà su altre.
Potete dirmi per favore come impostare la selezione degli ordini per simbolo per OrdersTotal()?
Ora, se c'è un ordine aperto su una coppia, non si apre su altre.
Guarda su kodobase, c'è un esempio in ogni EA
Guarda in kodobase, c'è un esempio in ogni consulente
Io non sono un programmatore (
È un po' complicato per me.
Non sono un programmatore(
È un po' complicato per me.
non è complicato.
per scrivere un EA di base, ecco tutte le funzionalitàhttps://www.mql5.com/ru/forum/131859
Per i vostri scopi OrdersTotal() è il numero totale di ordini aperti (numerati a partire da 0) nel terminale, quindi è necessario selezionarli uno per uno (passare attraverso il ciclo) utilizzando OrderSelect() e manipolare gli ordini necessari
Potete dirmi come impostare la selezione degli ordini per simbolo per OrdersTotal()?
In questo momento, se c'è un ordine aperto su una coppia, non si apre sugli altri.
Ho bisogno di controllare periodicamente (contarmi) i miei ordini come necessario.
Ho in ogni EA un ciclo (un metodo enorme) che viene chiamato prima delle azioni importanti:
for(int pos=OrdersTotal()-1; pos>=0;pos--) {
if (!OrderSelect(pos,SELECT_BY_POS,MODE_TRADES)) {
selectFailed=true; /* не удалось "выбрать" ордер - статистика может быть неверной */
continue;
}
if (OrderCloseTime()!=0) { /* ордер закрыт но ещё не удалён из списка*/ continue; }
if (OrderMagicNumber()==0) { /* ордер выставлен юзером */ } continue;
else if (OrderMagicNumber()!=_Magic) { /* ордер выставлен другим советником */ continue; }
if (OrderSymbol()!=_Symbol) { /* ордер с правильным Magic но на другом символе */ continue; }
/// обработка рабочих ордеров, с правильным Magic на символе советника (то есть наш ордер)
/// проверяются несработки, считается кол-во, статистика, позиции и прочее
}
controllare un ordine sul simbolo è evidenziato
periodicamente, come necessario, per controllare (autocontrollare) i loro ordini.
Ho un ciclo (un metodo enorme) in ogni EA, che viene chiamato prima delle azioni importanti:
for(int pos=OrdersTotal()-1; pos>=0;pos--) {
if (!OrderSelect(pos,SELECT_BY_POS,MODE_TRADES)) {
selectFailed=true; /* не удалось "выбрать" ордер - статистика может быть неверной */
continue;
}
if (OrderCloseTime()!=0) { /* ордер закрыт но ещё не удалён из списка*/ continue; }
if (OrderMagicNumber()==0) { /* ордер выставлен юзером */ } continue;
else if (OrderMagicNumber()!=_Magic) { /* ордер выставлен другим советником */ continue; }
if (OrderSymbol()!=_Symbol) { /* ордер с правильным Magic но на другом символе */ continue; }
/// обработка рабочих ордеров, с правильным Magic на символе советника (то есть наш ордер)
/// проверяются несработки, считается кол-во, статистика, позиции и прочее
}
controllare l'ordine in base al simbolo è evidenziato
Come nota a margine, capisco che i ticker degli ordini storici possono perdersi. La domanda è se i ticker degli ordini(SELECT_BY_TICKET) in MT4 e i ticker delle operazioni e delle posizioni in MT5 possono cambiare.
E inoltre, l'ordine può essere cambiato dopo l'OrderSelect sul biglietto. Per esempio il giorno dopo. L'EA non è disattivato.
Se l'ordine in sospeso è diventato un ordine a mercato, puoi visualizzarlo in base al suo tipo. Se l'ordine a mercato ha chiuso, allora guardiamo il tempo di chiusura dell'ordine, non uguale a zero OrderCloseTime()!=0
Se l'ordine in sospeso è stato chiuso dalla sua durata, allora come facciamo a rintracciarlo dal ticket dell'ordine.
E una domanda, la durata di vita è anche in ordini di mercato (MT4), funziona?
Potete dirmi per favore come impostare la selezione degli ordini per simbolo per OrdersTotal()?
Ora, se c'è un ordine aperto su una coppia, non si apre su altre.
La questione è già risolta. Grazie a tutti.
Ciao cari signori! Non capisco cosa c'è di sbagliato, perché scrive Alert: time3-time1 = datetime sbagliato?
perché il numero è negativo :-)
secondo questa logica il tempo1 è __sempre __più del tempo3
perché il numero è negativo :-)
secondo la logica data il tempo1 è __sempre __più del tempo3
Grazie! A volte il cervello si spegne.