Mt4 Fine del supporto. - pagina 19

 
Alexey Viktorov:

Un consiglio da un autodidatta:

Per facilitare la transizione a mql5, è auspicabile non utilizzare le variabili periodo int di mql4, ma l'enum ENUM_TIMEFRAMES

Risolverò il problema a modo mio. La cosa principale è che la funzione deve funzionare bene e non rallentare il programma ed essere usata su entrambi i terminali. Il resto dipende da me.
 
Dmitry Fedoseev:

Perché?


Perché quando si implementa una cosa del genere attraverso altri linguaggi, ho difficoltà a capire come entrare nel terminale. Può aprire di tutto e di più, e se è implementato tramite µl, allora potete anche metterci dei bot tramite pulsanti.

E puoi anche mettere un database, poi qualche altro software, e portare tutta la tua roba in giro in una sola icona
 
Alexander Puzanov:

Sono felice di credere che i vostri problemi non possono essere risolti senza di loro. Bisogna entrare nei dettagli per non crederci :)


Spin

Ora su un tick dobbiamo determinare la nuova barra su H1, M5 e D1. Cioè, la prima ora e 5 minuti l'Expert Advisor dorme e solo all'1:05 di un nuovo giorno deve svegliarsi e fare qualcosa.

Saranno 3 variabili globali? E se avessimo bisogno di fare la stessa cosa in 2-3-7 Expert Advisors? Quante altre varietà di nomi di variabili globali dovremmo creare?

 
Реter Konow:
Risolverò il compito a modo mio. La cosa principale - la funzione deve funzionare bene e non rallentare il programma ed essere usata su entrambi i terminali. Il resto dipende da me.

La vostra procrastinazione nel fornire una soluzione è una risposta eloquente. Perché con l'OOP il problema viene risolto in modo semplice e standard senza alcun pensiero.

 
Реter Konow:
Risolverò il problema a modo mio. La cosa principale è che la funzione dovrebbe funzionare bene e non rallentare il programma ed essere usata su entrambi i terminali. Lascia il resto alla mia discrezione.
Nessuno sta imponendo nulla. Era solo un'opinione.
 
Dmitry Fedoseev:

La vostra procrastinazione nel fornire una soluzione è una risposta eloquente. Perché con l'OOP il problema viene risolto in modo semplice e standard senza alcun pensiero.

Non sono impegnato nel trading, quindi questo compito non è standard per me. Non disturbare.
 
Alexander Puzanov:

Sono felice di credere che i vostri problemi non possono essere risolti senza di loro. Bisogna entrare nei dettagli per crederci :)

Ho sentito molte persone lamentarsi che "lavorare con gli indicatori su MT5 è molto più complicato che su MT4".

Bene, l'approccio OOP permette di unificare questo lavoro in modo che l'Expert Advisor non sia interessato alla piattaforma su cui viene eseguito.

L'ho organizzato in questo modo.

Se abbiamo bisogno di un indicatore (ad esempio, il MA) - l'Expert Advisor deve dichiarare l'oggetto CMA_IParams:public CIndicatorParamsI, in cui memorizza tutti i parametri del MA di cui abbiamo bisogno. Poi passate un puntatore a questa struttura al fornitore di dati, nella funzione GetIndicator(). Questa funzione restituisce il puntatore all'interfaccia virtuale CIndicator. Questo è tutto. Questa interfaccia ha tutti i dati necessari sull'indicatore chiamato.

Se avete bisogno di qualsiasi altro indicatore, viene dichiarato l'oggetto derivato dell'interfaccia CIndicatorParamsI, tutti i parametri dell'indicatore vengono scritti in esso e viene passato al fornitore di dati, invece viene restituito il puntatore all'indicatore creato.

Quando un nuovo indicatore è richiesto - il suo codice portatile è scritto nel fornitore di dati, poi di nuovo - qualsiasi utente può richiedere un nuovo indicatore dal fornitore di dati, passando i suoi parametri al fornitore di dati.

Di conseguenza - diciamo, se un Expert Advisor lavora "per tornare alla media" - diventa molto facile cambiare proprio questa media, per esempio, prendere la metà del Canale dei prezzi invece del MA - semplicemente cambiando l'oggetto parametro.

Mi chiedo come sia organizzato per i fan dell'approccio procedurale?

 
George Merts:

La gente spesso si lamenta che "lavorare con gli indicatori su MT5 è molto più complicato che su MT4".

Quindi, l'approccio OOP permette di unificare questo lavoro, in modo che l'Expert Advisor, di nuovo, non è nemmeno interessato a quale piattaforma è in esecuzione.

L'ho organizzato in questo modo.

Se abbiamo bisogno di un indicatore (ad esempio, il MA) - l'Expert Advisor deve dichiarare l'oggetto CMA_IParams:public CIndicatorParamsI, in cui memorizza tutti i parametri del MA di cui abbiamo bisogno. Poi il puntatore a questa struttura dovrebbe essere passato al fornitore di dati nella funzione GetIndicator(). Questa funzione restituisce il puntatore all'interfaccia virtuale CIndicator. Questa interfaccia contiene tutti i dati necessari sull'indicatore chiamato.

Se avete bisogno di qualsiasi altro indicatore, si dichiara l'oggetto derivato dell'interfaccia CIndicatorParamsI, si scrivono tutti i parametri dell'indicatore in esso e lo si passa al fornitore di dati, il puntatore all'indicatore creato viene invece restituito.

Quando un nuovo indicatore è richiesto - il suo codice portatile è scritto nel fornitore di dati, poi di nuovo - qualsiasi utente può richiedere un nuovo indicatore dal fornitore di dati, passando i suoi parametri al fornitore di dati.

Di conseguenza - diciamo, se un Expert Advisor lavora "per tornare alla media" - diventa molto facile cambiare proprio questa media, per esempio, prendere la metà del Canale dei prezzi invece del MA - semplicemente cambiando l'oggetto parametro.

Mi chiedo come sia organizzato per i fan dell'approccio procedurale?

È meglio non iniziare con esso. Questo è ciò che spaventa. Anche io, un sostenitore dell'OOP che lo conosce poco, sono inciampato a causa di questo testo... ...non ha capito nulla. Ecco perché cerco di spiegare la differenza al livello più basso.
 

Mi dispiace, devo andarmene. Gli ordini sono arrivati... Se non vi dispiace, continueremo domani.

 
Alexey Viktorov:

Mi dispiace, devo andarmene. Gli ordini sono arrivati... Se non ti dispiace, continueremo domani.

C'è un ordine per lui di andare a ovest?