Cosa dicono i professionisti: come ottenere i valori di scorrimento del mouse in MQL? [repost dal quinto forum]. - pagina 8

 

Grazie, un po' in ritardo, ma comunque.

 
Ihor Herasko:

Prima di tutto, sarebbe una buona idea decidere in quale forma l'informazione sul verificarsi dell'evento deve essere ricevuta: direttamente o indirettamente?

Supponendo che scrivere la propria DLL non sia un'opzione, perché non eliminare anche l'API? Se il metodo indiretto è adatto:

Dovremmo mettere in loop uno script che controlla l'indice della prima barra visibile in una finestra - WindowFirstVisibleBar (puoi farlo insieme al numero di barre nella finestra - WindowBarsPerChart). Se differiscono dal valore precedente, il grafico è stato controllato. Vero, in questo caso non solo la rotella del mouse potrebbe essere la causa (zoomando nel tempo - "+", "-", cliccando Home o End, salto diretto alla data desiderata).

In ogni caso, non ci sono ancora abbastanza informazioni per sapere cosa è richiesto esattamente dal rilevamento di un evento di rotazione della ruota del mouse. Allora potete suggerire dei metodi.

P.S. E se avete bisogno di accedere alla funzione di gestione delle finestre, è SetWindowLongPtr (vedi msdn). Ma non si può fare a meno della DLL, perché non si può assegnare una nuova procedura di elaborazione dei messaggi, situata nel codice MQL.


Nota, questo post contiene praticamente la soluzione. Era un po' poco cotto per qualche motivo. L'autore ha prima afferrato un'idea semplice e corretta e poi l'ha persa, essendo andato alla ricerca di una soluzione globale insieme al resto. Che peccato...


P.S. Sono stato felice di aiutare).

 
Реter Konow:

Nota, questo post contiene praticamente la soluzione. È un po' sottotono per qualche motivo. L'autore ha prima afferrato un'idea semplice e corretta e poi l'ha persa, andando alla ricerca di una soluzione globale con il resto di noi. Che peccato...


P.S. Sono stato felice di aiutare).


Quelli erano i tempi, lingua vecchia, possibilità limitate... ... quindi ho dovuto fare un po' di giochi di prestigio... L'autore, cioè io, ha risolto con successo questo problema, e poi ha perso interesse )))

 
Реter Konow:

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.

Naturalmente, la realizzazione è un tentativo di trovare una via d'uscita da una situazione senza speranza. Con la completa mancanza di scorrimento con la ruota, è la soluzione più semplice e più "nativa". Per una soluzione completa, ho già contattato servicedesk. Che lo sia o meno dipende dagli sviluppatori.

Ho capito che l'implementazione sarebbe stata con un programma di rimbalzo. Sono d'accordo che la soluzione migliore è cadere ai piedi degli sviluppatori e chiedere loro di aggiungere un evento di scorrimento e di clic della rotella, così come la possibilità di disabilitare temporaneamente lo scorrimento del grafico con la rotella del mouse. Dopo tutto, non è così difficile per loro - solo poche righe di codice. Non capisco perché improvvisamente hanno deciso che nessuno avrà più bisogno della rotella del mouse... Ma se ne abbiamo davvero bisogno, allora la soluzione dal rimbalzo del grafico, come opzione, potrebbe essere quella di disabilitare il grafico stesso ( ChartSetInteger(0,CHART_SHOW,false); ) e creare il suo doppio tramite CCanvas, ma è ovviamente tutto tamburello, camminando verso un vicino attraverso il Polo Nord.

Ma ancora - credito e tu, Peter - fresco e un buon programmatore. L'ho sempre detto, ma ho anche detto che sprecate la vostra creatività per "coltivare pomodori in Turchia", dove nessuno ne ha bisogno, cazzo.

 
Nikolai Semko:

...ma ha anche detto che stai sprecando la tua creatività per "coltivare pomodori in Turchia", dove nessuno li vuole.

Farò il mio punto di vista.

In questo momento la piattaforma MT5 ha molto potenziale. Molte possibilità e biblioteche. Ma allo stesso tempo lo sviluppo dei programmi MQL ha raggiunto un punto morto.

Labarriera a un ulteriore sviluppo è la mancanza di opportunità per far crescere i programmi all'interno della piattaforma.

Gli utenti non possono estendere ulteriormente la funzionalità del loro software senza la possibilità di portare i moduli di controllo ad un'interfaccia grafica.

La mancanza di GUI nei programmi MQL è una barriera globale al loro ulteriore sviluppo. Renat ha detto che il periodo dei programmi "infantili" di una pagina deve finire. Sono completamente d'accordo con lui. Ma come può essere finita se i commercianti non hanno la possibilità fisica di uscire dai "pantaloni corti"?

Elenchiamo le conseguenze della mancanza di GUI nei programmi MQL:

  • Incapacità di combinare più blocchi di programma che potenzierebbero l'utente.
  • Ha ridotto al minimo l'ambito di interazione dell'utente con il suo programma.
  • Mancanza di trading semi-automatico serio in quanto tale. Molti preferirebbero il commercio semi-automatico a quello completamente automatico.
  • L'inconveniente della ricerca di mercato, che non permette ai professionisti di correre a tutta velocità.
  • Nessun mantenimento proprio delle statistiche.
  • Necessità di lavorare con applicazioni di terze parti attraverso stampelle, la cui premessa è la mancanza di un'interfaccia grafica. Dopo tutto, se fosse disponibile, la ricerca può essere effettuata in programmi MQL.

Tutte le informazioni utili di MT5 sono un po' "chiuse" all'interno e non realmente accessibili.

Non appena la GUI apparirà, le stampelle scompariranno e si apriranno delle possibilità in MT5. Ci saranno anche molte nuove caratteristiche.

//-----------------------------------------------------------------------------------------------------------

Il mio assioma: i programmi operativi non possono essere completi se non hanno un'interfaccia grafica come software di interazione con l'utente. Si stacca e si blocca all'interno della macchina ed è sempre scomodo da lavorare. Se è primitivo e semplice per cominciare, allora la GUI non è necessaria, ma in un campo come il trading, il programma dovrebbe essere in costante evoluzione e interagire con l'utente. Senza questo, l'intero ramo dell'algotrading raggiungerà un tetto e non si svilupperà.

 
Реter Konow:

Esporrò il mio punto di vista.

Ora la piattaforma MT5 ha un enorme potenziale. Un sacco di possibilità e biblioteche. Ma allo stesso tempo, lo sviluppo dei programmi MQL ha raggiunto un punto morto.

Labarriera per un ulteriore sviluppo è la mancanza di opportunità per far crescere i programmi all'interno della piattaforma.

Gli utenti non possono estendere ulteriormente la funzionalità del loro software senza essere in grado di mettere moduli per controllarlo in una GUI.

La mancanza di GUI nei programmi MQL è una barriera globale al loro ulteriore sviluppo. Renat ha detto che il periodo dei programmi "infantili" di una pagina deve finire. Sono completamente d'accordo con lui. Ma come può essere finita se i commercianti non hanno la possibilità fisica di uscire dai "pantaloni corti"?

Elenchiamo le conseguenze della mancanza di GUI nei programmi MQL:

  • L'impossibilità di integrare più blocchi di programma che migliorerebbero l'esperienza dell'utente.
  • L'ambito ristretto dell'interazione dell'utente con il suo programma.
  • Assenza di trading semi-automatico serio in quanto tale. Molti preferirebbero il commercio semi-automatico a quello completamente automatico.
  • L'inconveniente della ricerca di mercato, che non permette ai professionisti di correre a tutta velocità.
  • Nessuna statistica interna.
  • Necessità di lavorare con applicazioni di terze parti attraverso stampelle, la cui premessa è la mancanza di un'interfaccia grafica. Dopo tutto, se ce ne fosse uno, la ricerca può essere effettuata in programmi MQL.

Tutto il materiale utile di MT5 è come "chiuso" all'interno e non disponibile.

Non appena la GUI apparirà, le stampelle scompariranno e le possibilità in MT5 saranno aperte. Inoltre appariranno molte nuove caratteristiche.

//-----------------------------------------------------------------------------------------------------------

Il mio assioma: un programma complesso non può essere completo se non ha un'interfaccia grafica come azione per l'utente. Sarà staccato e chiuso all'interno della macchina. È sempre scomodo lavorarci. Se è primitivo e semplice per cominciare, allora la GUI non è necessaria, ma in un campo come il trading, il programma dovrebbe essere in costante evoluzione e interagire con l'utente. Senza questo, l'intero ramo dell'algotrading raggiungerà un tetto e non si svilupperà.


Capisco cosa intendeva Renat, ho creato più di un centinaio di indicatori e decine di robot e alla fine ho capito che non era niente, ma ho fatto un po' di esperienza e comprensione. Ora sto lavorando su un robot da diversi anni, dove l'interfaccia è l'ultima cosa e l'intelligenza artificiale è tutto. Renat non intendeva dire che hai bisogno di un'interfaccia a più pagine. Parlavo del numero di pagine di codice, o piuttosto della quantità di sforzo e di pensiero creativo messo in esso, mentre su Market, la stragrande maggioranza dei prodotti sono gingilli infantili e inutili. Cosa c'entra la GUI? Le GUI possono solo confondere il potenziale acquirente, o tirargli la polvere negli occhi, o spaventarlo con la sua complessità. Tutto quello su cui state lavorando ora - e anche Anatoly, a proposito, perdonatemi - è tutto a la Windows 95. Le persone oggi sono abituate e viziate da un paradigma di interfaccia completamente diverso. Guardate l'interfaccia del vostro telefono Android o iPhone. Semplicità, minimalismo, intuitività. Questo è ciò per cui bisogna lottare.

Peter, prendi Google.com, per esempio, che tipo di interfaccia vedi lì? E questa società è capitalizzata per mezzo trilione di dollari. Al contrario, tendono a minimizzare l'interfaccia, perché la loro interfaccia 15 anni fa era più sofisticata e, credo, tra qualche anno la loro interfaccia sarà ancora più modesta. E sono i principali trendsetter nella moda delle GUI. Tutte le vostre enumerazioni della necessità di GUI sono dichiarative ed esagerate, o meglio la GUI non c'entra niente (beh, potete lasciarla solo per il trading semi-automatico). Guardate l'ultima tecnologia di Google - TensorFlow. Si tratta di una tecnologia di apprendimento automatico, tecnologia AI e riconoscimento di modelli, che sarebbe molto utile per i programmatori di trading automatico da padroneggiare, ma questa tecnologia non ha bisogno di GUI. Davvero - di cosa sto parlando, se per te la tecnologia OOP è uno strumento inutile!

 
Nikolai Semko:

Capisco perfettamente quello che intendeva Renat, dato che io stesso ho creato più di un centinaio di indicatori e decine di robot, ma alla fine mi sono reso conto che era tutto inutile, ma ho acquisito una certa esperienza e comprensione. Ora sto lavorando su un robot da diversi anni, dove l'interfaccia è l'ultima cosa e l'intelligenza artificiale è tutto. Renat non intendeva dire che hai bisogno di un'interfaccia a più pagine. Parlavo del numero di pagine di codice, o piuttosto della quantità di sforzo e di pensiero creativo messo in esso, mentre su Market, la stragrande maggioranza dei prodotti sono gingilli infantili e inutili. Cosa c'entra la GUI? Le GUI possono solo confondere il potenziale acquirente, o tirargli la polvere negli occhi, o spaventarlo con la sua complessità. Tutto quello su cui stai lavorando ora - e anche Anatoly, a proposito, perdonami - è tutto a la Windows 95. Le persone oggi sono abituate e viziate da un paradigma di interfaccia completamente diverso. Guardate l'interfaccia del vostro telefono Android o iPhone. Semplicità, minimalismo, intuitività. Questo è ciò per cui bisogna lottare.

Peter, prendi Google.com, per esempio, che tipo di interfaccia vedi lì? E questa società è capitalizzata per mezzo trilione di dollari. Al contrario, tendono a minimizzare l'interfaccia, perché la loro interfaccia 15 anni fa era più sofisticata e, credo, tra qualche anno la loro interfaccia sarà ancora più modesta. E sono i principali trendsetter nella moda delle GUI. Tutte le vostre enumerazioni della necessità di GUI sono dichiarative ed esagerate, o meglio la GUI non c'entra niente (beh, potete lasciarla solo per il trading semi-automatico). Guardate l'ultima tecnologia di Google - TensorFlow. Si tratta di una tecnologia di apprendimento automatico, tecnologia AI e riconoscimento di modelli, che sarebbe molto utile per i programmatori di trading automatico da padroneggiare, ma questa tecnologia non ha bisogno di GUI. Davvero - di cosa sto parlando, se per te la tecnologia OOP è uno strumento inutile!

Nikolay, non ci capiamo).

OOP è davvero inutile per me personalmente , ma non nego la sua utilità per gli altri. Lasciate che lo usino per la loro salute.

La GUI è una necessità pratica. La GUI aprirà uno spazio per rendere i programmi più complessi. Arricchirà l'ambiente attualmente scarso per la realizzazione di idee creative. Darà ai programmi un volto proprio.

Il MO (machine learning), al contrario, porterà l'algotrading in un vicolo cieco senza speranza. Un gioco automatico di indovinelli privo di qualsiasi comprensione dei processi di mercato. Una scatola nera che ricicla la poltiglia statistica. Amputa il desiderio dei trader di capire il mercato e creare le proprie strategie. La formazione in analisi tecnica e gli articoli su di essa saranno irrilevanti. Verrà il tempo della morte del pensiero del commerciante. La scatola nera la cancellerà.

Nikolai, il nostro ecosistema deve essere un ambiente vario e ricco. Abbiamo bisogno di espanderci. Gli algotrader hanno bisogno di nuove opportunità di software. Voglio solo aprirne un altro a loro).


A proposito, anche tu dovresti finalmente intraprendere un progetto su larga scala e iniziare a realizzare le tue capacità. Sento che tu stesso lo vuoi, ma non c'è modo. È un peccato perché hai un enorme potenziale creativo. Quindi, sto aspettando la dimostrazione dei vostri disegni. Spero di vederli sicuramente).

 

Реter Konow:

...Arricchirà l'ambiente attualmente scarso per la realizzazione di idee creative. Darà ai programmi un volto proprio.

Dovrei chiarire cosa intendo per "ambiente scarso per l'espressione creativa". Ho paura di essere frainteso. MT5 è potenzialmente un ambiente molto ricco di idee creative nel trading algoritmico. Ma il suo potenziale è attualmente utilizzato dai commercianti, penso, dal 20% al 30%.

È lo spazio attuale del campo di utilizzo pratico che ho chiamato "ambiente scarno", non quello potenziale. Forse non l'ho detto con precisione.

C'è un'espressione: "L'esistenza determina la coscienza".

La nostra attuale Genesi è costituita da programmi senza GUI, creati a fronte di elevate barriere intellettuali. Questa Genesi ha definito la nostra coscienza e non vogliamo GUI e trading semi-automatico. Crediamo nel significato dell'adattamento dei parametri alla storia come mezzo per ottimizzare le strategie. Cioè, non stiamo cercando di migliorare la strategia approfondendo la nostra comprensione del mercato, ma adattandoci alla storia. In altre parole: auto-inganno. È così che la nostra coscienza è stata definita per anni. E per qualche ragione nessuno considera l'ottimizzazione come una palese polvere negli occhi. Ma solo grazie ad esso si ottengono i grails dei tester.

Qualsiasi barriera è utile per la ginnastica mentale, ma per la libera creatività ci sono ormai troppe barriere. Alcune entità ci aiutano nella realizzazione di un'idea, altre ci ostacolano. Nota - mi è bastata una frazione delle capacità di un linguaggio di programmazione per costruire la mia "macchina" grafica, con un linguaggio di mark-up. E non si tratta affatto di talento di programmazione, solo della capacità di distinguere le cose per la loro essenza. Se una persona non ha questa capacità, si confonderà irrimediabilmente con varie cose e non realizzerà il suo potenziale. Il prisma con cui si guardano le cose determina l'efficienza del nostro lavoro e la portata della realizzazione pratica del talento.

Voglio solo aiutare gli altri con la mia auto-realizzazione, e portare MT5 a una svolta globale. Come si potrebbe fare altrimenti? In generale, se persone di talento come te, Nikolay o Anatoly mi aiutano, sicuramente smuoveremo le montagne).

 
Реter Konow:

...se persone di talento come te Nikolai o Anatoly mi aiutano, smuoveremo sicuramente le montagne)!

No, mi dispiace, Pyotr, ma le montagne te le sposti da solo. E io stesso sposterò le mie montagne. ))
 
Nikolai Semko:
No, Peter, mi dispiace, ma le montagne te le sposti da solo. E io muoverò le mie montagne. ))

Ho detto"come te", non te). Non avevo intenzione di posare la mia "montagna" su di te).