Sequenza di esecuzione di Init() e DeInit() - pagina 11

 
Alexey Viktorov:
Non è un peccato sprecare il vostro tempo in questi inutili battibecchi su queste banalità?

In realtà, è ancora più importante essere consapevoli di questa peculiarità.

 
Andrey Dik:

Ho scritto chiaramente - tenete sempre aggiornati i dati da trasferire alla copia, non dovete farlo solo quando entrate, teneteli sempre aggiornati.

Dove questi dati dovrebbero essere aggiornati? Un esempio, per favore. Non credo che si possa fare meglio di un file. Quindi, solo con il file è un problema enorme. O pensate che aggiornare un file ogni secondo sia una pratica eccellente?

Tutti gli altri casi sono inventati a causa di una certa irritabilità.

Quindi, il "disturbo temporaneo sulle schermate blu" è anche colpa di chi sta scrivendo l'indicatore? Questo è esattamente l'esempio che nessuno ha ancora detto come aggirare. E non c'è modo di evitarlo.

Se c'è un problema con l'esecuzione dello stesso indicatore allo stesso tempo, allora create ogni volta oggetti unici con un collegamento al TF e se ci sono già oggetti aggiungete 1 al nome.

Nessuno ha citato un solo caso in cui i problemi sono insormontabili a causa del modo attuale in cui il terminale funziona con gli indicatori. I problemi si verificano a causa del trattamento improprio degli indicatori.

Ho già dato diversi esempi. Ma voi semplicemente li liquidate, o in altre parole, chiudete gli occhi di fronte ai problemi.

In generale, molte persone non sembrano capire che ci sono 3 tipi di programmi per un motivo (il 4° arriverà presto).

Sì, per un motivo. È a causa di una semplice debolezza umana: fermarsi a metà strada. Dopo tutto, ci deve essere 1 tipo di programma in una piattaforma. Né più né meno. L'apparizione del 4° tipo è un approfondimento dell'autosconfitta.
 
Ihor Herasko:


Sì, per un motivo. A causa di un'elementare debolezza umana: fermarsi a metà strada. Ci deve essere 1 tipo di programma in una piattaforma. Né più né meno. L'apparizione del 4° tipo è un approfondimento dell'autosconfitta.

Con questo tipo di atteggiamento verso gli sviluppatori, è strano sentire che ti aspetti che gli sviluppatori risolvano il tuo problema.

E se persino io, un ardente combattente per tutti i tipi di miglioramenti e semplificazioni per la piattaforma non vedo un problema, allora la gente che ama fermarsi a metà strada non vedrà certamente un problema.

 
Alexey Viktorov:
Non è un peccato sprecare il vostro tempo in questi inutili battibecchi su queste banalità?
Hai ragione, lo sono! Ma ti sbagli di grosso.
 
Andrey Dik:

Con questo tipo di atteggiamento verso gli sviluppatori, è strano sentire da te che ti aspetti che gli sviluppatori risolvano il tuo problema.


Ho un atteggiamento normale verso gli sviluppatori di piattaforme )) La debolezza umana è il nostro problema comune, non il problema dei suoi singoli rappresentanti.

Anche se io e te ci siamo davvero allontanati dall'argomento dei tipi di programmi. Dovresti avere un thread separato per questo. Ma non ci vedo molto senso, perché sarà puramente accademico senza nemmeno un accenno di applicazione pratica.

Il significato di ciò di cui sto parlando è la logica abituale dell'esecuzione di un programma. Questa logica era in MT4, e in un buon modo deve essere trasferita in MT5. Infatti, non è uno svantaggio di MT4. In questo caso, è il suo vantaggio rispetto a MT5. Quindi, se volete sviluppare MT5 e dimenticare rapidamente MT4, perché non prendere il meglio da MT4? Ebbene, dobbiamo correggere i difetti e, al massimo, migliorare i vantaggi. Ma per introdurre nuovi inconvenienti...

 
Nikolai Semko:
Quindi è tutto qui?
Ho sperimentato e usato questo codice di ragione (REASON_CHARTCHANGE) al massimo. A cosa serve se tutte le variabili sono impostate di nuovo al loro stato originale e OnDeinit può essere eseguito dopo OnInit del nuovo TF

Motivi per la deinizializzazione

Codici dei motivi di deinizializzazione di Expert Advisor restituiti da UninitializeReason(). Può avere uno dei seguenti valori:

.........

Gliindicatori accettano solo il codice 1 (REASON_REMOVE) e il codice 2 (REASON_RECOMPILE) per ora.

 
Georgij Komarov:

Motivi per la deinizializzazione

Codici dei motivi di deinizializzazione di Expert Advisor restituiti da UninitializeReason(). Può avere uno dei seguenti valori:

.........

Gliindicatori accettano solo il codice 1 (REASON_REMOVE) e il codice 2 (REASON_RECOMPILE) per ora.

Sei sicuro?
 
Georgij Komarov:

Motivi per la deinizializzazione

Codici dei motivi di deinizializzazione di Expert Advisor restituiti da UninitializeReason(). Può avere uno dei seguenti valori:

.........

Gliindicatori accettano solo il codice 1 (REASON_REMOVE) e il codice 2 (REASON_RECOMPILE) per ora.

Questa è un'informazione obsoleta. Dopo numerose richieste, abbiamo iniziato a inviare altri motivi agli indicatori

Ci sono state anche molte discussioni. È strano che nessuno si sia ricordato delle diverse copie degli indicatori

 
Ihor Herasko:


Ho un atteggiamento normale verso gli sviluppatori di piattaforme )) La fragilità umana è il nostro problema comune, non il problema dei suoi rappresentanti individuali.

Anche se io e te ci siamo effettivamente allontanati dal tema dei tipi di programmi. Avremmo dovuto iniziare un ramo separato per questo. Ma non ci vedo molto senso, perché sarà puramente accademico, senza nemmeno un accenno di attuazione pratica.

Ilsignificato di ciò di cui sto parlando è la logica abituale dell'esecuzione di un programma. Tale logica era in MT4, e in un buon modo deve essere trasferita in MT5. Infatti, non è uno svantaggio di MT4. In questo caso, è il suo vantaggio rispetto a MT5. Quindi, se volete sviluppare MT5 e dimenticare rapidamente MT4, perché non prendere il meglio da MT4? Ebbene, dobbiamo correggere i difetti e, al massimo, migliorare i vantaggi. Ma per introdurre nuovi inconvenienti...

Ecco, ci stiamo lamentando...

State chiedendo esattamente ciò che non è disponibile nelle normali applicazioni desktop. Se gli sviluppatori non facessero tutte queste caratteristiche che sono già "out of the box", gli autori di programmi MQL si troverebbero costantemente di fronte a tutti gli incanti dello sviluppo desktop, che si tratti di problemi di sicurezza o della velocità di esecuzione.
 
Nikolai Semko:

Domanda molto discutibile su niente di complicato. Provate davvero a ripetere con l'esempio di un semplice orologio da polso ciò che ho implementato in questo prodotto. Nella ruota da polso si cambia il periodo con il mouse e poi, quando si cambia TF, le modifiche dovrebbero essere salvate. E vedrete che non c'è niente di complicato. E se avete bisogno di passare un array E vedrete quanto è "semplice". Forse lo penserei anch'io, se non l'avessi già attuato.

Qual è il problema di memorizzare il periodo in una variabile principale?

Perché sarebbe necessario trasferire una matrice di dati tra successive esecuzioni dell'indicatore su TF diversi?