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
Hai ancora Counter--
Vedi il commento di GumRai https://www.mql5.com/en/forum/151167/page2#954622
Grazie per i vostri post.
Ho usato Open invece di Time perché una volta che l'Open di una barra si verifica è fisso per sempre e non cambierà mai. Non sta cercando due barre consecutive - è la stessa barra e sta chiedendo se l'apertura della barra corrente durante la quale il tick ha appena avuto luogo è lo stesso del valore di Open memorizzato in ThisBarOpen. Inoltre, avrei pensato che Open sarebbe stato più diretto di Time perché è una semplice ricerca di dati mentre Time potrebbe dover fare riferimento a qualcos'altro e forse fare una sorta di calcolo.
Re Counter--; Non l'ho cambiato perché un altro EA non sarebbe in grado di chiudere un ordine perché il codice controlla che sia il MagicNumber che il Symbol() siano uguali.
Certamente prendo il punto sul fatto che un'interruzione di corrente cancelli il contenuto di BuyTicket, ma questo non è successo durante i miei test e il mio codice funziona ancora molto lentamente. Quindi non riesco a vedere come questo possa essere la causa.
La mia domanda principale al momento è perché ci sia voluto così tanto tempo per rimuovere gli EA dalle finestre del terminale che avevano posizioni aperte e nessun tempo per rimuoverli dal terminale che non aveva posizioni aperte. Coincidenza forse - ma tutte e quattro le finestre?
Non so se questo è davvero rilevante per il tuo problema, ma tu limiti il tuo trading a 1 acquisto, 1 vendita per EA quindi perché fare tutto questo?
Hai già il tuo numero di ticket qui:
se lo rendi un int statico puoi chiudere il tuo ordine esplicitamente con quel numero di ticket senza doverlo cercare nel pool di ordini.
Grazie per i vostri post.
Re Counter--; non l'ho cambiato perché un altro EA non sarebbe in grado di chiudere un ordine perché il codice controlla che entrambi i MagicNumber e Symbol() siano gli stessi prima.
La mia domanda principale al momento è perché ci sia voluto così tanto tempo per rimuovere gli EA dalle finestre del terminale che avevano posizioni aperte e nessun tempo per rimuoverli dal terminale che non aveva posizioni aperte. Coincidenza forse - ma tutte e quattro le finestre?
Hai capito come funzionano i loop?
Diciamo che hai 3 ordini aperti
Al primo giro, il contatore==0, quindi l'ordine con l'indice 0 sarà selezionato
Alla fine del ciclo diminuisci il contatore di 1, quindi contatore== -1.
Prima che il ciclo venga eseguito di nuovo, il contatore viene aumentato di 1 come parte della funzione for. Quindi contatore ==0
Quindi alla prossima esecuzione del ciclo il contatore==0 di nuovo!! e così via e così via.
Sei bloccato in un ciclo infinito che continua a controllare l'indice d'ordine 0
L'unico modo in cui si fermerà è se non ci sono ordini aperti perché allora OrdersTotal - 1 sarà -1 e 0 non è <= -1