Cosa dicono i professionisti: come ottenere i valori di scorrimento del mouse in MQL? [repost dal quinto forum]. - pagina 7
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
Cosa lo aiuterà? Il suo elogio? Non hai mostrato una soluzione. Ti sei mostrato. Il che è molto, molto prevedibile.
È questo che è?
Avete la tendenza sbagliata. Prima mi gridate delle cose (tipo "il tuo codice fa schifo", "necroposito"), e poi chiedete e discutete la soluzione del problema. Quindi, pensate per voi stessi.
O aspettare che io aiuti quelli che lo meritano.
Cosa lo aiuterà? Il suo elogio? Non hai mostrato una soluzione. Ti sei mostrato. Il che è molto, molto prevedibile.
Lei è notevolmente disattento.
Guarda, in fondo al post a cui ho risposto, l'uomo chiede "indicazioni". Non sta chiedendo una soluzione. Così ho cercato di spingerlo. Ora vede quanto è inappropriata e ridicola la sua interferenza? Non comporta altro che inutile spazzatura. Fareste meglio a comunicare nel merito. Faresti più bene a te stesso e agli altri.
Avete la tendenza sbagliata. Prima mi gridate delle cose (tipo "il tuo codice fa schifo", "necroposito"), e poi chiedete e discutete la soluzione del problema. Quindi, pensate per voi stessi.
O aspettare che io aiuti chi lo merita.
Non stavo chiedendo, stavo affermando un fatto.
Non stavo chiedendo, stavo affermando un fatto.
Qui, molte persone non vedono il contenuto dietro il modulo. Non riescono a capire che se non c'è un'idea e nessuna capacità di realizzarla, la loro insistenza sulla forma non produrrà un contenuto di qualità.
L'essenza può avere molte forme delle sue incarnazioni e solo una persona incompetente può giudicarla dal linguaggio della sua espressione.
Non stavo chiedendo, stavo affermando un fatto.
Anch'io dichiarerò un fatto.
i vostri "prodotti" sono uno sforzo senza talento e ridicolo.
Questa è la cosa più spazzatura che ho visto da molto tempo!
Non prendere a cuore le critiche sincere. :)
Un po' di riflessione e tutti troveranno una soluzione. Ti ho dato un suggerimento su dove cercarlo. In quale direzione indagare. Non è interessante avere tutto su un piatto d'argento. )) Se avete bisogno, posso aiutare l'uomo e condurlo a una soluzione. Ma sembra che tu voglia solo discutere con me).
Ciao, Peter!
Non volete dirmi che avete una soluzione pratica, come far scorrere la ruota del mouse per mezzo di MQL? E non con le frecce della tastiera o i pulsanti del mouse - non è così difficile da capire. Naturalmente, possiamo usare l'evento CHARTEVENT_CHART_CHANGE per determinare se il grafico sta scorrendo con la rotella, se non vengono premuti tasti, ma solo probabilisticamente, perché questo evento può verificarsi solo con l'arrivo di una nuova barra o un brusco cambiamento di prezzo, che porta a un cambiamento di scala verticale. Inoltre, con questo metodo è impossibile ottenere sempre l'evento di scorrimento della ruota, per esempio quando il grafico ha raggiunto la posizione estrema a sinistra o a destra, e come ottenere questo senza scorrere il grafico. Forse intendi usare la funzione ChartNavigate per spostare indietro il grafico, ma sarebbe un'implementazione molto storta ed è improbabile che filtri correttamente tutte le altre ragioni per i cambiamenti del grafico, oltre allo scorrimento della rotella del mouse. Nella mia mente, può essere fatto solo hackerando MT o conoscendo alcuni comandi e/o eventi non documentati. Comunque, non credo che tu abbia un esempio di tale implementazione.
Però hai una strana allusione. Quasi alla domanda "Come ottenere l'evento di scorrimento tramite la rotella del mouse?", si dà la risposta"Usa l'evento di scorrimento e una funzione che sposta il grafico".
Forse mi sbaglio e tu hai davvero un esempio. Allora sei un tipo in gamba! )) Beh, almeno lascia cadere il file ex4 (ex5), non il codice.
Ciao Peter!
Non volete dire che avete una soluzione pratica di come scorrere con la rotella del mouse in MQL? E non con le frecce della tastiera o i pulsanti del mouse - non è così difficile da capire. Naturalmente, possiamo usare l'evento CHARTEVENT_CHART_CHANGE per determinare se il grafico sta scorrendo con la rotella, se non vengono premuti tasti, ma solo probabilisticamente, perché questo evento può verificarsi solo con l'arrivo di una nuova barra o un brusco cambiamento di prezzo, che porta a un cambiamento di scala verticale. Inoltre, con questo metodo non è possibile ottenere sempre gli eventi di scorrimento della ruota, per esempio quando il grafico ha raggiunto l'estrema sinistra o destra, e come ottenere questo senza scorrere il grafico. Forse intendi usare la funzione ChartNavigate per spostare indietro il grafico, ma questa sarebbe un'implementazione molto storta e difficilmente potrebbe filtrare correttamente tutte le altre ragioni dei cambiamenti del grafico, oltre allo scorrimento della rotella del mouse. Secondo me, può essere fatto solo hackerando MT o conoscendo alcuni comandi e (o) eventi non documentati. Comunque, non credo che tu abbia un esempio di tale implementazione.
Però hai una strana allusione. Quasi alla domanda "Come ottenere l'evento di scorrimento tramite la rotella del mouse?", si dà la risposta"Usa l'evento di scorrimento e una funzione che sposta il grafico".
Forse mi sbaglio e tu hai davvero un esempio. Allora sei un tipo in gamba! )) Bene, allora almeno lascia cadere il file ex4 (ex5), non il codice.
Ciao Nikolay!
Che ci crediate o no, la soluzione è molto semplice. Ci vogliono 15-20 righe di codice. C'è un punto sottile, però - le specifiche di implementazione del meccanismo di scorrimento. La mia implementazione differisce un po' da quella standard. Scorre la tela, non gli oggetti. C'è un'implementazione simile nella libreria di Anatoly.
Scorro con la rotella di scorrimento e "aggrappandomi" al movimento del grafico ottengo un effetto energizzante. Naturalmente, il grafico si contrae ma torna sempre alla sua posizione iniziale. È a questo che serve la funzione di spostamento del grafico. La direzione di spostamento del grafico si ottiene anche dalla funzione mql. Così, non devo hackerare nulla). MQ ha cercato di dare la più ampia funzionalità possibile per implementare quasi ogni compito. Questo è addirittura sorprendente. Forse loro stessi non conoscevano tutte le caratteristiche che aprono agli sviluppatori).
Comunque, non credo che tu abbia un esempio di tale implementazione.
Però hai una strana allusione. In pratica alla domanda "Come ottenere l'evento di scorrimento tramite la rotella del mouse?", si dà la risposta "Usa l'evento di scorrimento e la funzione che sposta il grafico".
Forse mi sbaglio e tu hai davvero un esempio. Allora sei un tipo in gamba! )) Beh, almeno lascia cadere il file ex4 (ex5), non il codice.
Ecco la situazione. La persona a cui ho risposto mi ha chiesto di dargli un'idea su come implementare un meccanismo di scorrimento con una ruota. Gli ho dato un suggerimento. Immediatamente i maligni locali si sono scatenati e hanno iniziato ad accusarmi di vantarmi e di altre sciocchezze.
Dal loro punto di vista, se do una soluzione, allora sto pubblicizzando i miei prodotti, o solo vantandomi, e se non lo faccio, allora sto barando e non ho niente.
Posso darvi il codice, ma in primo luogo, sarà staccato dall'implementazione del meccanismo di scorrimento, e in secondo luogo, sarà in russo. Ma forse puoi adattarlo al tuo meccanismo di scorrimento. Non posso mettere eh4, perché non posso "strappare" un singolo meccanismo dall'ambiente grafico in cui opera.
L'opzione migliore, sarebbe quella di darvi la soluzione in termini generali, ma non con lo scopo di dimostrare qualcosa, ma sulla base dell'amicizia.
E così:
L'evento CHARTEVENT_CHART_CHANGE viene generato, tra l'altro, sull'evento di movimento della rotella del mouse se il cursore è sopra il grafico. L'opzione offset del grafico deve essere abilitata. Così, dall'offset del grafico, possiamo sapere esattamente quando facciamo girare la ruota. Possiamo generare un evento personalizzato. Per esempio "SCROLLER_EVENT".
Successivamente, il nostro compito è quello di determinare la direzione dell'offset. Usiamo ChartGetInteger(0,CHART_FIRST_VISIBLE_BAR); ad ogni evento "SCROLLER_EVENT" otteniamo il numero della prima barra visibile e determiniamo se è più o meno del numero della barra precedente che abbiamo registrato. Se è di più, allora si muove in una direzione; se è di meno, allora si muove nella direzione opposta. Allo stesso tempo, anche il nostro grafico scorrerà e potrà raggiungere la fine. Per evitare questo, correggiamo la sua posizione usando la funzione ChartNavigate e impostiamo il grafico nella sua posizione iniziale. Questa chiamata genera anche l'evento CHARTEVENT_CHART_CHANGE e disabiliterà il nostro scorrimento. Quindi, al momento della correzione della posizione del grafico dobbiamo saltare l'evento CHARTEVENT_CHART_CHANGE e non reagire ad esso. Questo richiede l'uso di un sistema di bandiere.
Questo è il mio codice:
Aggiunto:
Per quanto riguarda altre cause di spostamenti di carte, naturalmente, possono introdurre errori nel nostro sistema. Tuttavia, questi errori sono così insignificanti che non dovremmo prestarvi molta attenzione. Quindi se la nuova barra sposta la nostra tela di qualche pixel... Non è un grosso problema. E questo solo se il cursore sarà sopra la barra di scorrimento in quel momento.
Naturalmente, l'attuazione è un tentativo di trovare una via d'uscita da una situazione senza speranza. Senza alcuna rotella di scorrimento, questa è la soluzione più semplice e più "nativa". Per una soluzione completa, ho già contattato servicedesk. Che lo sia o meno dipende dagli sviluppatori.