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 appena iniziato a imparare MQL, e così ho scritto un EA che disegna una iMA e traccia una tangente (molto vicina) al grafico nella iMA nel punto in cui il puntatore del mouse è sull'asse del tempo.
Primo problema. L'Expert Advisor è MOLTO lento. Significa che la tangente viene ridisegnata per molto tempo e non segue il movimento del mouse...
Guarda la mia versione:
Sul mio portatile - tutto vola!
Ottengo l'errore 5040 (parametro corrotto di tipo stringa) la prima volta che chiamo la funzione di creazione dell'oggetto
Se prima di una chiamata impostata
nTL="";
errore 4002 (parametro non valido quando si chiama la funzione terminale client internamente)
Se impostato prima della chiamata
nTL="a";
il primo oggetto si chiamerà a.
Io lo chiamo così
Potresti dirmi dove c'è un errore?
Nella vecchia versione.
non ha mai avuto alcun guasto.
È un bug nel codice o nel terminale?
Puoi dirmi dov'è l'errore?
Ottengo l'errore 5040 (parametro corrotto di tipo stringa) la prima volta che chiamo la funzione di creazione dell'oggetto
Se prima di una chiamata impostata
errore 4002 (parametro non valido quando si chiama la funzione terminale client internamente)
Se impostato prima della chiamata
il primo oggetto si chiamerà a.
Io chiamo così
Puoi dirmi dov'è l'errore?
Siete preoccupati perché Get LastError stampa qualcosa di diverso da zero? Se è così, dovreste chiamare un errore solo se la funzione riporta un fallimento. E non dovreste chiedere un errore alla fine della trama, potreste ottenere un valore spazzatura. Questo è come è in MT4, forse qui è diverso.
Pseudocodice:
Ottengo l'errore 5040 (parametro corrotto di tipo stringa) la prima volta che chiamo la funzione di creazione dell'oggetto
Se prima di una chiamata impostata
errore 4002 (parametro non valido quando si chiama la funzione terminale client internamente)
Se impostato prima della chiamata
il primo oggetto si chiamerà a.
Io lo chiamo così
Potresti dirmi dov'è l'errore?
Prova a "incollare" le stringhe attraverso StringConcatenate()
Non so dove sia l'errore, ma la gestione dei nomi degli oggetti è molto discutibile, per usare un eufemismo.
Non è chiaro perché avete bisogno di un numero casuale nel nome dell'oggetto, potrebbe portare ad un errore.
C'è un'altra opzione per un paio di centinaia di oggetti con nomi unici?
(Un gruppo di oggetti dovrebbe avere la stessa parte della stringa nel nome, per rimuovere il gruppo).
Sei preoccupato perché Get Last Errors stampa qualcosa di diverso da zero? Se è così, dovreste chiedere un errore solo se la funzione riporta un fallimento. E non dovreste chiedere un errore alla fine della trama, potreste ottenere un valore spazzatura. È così in MT4, forse qui è diverso.
Sei preoccupato perché Get Last Errors stampa qualcosa di diverso da zero?
Beh, logicamente, se la funzione imposta l'ultimo errore, allora al completamento della funzione dovrebbe esserci un errore zero o il valore descritto nella documentazione. Non c'è altro modo.
Cioè, se la chiamata ha avuto successo e l'errore è non-zero, questo caso deve essere descritto nella documentazione.
Mi scervellerò in questo modo per un'altra settimana. Posso darvi qualche dettaglio in più? (Puoi essere rozzo :))
Beh, di solito i nomi degli oggetti dello stesso tipo sono formati da una parte comune, per una facile rimozione ("nTL_" nel vostro caso) e differenze. Uso anche l'identificatore di modulo, se ci può essere più di uno di questi stessi moduli contemporaneamente sul grafico.
La differenza può essere qualsiasi cosa, anche un contatore, che si aumenta ogni volta che si crea un oggetto. Ma è meglio fare delle distinzioni per logica - tempo dell'oggetto, coordinate dell'oggetto, l'obiettivo è di ottenere un'unicità garantita. L'effetto collaterale è che costruendo di nuovo un nome, si possono cambiare le proprietà di un oggetto già creato.
Il random non fornisce questa "unicità garantita".