Tutte le domande dei nuovi arrivati su MQL4 e MQL5, aiuto e discussione su algoritmi e codici - pagina 885
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
Sì, è quello che voglio dire. Ok, l'abbiamo mancato. La cosa principale è che lui capisca come stanno le cose...
Lui chi? È da lì che ho iniziato.
Forum sul trading, sistemi di trading automatico e test di strategia
Tutte le domande dei principianti su MQL4 e MQL5, aiuto e discussione su algoritmi e codici
Alexey Viktorov, 2019.06.11 09:06
Non potete usare SymbolInfoInteger per ottenere Point()).
E in generale, è necessario ricordare che Point() o _Point solo per il simbolo corrente. Per i simboli diversi da quello su cui lavora l'EA, dovresti usare questa funzione.
La funzione SymbolInfoInteger restituisce non solo valori int, ma anche long, bool ed enumerazioni.
Может вам очень не повезло, но я не люблю колупаться в чужом коде. Тем более править его...
Alexey Viktorov:
Prossima domanda: quanto spesso pensate che il valore dell'indicatore sarà esattamente 50?
Per come ho capito il problema, dovrebbe essere un colore >50 e un altro <50, ma non ho visto ==50 da nessuna parte. Naturalmente, per evitare di perdere nel caso ==50, dovremmo aggiungere >=50 a uno di essi e <=50 a un altro. Può sembrare meglio.
E la seconda domanda: quanto era necessario cambiare l'intera indicizzazione del buffer? Dopo la reindicizzazione, hai sistemato tutto nel tuo codice? Forse sarebbe più facile fare il buffer colore indice 4, e i buffer ausiliari 5 e 6 di conseguenza. Avresti meno da modificare e meno possibilità di fare qualche errore in più.
Penso che vi siate scervellati quando avete cambiato l'indicizzazione del buffer.
Tornate indietro e prendete il vecchio codice del messaggio 8806 e cambiate solo la sequenza del buffer.
Poi tracciare le condizioni quando è necessario mettere 0 e quando è necessario mettere 1Non devi averci pensato troppo quando hai cambiato l'indicizzazione del buffer.
Tornate indietro e prendete il vecchio codice dal post 8806 e cambiate solo la sequenza del buffer.
Poi tracciare le condizioni quando mettere 0 nel buffer di colore e quando mettere 1L'ho fatto, non è servito, ho ammesso che stavo facendo degli errori, dopo il tuo post l'ho fatto di nuovo. Ecco i punti del codice che ho cambiato. Quello vecchio non è commentato.
Questo è come era prima che facessi le modifiche. L'istogramma c'è, il colore giusto no.
Questo è il modo in cui è ora. L'istogramma è sparito, non viene visualizzato.
Mi sa che non ho più la mente lucida.
L'ho fatto, non ha funzionato, ho fatto degli errori, dopo il tuo post l'ho rifatto. Ecco i punti del codice che ho cambiato. Quello vecchio non è commentato.
Questo è come era prima che facessi le modifiche. L'istogramma c'è, il colore giusto no.
Questo è il modo in cui è ora. L'istogramma è sparito, non viene visualizzato.
Devo essermi scervellato di nuovo.
Non c'è alcuna logica qui. La sequenza dovrebbe essere la seguente: si determina il valore dell'istogramma e si riempie l'i-esimo indice del buffer dell'indicatore. Poi un controllo separato, se questo valore >=50 il buffer dei colori è riempito con 0, altrimenti 1. Questo è determinato dalla sequenza dei colori nella direttiva
Se 0, viene preso il colore clrGreen e se 1, clrRed
E questa linea è completamente inutile, e la sequenza è l'opposto della prima.
E questo
int cl;
aggiunto per quale scopo? È più facile da riempire direttamente.
Per riempire il buffer dei colori, userei questo costrutto
L'operatore ?: è equivalente a if else, ma più facile da usareLa logica qui è rotta in generale. La sequenza dovrebbe essere la seguente: definire il valore dell'istogramma, riempire l'i-esimo indice del buffer dell'indicatore. Poi un controllo separato, se questo valore >=50 il buffer dei colori è riempito con 0, altrimenti 1. Questo è determinato dalla sequenza di colori nella direttiva
Se 0, viene preso il colore clrGreen e se 1, clrRed
E questa linea non è assolutamente necessaria, e la sequenza è l'opposto della prima.
E questo
aggiunto per quale scopo? È più facile da riempire direttamente.
Per riempire il buffer dei colori, userei questo costrutto
L'operatore ?: è equivalente a if else ma più facile da usareWURRAA, e la mia anima ha cantato. Alexey, grazie mille !!!!!
Ha funzionato tutto, non capisco come sia possibile fare a meno dell'array
perché la sua descrizione è stata cancellata. Quindi si può fare a meno dell'array extra qui?
Il mio Squeaky è proprio un miracolo, lo porta ovunque e dappertutto.
p.s non ho ancora imparato come allegare correttamente l'immagine, scusatemi, posterò degli screenshot.
Per riempire il buffer di colore userei questa costruzione
L'operatore ?: è equivalente a if else, ma più facile da usareOttimi consigli e una grande scienza per il futuro!!! È andato anche un po' oltre. Qui sotto c'è il risultato.
Così è stato:
Così è diventato, l'efficacia dell'approccio è evidente!!! Grazie.
Ottimi consigli e una grande scienza per il futuro!!! È andato anche un po' oltre. Qui sotto c'è il risultato.
Così è stato:
Così è diventato, l'efficacia dell'approccio è evidente!!! Grazie.
Nessuna efficienza qui - tre condizioni if-else invece di una. Qui, è peggio così com'è...
Non c'è efficienza qui: ci sono tre condizioni if-else invece di una. Qui è peggio...
Sì, infatti, non l'avevo notato. Ha un aspetto migliore, ci sono meno lettere.
E non c'è modo di mettere tre esecuzioni (non so come dirlo correttamente) sotto un operatore?: contemporaneamente?