Tutte le domande dei nuovi arrivati su MQL4 e MQL5, aiuto e discussione su algoritmi e codici - pagina 624

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
Ecco come modificare
ci sono molti errori nel codice, in
è meglio normalizzare i prezzi, allora funzioneranno, poi il server darà un errore di "prezzi sbagliati", è auspicabile normalizzareStopLoss_SELL
e molto probabilmente, è necessario controllare se lo StopLoss è uguale a zero - non è auspicabile confrontare i numeri reali per essere uguali, si dovrebbe cercare di confrontare i numeri reali a > o <
Aiutami a risolvere un bug nell'indicatore, non disegna il massimo e il minimo del giorno quando è sull'ultima candela dell'ora.
Ho abbozzato l'indicatore, il tuo codice non ama lavorare con le stringhe, lo scriverei più semplice, ecco un esempio. Anche se se il vostro compito è quello di prendere in considerazione l'offset temporale del server, allora è necessario il contrario.
Anche il mio esempio non è un esempio, l'ho scritto velocemente, penso che non avrei dovuto contare dalla fine della storia all'inizio alla prima esecuzione, ma dalla barra zero alla storia, il codice sarebbe stato più corto e avrebbe potuto calcolare il giorno corrente più velocemente - il ciclo sarebbe stato più breve,
Ma l'ho controllato nel tester, sembra funzionare senza problemi, che sia così, è tardi, ho sonno... Ho fatto un cattivo esempio (((
ci sono molti errori nel codice, in
è meglio normalizzare i prezzi, allora funzioneranno, poi il server darà un errore di "prezzi sbagliati", è auspicabile normalizzareStopLoss_SELL
E molto probabilmente, è necessario controllare se lo StopLoss è uguale a zero, e non è auspicabile confrontare i numeri reali per essere uguali, si dovrebbe cercare di confrontare i numeri reali a > o <
Proprio così. Ho appena mostrato un posto nel codice, perché non modifica gli ordini a mercato: la richiesta di uno stop dal mercato darà 0.
Ecco un indicatore abbozzato, non mi piace il tuo codice con le stringhe, lo scriverei più semplice, ecco un esempio. Anche se se il vostro compito è quello di prendere in considerazione l'offset temporale del server, allora dovete farlo in modo diverso.
Anche il mio esempio non è un esempio, l'ho scritto velocemente, penso che non avrei dovuto contare dalla fine della storia all'inizio alla prima esecuzione, ma dalla barra zero alla storia, il codice sarebbe stato più corto e avrebbe potuto calcolare il giorno corrente più velocemente - il ciclo sarebbe stato più breve,
Ma l'ho controllato nel tester, sembra funzionare senza problemi, che sia così, è tardi, ho sonno... Cattivo esempio fatto (((
Non è il mio codice, l'ho trovato su Internet, non so scrivere indicatori. :)
Per quello che vale un cattivo esempio, mi è piaciuto molto il tuo indicatore, funziona nello Strategy Tester e sui grafici reali.
Molte grazie per il rapido aiuto!
Posso anche chiederti di rimuovere le linee che disegnano il canale? Le ho segnate con delle frecce rosse nello screenshot.
E se non è troppo disturbo, aggiungete la funzione per disattivare/attivare la formazione delle linee nel giorno corrente. Li ho segnati sullo screenshot con delle frecce blu. https://prnt.sc/kuuj3e
Grazie in anticipo!
Ciao caro!
Per favore, consigliate come eseguire la procedura OnInit();
dopo che le variabili di Expert Advisor sono state cambiate?
Quando si posiziona l'Expert Advisor sul grafico, c'è OnInit(); ma quando le variabili vengono cambiate, non c'è OnInit!?
Come identificare l'evento del cambiamento della variabile di Expert Advisor?
Per favore aiutatemi con un consiglio, o meglio con del codice, come fare?
Ciao caro!
Per favore, consigliate come eseguire la procedura OnInit();
dopo che le variabili di Expert Advisor sono state cambiate?
Quando si posiziona l'Expert Advisor sul grafico, c'è OnInit(); ma quando le variabili vengono cambiate, non c'è OnInit!?
Come identificare l'evento del cambiamento della variabile di Expert Advisor?
Per favore aiutatemi con un consiglio, o meglio con del codice, come fare?
Sperimenta questo codice, leggi il messaggio nel log dell'EA (cambia il TF, inserisci la variabile, riavvia il terminale senza chiudere l'EA...)
e la seconda opzione è quella di descrivere una variabile di portata globale con il modificatore static
sperimentare con tale codice, leggere il messaggio nel log di Expert Advisor (cambiare il TF, inserire la variabile, ricaricare il terminale senza chiudere Expert Advisor...)
e la seconda opzione è quella di descrivere una variabile di portata globale con il modificatore static
Nell'ambito globale con il modificatore static????? Questa è una specie di perversione.
A livello globale con il modificatore statico static????? Questa è una specie di perversione.
Ma dalla mia esperienza, quando le build di MT4 erano spesso aggiornate, è meglio scriverle secondo il classico C++, piuttosto che ascoltare la risposta "scrivi il codice correttamente" quando si comunica con gli sviluppatori
ZS: Mi ricordo perché ho iniziato a scrivere il modificatore statico globalmente, se voglio essere sicuro di non "perdere" il valore della variabile durante l'esecuzione del programma MQL. Prima (circa 5 anni fa) la direttiva #property strict del precompilatore non esisteva e quando si abilitano i file (#include o library - non ricordo più) ho "perso la mia variabile" una volta, poiché i nomi delle variabili coincidevano con il nome della variabile.Sono stato maledetto da MQL ma poi ho trovato questo errore per caso. Ma se scrivessi un modificatore statico il compilatore mostrerebbe un errore di compilazione anche in quel caso.
Il compilatore attuale è MT4, abbastanza pratico e affidabile, e con la direttiva #property strict, forse non ho bisogno di tali precauzioni, ma scrivo statico per abitudine quando non voglio "perdere un valore" di una variabile
ZZZY: questo modificatore non influisce sulla velocità di esecuzione dei programmi MQL, ed è comodo per me aprire il mio codice più tardi, e avendo visto la statica saprò esattamente che questa variabile ha un valore, che è importante non "perdere" durante l'esecuzione del programma
Ma dalla mia esperienza, quando le build di MT4 erano spesso aggiornate, è meglio scriverle secondo il classico C++, che ascoltare la risposta "scrivi il codice correttamente" quando si comunica con gli sviluppatori
ZS: Mi ricordo perché ho iniziato a scrivere il modificatore statico globalmente, se voglio essere sicuro di non "perdere" il valore della variabile durante l'esecuzione del programma MQL. Prima (circa 5 anni fa) la direttiva #property strict del precompilatore non esisteva e quando si abilitano i file (#include o library - non ricordo più) ho "perso la mia variabile" una volta, poiché i nomi delle variabili coincidevano con il nome della variabile.Sono stato maledetto da MQL ma poi ho trovato questo errore per caso. Ma se scrivessi un modificatore statico il compilatore mostrerebbe un errore di compilazione anche in quel caso.
Il compilatore attuale è MT4, abbastanza pratico e affidabile, e con la direttiva #property strict, forse non ho bisogno di tali precauzioni, ma scrivo statico per abitudine quando non voglio "perdere un valore" di una variabile
ZZZY: questo modificatore non influisce sulla velocità di esecuzione del programma MQL, ed è conveniente per me aprire il mio codice dopo qualche tempo, e avendo visto la statica saprò esattamente che questa variabile ha un valore, che è importante "non perdere" durante l'esecuzione del programma
Il compilatore genererà un avvertimento se i nomi delle variabili coincidono con quelli del file include. Per me, un avvertimento equivale a un errore e reagisco allo stesso modo. E le variabili di livello globale con un modificatore statico è uguale al burro.
Ma... Se ti piace scrivere così, nessuno può proibirtelo.
Ma... Ma... se ti piace scrivere in questo modo, nessuno te lo può proibire.
Ho dei dubbi sulla mia unicità in questa materia... Non sono l'unico, cercando nella cartella MQL5 ho trovato tali dichiarazioni con modificatore statico a livello globale in diversi codici sorgente di consegna MT5
Anche nell'articolo "FORESTA DECISIONE CASUALE NEL SOMMARIO" nel codice sorgente ho trovato una dichiarazione a livello globale: static datetime last_time=0;
così ho scritto come vedo in forma di allocare e sarà, io non 100% delle variabili a livello globale che descrive come statico
Dio protegge i bisognosi, disse la suora... ))))