Discussione sull’articolo "Gestione degli Eventi in MQL5: Modifica del periodo MA al volo"

 

Il nuovo articolo Gestione degli Eventi in MQL5: Modifica del periodo MA al volo è stato pubblicato:

Supponiamo che un semplice indicatore MA (Media Mobile) con periodo 13 sia applicato a un grafico. E vogliamo cambiare il punto in 20, ma non vogliamo andare alla finestra di dialogo delle proprietà dell'indicatore e modificare il numero da 13 a 20: semplicemente stanchi di queste noiose azioni con mouse e tastiera. E soprattutto non vogliamo aprire il codice dell'indicatore e modificarlo. Vogliamo fare tutto questo premendo un pulsante - "frecce su" accanto al tastierino numerico. In questo articolo descriverò come farlo.

Cosa c'è di meglio: un file indicatore o un tandem "indicatore + advisor"?

In realtà, questa domanda non è così semplice. Da un lato, è bene avere un file indicatore, perché tutte le funzioni, inclusi i gestori di eventi, sono concentrate in un unico posto.

D'altra parte, immaginiamo che ci siano 3 o 4 indicatori applicati al grafico insieme a un Expert Advisor: questa situazione non è rara. Inoltre, supponiamo che ogni indicatore sia dotato di un proprio gestore di eventi, oltre allo standard OnCalculate(). Per evitare confusione con l'elaborazione degli eventi in questa "crue eterogenea" è più ragionevole concentrare tutti i gestori di eventi, ora consentiti negli indicatori, in un unico posto - nell’Expert Advisor.

Da tempo gli sviluppatori di software decidono di darci la possibilità di elaborare gli eventi nell'indicatore: dalla versione beta non pubblica del 09.09.09 (quando l'indicatore è considerato come "puro calcolo & entità matematica" e non deve essere contaminato da eventuali caratteristiche che ostacolano la velocità di calcolo) sono trascorsi esattamente 5 mesi. Probabilmente, la "purezza dell'idea" deve soffrire - e ora si scatenerà un vero caos di fantasie dei programmatori. Ma l'equilibrio è sempre da qualche parte nel mezzo tra un'idea pura, ma limitata, e una capacità non così pulita, ma più potente.

A settembre-Ottobre 2009, quando il numero di build della versione beta di MT5 non ha nemmeno raggiunto 200, ho scritto e fatto il debug del codice del tandem "Expert Advisor + Indicator", che consentiva di gestire i parametri MA al volo, ma " al grado C": è stato aggiornato solo dopo l'arrivo del tick, ma non immediatamente. A quel tempo questo tandem era l'unica soluzione possibile, ed ora difficilmente interessa a chiunque.

Non potevo quindi pensare a come portare la funzionalità dell'indicatore a "grado B", ovvero come viene presentato nell'ultima versione. Ora sono lieto di fornire una soluzione più conveniente a tutti coloro che potrebbero essere interessanti.


In allegato il mio breve video, che mostra il lavoro della nostra creazione. Il cambiamento graduale della curva MA (solo il periodo sta cambiando - all'inizio aumenta, poi diminuisce) è persino abbagliante in qualche modo. Questa è Matryoshka (simile al famoso set russo di bambole nidificanti).

Autore: Sceptic Philozoff

 

Non credo che il GPT abbia nulla a che fare con questo.

Oltre allo svantaggio menzionato nell'articolo, ce ne sono molti altri. Ad esempio, l'impossibilità (nell'implementazione attuale) di eseguire più copie dell'indicatore (anche su grafici diversi!).

A mio avviso, sarebbe più ragionevole lasciare gli input (per impostare i valori iniziali) e memorizzare i valori utilizzati in semplici GP.


In generale, l'idea, l'implementazione e l'articolo sono "A". Non essere modesto, Alexey;)

 
komposter:

Non credo che il GPT abbia nulla a che fare con questo.

Oltre allo svantaggio menzionato nell'articolo, ce ne sono molti altri. Ad esempio, l'impossibilità (nell'implementazione attuale) di eseguire più copie dell'indicatore (anche su grafici diversi!).

A mio parere, sarebbe più ragionevole lasciare gli input (per impostare i valori iniziali) e memorizzare i valori utilizzati in semplici GP.

Grazie, Andrei.

Sì, non avevo pensato a copie multiple su grafici diversi: è più universale memorizzarle in GP. Ma la riprogettazione è comunque molto semplice. E non dimenticate di fare attenzione al nome breve dell'indicatore in modo che venga visualizzato correttamente.

Ho scelto i GPT in origine proprio perché possono essere facilmente richiamati nel dialogo e visualizzati. Ma non per modificarli! Se proprio volete, potete farlo, ma tenendo conto di quanto scritto nell'articolo.

 

Alexey, hai provato l'indicatore (quello con la "matrioska") su M1-M15? Si blocca su questi intervalli. Si manifesta in modo tale che quando si lancia l'indicatore sul grafico o si cambia il TF, premendo un tasto di scelta rapida o semplicemente cliccando nella finestra del grafico, l'indicatore si sposta a sinistra. Sulle ore e oltre, tale effetto non è visibile.

Vi prego di dare un'occhiata, è molto necessario.

 

Il prezzo mediano non coincide con la MA reale.

In breve, non è finalizzato.

 
costy_: Il prezzo mediano non coincide con la MA reale.

In breve, non è finalizzato.

Dall'articolo:

Se il prezzo richiesto sarà "elementare" (Open, High, Low, Close), abbiamo già la funzione CopyXXXX() corrispondente, ma in caso di prezzi "complessi" (mediani, medi o tipici) dovremo calcolare questo array in un altro modo.

 

Anche se mi piacerebbe vedere la mossa subdola di quella linea MA al mio comando, chiunque conosca il MQL4 sarà dispiaciuto del fatto che nel MQL5 non possiamo chiamare e modificare alcun parametro dell'indicatore al volo.

In MQL5, una volta inizializzato l'handle, l'indicatore è fisso - morto per il suo parametro. Non posso più analizzare il movimento del prezzo con un periodo diverso, perché il periodo dell'indicatore è già fissato.

In MQL4, possiamo chiamare l'indicatore direttamente all'interno di start() e cambiare i suoi parametri a piacimento.

Non c'è da stupirsi che Integer abbia scritto così tante librerie ...OnArray nel codice base.

:(

 
Mathemat:

Dall'articolo:

tornando indietro, chi è interessato al metodo, oninit non può essere chiamato una seconda volta, il buffer di visualizzazione rotola a zero (size == 0).

prezzi corretti, implementati via par-ry

in breve come promemoria.

 
Compila, ma non funziona, dà un errore critico
 
Grazie per aver condiviso un'applicazione che spinge il cervello ad andare sempre più lontano.