Discussione sull’articolo "Manuale MQL5: Controlli della finestra secondaria dell'indicatore - Pulsanti" - pagina 4
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
E il fatto che "le funzioni dei pulsanti sono inserite nella funzione OnInit" è molto divertente!
Tuttavia, forse non avete capito di cosa stiamo parlando? Se si preme un pulsante, dovrebbe essere attivata una funzione utente per eseguire qualche microcompito.
Va bene, facciamoci una risata. L'articolo è stato scritto da voi, "nessuno vi ha tirato la lingua".
Quindi, la spiegazione sotto forma di citazioni dell'inspiegabile è quantomeno irrispettosa nei confronti dei vostri lettori. Alle domande bisogna rispondere con esempi e link a fonti primarie.
Un codice confuso e sovraccarico di funzioni inutili non fa altro che fuorviare i "principianti".
E il fatto che "le funzioni dei pulsanti siano collocate nella funzione OnInit" è molto divertente!
Nessuno ti ha tirato per la lingua. Hai intenzione di darmi delle prove? O meglio, una confutazione della mia affermazione? Per tua informazione, non tutto è ancora descritto nel manuale. Voglio dire che il lavoro sul manuale è in corso, si stanno facendo aggiunte e correzioni. Si dovrebbe sempre controllare tutto da soli.
Credimi, il codice del tuo articolo è molto più "confuso" per i principianti e non solo, come si può vedere nella discussione del tuo articolo.
Tuttavia, forse non avete capito di cosa stiamo parlando? Se si fa clic su un pulsante, dovrebbe essere attivata una funzione utente per eseguire un microcompito.
Sì, l'ho preso alla lettera. Ponete le vostre domande in modo più preciso. Ma prevedo che la mia risposta sarà ridicolizzata da voi, visto che oggi sembrate avere una funzione di questo tipo.
In questo caso il "microcompito" era quello di cambiare il colore del pulsante. Non ho volutamente aggiunto alcuna funzione extra per non avere nulla di superfluo. Solo per evitare di sovraccaricare il codice.
In realtà, l'argomento dell'articolo non si limita solo ai pulsanti. La maggior parte riguarda gli eventi dei grafici. Ci sono pochi esempi di questo tipo, quindi ho deciso di scriverne uno.
Caro autore dell'articolo, non l'hai scritto per me, ma per i principianti. In effetti, non sono interessato alle sue soluzioni, ma stiamo parlando di coloro che stanno iniziando a conoscere il linguaggio. Di quali "altri programmi" stiamo parlando? E come può la funzione OnDeinit di un programma influenzare le funzioni di altri programmi?
Stiamo discutendo di un articolo e perché ti indigni tanto?
Cercate di rispondere alle domande non per me, ma per i principianti, in modo che capiscano perché e come.
Caro autore dell'articolo, non l'hai scritto per me, ma per i principianti.
Esattamente così.
Infatti, non mi interessano le sue soluzioni, ma stiamo parlando di coloro che stanno iniziando a conoscere la lingua.
Ma lei pone delle domande.
Di quali "altri programmi" stiamo parlando?
Proprio quelli di cui hai dato i link prima. E cerchi di confutare la mia affermazione con allusioni senza fornire una prova.
E come può la funzione OnDeinit di un programma influenzare le funzioni di altri programmi?
Lo fa. L'ho scritto. L'editore che ha pubblicato l'articolo lo ha confermato. Potete anche controllare e verificare voi stessi.
Stiamo discutendo dell'articolo e cosa ti dà tanto fastidio?
Niente. Sto aspettando una smentita alla mia affermazione. )
Cerchi di rispondere alle domande non per me, ma per i nuovi arrivati, in modo che capiscano perché e come.
Finora non ci sono state domande da parte dei nuovi arrivati. E non ci possono essere domande. Tutto è molto chiaro e ogni riga di codice è commentata in dettaglio.
Prima abbiamo inceppato questo:
Cioè ora non tracciamo gli eventi del mouse, giusto?
Eseguire il codice sul grafico:
ora eseguiamo "un altro programma", che sia di nuovo il vostro codice:
Immagino che qualcosa sia andato storto o è questo che dovremmo fare?
ora cancelliamo uno degli indicatori e secondo l'autore del codice abbiamo perso il "tracciamento del mouse", ma non è così:
Se tu non sei qualificato, allora non so chi lo sia? Danald Knuth? Bill Gates?
Stavo solo cercando di ottenere un complimento. Ha funzionato).
Capisco. Ma ciò che non è chiaro è che i prodotti di punta del mercato creati da voi non vi appartengono. Non è un peccato?
1. Non è ancora sera)
2. Anche il mio artigianato è costantemente in testa, anche se non è in alcun modo paragonabile al pannello.
3. Il successo del pannello è in gran parte dovuto agli sforzi dell'autore dell'idea, quindi non è corretto dire che è un mio prodotto.
4. Non ho lavorato gratuitamente)
...
Ora cancelliamo uno degli indicatori e, secondo l'autore del codice, abbiamo perso il "tracciamento del mouse", ma questo non accade:
Verificate ora se l'evento OnDeinit() viene attivato negli indicatori. Questo è il punto interessante che ho menzionato prima. :) In particolare in OnDeinit(), nell'esempio dell'articolo, l'evento di tracciamento del movimento è disabilitato. Da qualche build sembra che OnDeinit() abbia smesso di funzionare negli indicatori. Si tratta di un bug e dovremmo informare gli sviluppatori.
Inoltre, per essere sicuri che la mia affermazione sia corretta, dobbiamo creare un Expert Advisor vuoto (la funzione OnDeinit() funziona negli Expert Advisor), in cui è sufficiente aggiungere questa riga di codice (evidenziata):
//---
Ora, se si rimuove l'Expert Advisor quando l'indicatore dell'articolo è sul grafico, il tracciamento dell'evento di movimento sarà disabilitato anche nell'indicatore.
A proposito di questo:
qualcosa deve essere andato storto o è così che è stato progettato?
È noto. Non è stato progettato in questo modo, ma non è stato preso in considerazione in questo articolo. L'articolo, come sempre, è un semplice esempio, non una soluzione pronta per tutti i casi. )
In generale, questo codice sembra essere molto problematico. Non c'è alcun motivo per disattivare il tracciamento del movimento del mouse quando si disattiva l'Expert Advisor/indicatore. Se ci si vuole preoccupare così tanto, si dovrebbe ripristinare lo stato esistente prima dell'avvio dell'Expert Advisor:
In generale, questo codice sembra essere piuttosto problematico. Non c'è alcun motivo reale per disattivare il tracciamento del movimento del mouse quando si disabilita l'Expert Advisor/indicatore.
No, vi sbagliate. Ci sono ragioni reali per disabilitare il tracciamento del mouse. E lo dimostrerò ora. )
Ad esempio, si hanno due programmi in esecuzione su un grafico. L'Expert Advisor, in cui è necessario tracciare l'evento del movimento del mouse. E un indicatore in cui non è necessario tracciare l'evento del movimento del mouse, ma è necessario tracciare altri eventi del grafico.
Eseguite ora il codice dell'Expert Advisor:
In esso, durante l'inizializzazione, nella funzione OnInit(), il tracciamento dell'evento del movimento del mouse è abilitato. Ma la riga della funzione OnDeinit(), dove questo tracciamento dovrebbe essere disabilitato, è intenzionalmente commentata.
Caricare anche l'indicatore sul grafico. Ecco il suo codice:
Sia il primo che il secondo programma emettono un messaggio nel log che segnala la ricezione dell'evento. Ora rimuovete l'Expert Advisor dal grafico. Supponiamo di aver effettuato alcuni calcoli con il suo aiuto e di non averne più bisogno. Dopo la sua rimozione, poiché l'evento di tracciamento del movimento del mouse non è stato disabilitato, l'indicatore continua a ricevere questo evento. E non ne avete bisogno.
Siete d'accordo? )