Tutte le domande dei nuovi arrivati su MQL4 e MQL5, aiuto e discussione su algoritmi e codici - pagina 209
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
Il problema è in questa linea
Dato che voglio controllare diverse valute su una barra, dovrei controllare l'ora e la valuta per evitare di ripetere un allarme su una barra e un simbolo, ma permettere un allarme sulla stessa barra con un simbolo diverso. A prima vista, abbiamo bisogno di un altro array con i flag se il simbolo è visto o no.
In generale, dobbiamo aggiungere un controllo dei simboli a questa linea, o ripetere il ciclo solo quando appare una nuova barra. Ma ho paura che quando una nuova barra appare sul simbolo con questo indicatore, una nuova barra non è ancora apparsa su un altro simbolo.
La conclusione: dobbiamo sforzare i nostri muscoli della testa per determinare se una nuova barra appare su ogni simbolo separatamente, ma allo stesso tempo per non allungare il numero di linee all'infinito. Non ho una soluzione pronta. E non mi piace suggerirlo scrivendo codice...
E non ho risolto il suo problema?
Forse mi sono perso qualcosa da qualche parte - ho scritto il codice sul mio ginocchio.
E non ho risolto il suo problema?
Forse mi sono perso qualcosa da qualche parte - ho scritto il codice sul mio ginocchio.
Artem, l'ultima frase del mio post spiega tutto. Non ha nemmeno guardato il suo codice. Aperto il primo non letto, domanda con una citazione della mia risposta precedente, ho risposto e poi visto altri consigli. Non dubito della correttezza del tuo codice, anche dal mio ginocchio...
Artyom, l'ultima frase del mio post spiega tutto. Non ha nemmeno guardato il suo codice. Aperto il primo non letto, domanda con una citazione della mia risposta precedente, ho risposto e poi visto altri consigli. Non dubito della correttezza del tuo codice, anche dal mio ginocchio...
Avrei detto pigro ;)
Anche a prima vista si può vedere che il codice dipende dai tick sul simbolo corrente. E quindi dobbiamo rimuovere il ciclo da OnTick() e spingerlo in un timer. E modificare leggermente la definizione di avvisi di tempo.
Ciao a tutti, c'è un malinteso del processo, nella funzione "start" nel ciclo mm++; e seguire i cambiamenti in esso attraverso Print(); quindi la domanda: "Perché invece di 1,2,3,4, ecc. appaiono numeri a quattro cifre? "
il codice stesso
Ciao a tutti, c'è un malinteso del processo, nella funzione "start" nel ciclo mm++; e seguire i cambiamenti in esso attraverso Print(); quindi la domanda: "Perché invece di 1,2,3,4, ecc. appaiono numeri a quattro cifre? "
il codice stesso
Alla prima esecuzione, 10 secondiIndicatorCounted()=0
quindilimite= max barre nella storia-1
Alla prima esecuzione, per 10 secondiIndicatorCounted()=0
significalimite= max barre nella storia-1
ancora non chiaro, dichiarazione e inizializzazione con zero fuori dal ciclo int mm=0; e posto nel ciclo mm++; print() mostra numeri a quattro cifre che cambiano con una differenza di una unità, solo in direzione discendente per qualche motivo
Alexey Viktorov:
...devi sforzare i muscoli della testa...
Grazie a tutti quelli che hanno risposto.
Artyom Trishkin: Così:
Limitare il controllo su una nuova barra non funzionerà perché ci saranno anche condizioni che devono essere controllate ad ogni spunta.
Ho provato ad aggiungere OnTimer() al tuo codice. Ha funzionato in EA quando OnTick() ma come farlo con OnCalculate?
Potete dirmi perché gli ordini non si aprono?
Grazie a tutti quelli che hanno risposto.
Artyom, perché scrivi che non l'hai risolto? Sta segnalando su tutti gli strumenti, ma sta caricando pesantemente il sistema. C'è un modo per ridurre il carico?
Il limite di controllo su una nuova barra non va bene perché ci saranno anche condizioni che dovranno essere controllate ad ogni tick.
Nel tuo codice, ho provato ad aggiungere OnTimer(), ha funzionato in EA quando OnTick() ma come fare con OnCalculate?
Prova con un timer per 200 millisecondi.