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
Quando chiamo la mia funzione, devo passare l'array per riferimento, tramite puntatore o qualcos'altro?
Leggete la sezione sul passaggio di parametri per valore e per riferimento:
Riferimento a MQL5 / Fondamenti del linguaggio / Funzioni / Passaggio di parametri
Leggete la sezione del Manuale di riferimento sul passaggio di parametri per valore e per riferimento:
Riferimento a MQL5 / Fondamenti del linguaggio / Funzioni / Passaggio di parametri
In realtà, sono appena arrivato da lì e gli errori di compilazione che ho menzionato nel mio messaggio precedente sono accaduti dopo aver letto la sezione precedente.
Ora l'ho riletto attentamente - è tutta una questione di cost e dove metterlo.
Grazie, l'ho capito.
InOnCalculate posso facilmente usare elementi di array come high by index. È anche possibile accedere agli elementi dell'indice di questo array in ExtFunc? Quando chiamo la mia funzione, dovrei passare l'array-argomento per riferimento, tramite puntatore o qualcos'altro? Finora sono riuscito a ridurre al minimo i messaggi di errore a: "'alto' - la conversione dei parametri non è consentita" e "'alto' - la variabile costante non può essere passata come riferimento" per quanto riguarda la stessa linea della mia chiamata di funzione con l'argomento array di OnCalculate. È senza speranza o c'è una soluzione?
Finora in OnCalculate ho fatto ricorso alla copia di alto in un altro array:
e poi usare CopyOfHigh in ExtFunc invece di usare direttamente high-array.Dovete solo passare l'array alla vostra funzione per riferimento
Saluti a tutti!
Cosa significa l'avvertimento:
possibile perdita di dati a causa della conversione del tipo expert.mq5
durante la compilazione? Dice questo:
Cosa c'è che non va?
Passate semplicemente l'array alla vostra funzione per riferimento
Non esattamente:
Saluti a tutti!
Cosa significa l'avvertimento:
possibile perdita di dati a causa della conversione del tipo expert.mq5
durante la compilazione? Dice questo:
Cosa c'è che non va?
Cosa significa l'avvertimento:
possibile perdita di dati a causa della conversione del tipo
Il significato di questo messaggio varia a seconda del contesto in cui viene considerato.
Per esempio:
1. "Fai una conversione esplicita del tipo!".
2. "Possibile contrazione dei dati con conversione implicita dei tipi" // Questa è una traduzione letterale.
Questo è comprensibile, poiché il tipo lungo restituito dalla funzione ha una dimensione maggiore e copre una gamma più ampia di valori.
Un'altra opzione che mi viene in mente più spesso ultimamente:
3. "Lo staff di MetaQuotes non capisce quanto sarebbe bello, attraente ed efficace imparare se i messaggi di errore e gli avvertimenti del compilatore mql5 fossero dati nella lingua nativa dell'utente".
... quanto sarebbe bello, attraente ed efficace imparare se i messaggi di errore del compilatore mql5 e gli avvertimenti fossero dati nella lingua nativa dell'utente".
Ho il sospetto che se l'indicatore è attivato tramite iCustom, viene calcolato su ogni tick. E non dipende dalle chiamate ad esso attraverso il CopyBuffer. È corretto?
Se è corretto, allora è possibile disabilitare il calcolo dell'indicatore e abilitarlo solo prima di chiamare il CopyBuffer?
Ho il sospetto che se l'indicatore è attivato tramite iCustom, viene calcolato su ogni tick. E non dipende dalle chiamate ad esso attraverso il CopyBuffer. È corretto?
Dipende dalla logica dell'indicatore personalizzato. In realtà, può ricalcolare i suoi valori una volta al giorno, saltando tutti gli altri tick. Per così dire, secondo la volontà dell'autore.
Se è così, è possibile disabilitare il ricalcolo dell'indicatore e abilitarlo solo prima di chiamare il CopyBuffer?
Fondamentalmente, alcune persone cercano di usare questo approccio mostruoso: creare una copia dell'indicatore tramite iCustom, copiare i dati richiesti, cancellare la copia dell'indicatore. La procedura viene ripetuta secondo necessità.
C'è anche la funzione OnTimer(), non ci ho lavorato io stesso, ma forse puoi adattarla al tuo compito.