Servicedesk. Reclami, suggerimenti. - pagina 3

 
Alexey Kozitsyn:

Se non altro perché è indicato nella documentazione e voglio usarlo.

Per scaricare e controllare la storia, simile a MT5: https://www.mql5.com/ru/docs/series/timeseries_access

Ripeto la mia domanda, sapete come ottenere questa data per mezzo del vecchio mql4?

Per me la presenza di una funzione nella documentazione non è una ragione sufficiente per affrontare il service desk e il forum, perdendo tempo e fatica se non ne ho bisogno in linea di principio. E perché sia necessario, secondo me, non siete mai stati in grado di argomentare.

Personalmente non consiglio a nessuno di usare in MT4 le funzioni di API di MT5, perché sono state glitchate in questo modo per molto tempo, fin dalla "modernizzazione" di MQL4. E d'ora in poi non ne raccomanderò l'uso a meno che qualcuno non dimostri la loro assoluta necessità.

 
Ilya Malev:

Per me, la presenza di una funzione nella documentazione non è una ragione sufficiente per trattare con servicedesk e sul forum, perdendo tempo e fatica se non ne ho bisogno in principio. E, secondo me, non siete stati in grado di argomentare il motivo per cui potreste averne bisogno.

Personalmente non consiglio a nessuno di usare in MT4 le funzioni di API di MT5, perché sono state glitchate in questo modo per molto tempo, fin dalla "modernizzazione" di MQL4. E non raccomanderò il loro uso in futuro, a meno che qualcuno non dimostri la loro assoluta necessità.

Non hai ancora risposto alla mia domanda. Ma ho capito che non ti interessa e sei soddisfatto.

Oh, e un altro argomento - la portabilità dei programmi da MT4 a MT5 e ritorno.

 
Alexey Kozitsyn:

Non hai ancora risposto alla mia domanda. Ma ho capito che non ti interessa e ti sta bene.

Oh, e un altro argomento - la portabilità dei programmi da MT4 a MT5 e ritorno.

Se avete una restrizione sul numero di barre nella finestra di MT4, non saprete quante barre ci sono sul server. E non ho incontrato una situazione regolare in cui sarebbe necessario. Certo, si possono inventare un sacco di esotici, ma nel 99,9% dei casi possiamo farne a meno.

Per quanto riguarda la portabilità - si tratta di piattaforme totalmente diverse con una metodologia fondamentalmente diversa di lavorare con dati e ordini. Quindi la loro metodologia di programmazione è completamente diversa. Per la portabilità, c'è la direttiva __MQL4__ e le librerie con compilazione condizionale.

 
Ilya Malev:

Non è possibile sapere quante barre ci sono sul server se avete un limite sul numero di barre nella finestra di MT4. E non ho incontrato una situazione regolare in cui sarebbe necessario. Certo, si possono inventare tutti i tipi di esotici, ma nel 99,9% dei compiti dei commercianti, se ne può fare a meno.

Per quanto riguarda la portabilità - si tratta di piattaforme totalmente diverse con una metodologia fondamentalmente diversa di lavorare con dati e ordini. Quindi la loro metodologia di programmazione è completamente diversa. Per la portabilità, c'è la direttiva __MQL4__ e le librerie con compilazione condizionale.

L'organizzazione dell'accesso ai dati è "esotica"? Ahem. Ok.

Al trader non interessa la lingua, il trader ha bisogno di fare trading e gli Expert Advisors/indicatori/script devono funzionare correttamente. Come funzionano è un problema del programmatore. Ma il programmatore, per scrivere un prodotto di qualità per il commerciante, deve prestare attenzione a piccoli dettagli come l'accesso ai dati.

E se voi non avete incontrato qualcosa, non significa che altri non l'abbiano fatto.

 
Alexey Kozitsyn:

Organizzare l'accesso ai dati è "esotico"? Ahem. Ok.

Ai trader non interessa molto la lingua, il trader ha bisogno di fare trading e gli Expert Advisors/indicatori/script devono funzionare correttamente. Come funzionano è un problema del programmatore. Ma il programmatore, per scrivere un prodotto di qualità per il commerciante, deve prestare attenzione a piccole cose come l'accesso ai dati.

Non avete mai citato un solo compito reale per il quale questa funzione sia necessaria. Solo belle parole come "accesso ai dati" e l'ammissione che avete bisogno di questa funzione solo perché è descritta nella documentazione.

Ci sono abbastanza funzioni in MT4 API per l'accesso ai dati, a mio parere, non c'è assolutamente bisogno di entrare nelle funzioni per MT5. Non c'è bisogno di scoprire il numero di barre sul server in MT4, perché non c'è bisogno di caricare la storia programmaticamente - il terminale stesso lo fa prima di accedere alle funzioni di accesso ai dati di MT4 (iHigh, iLow, MarketInfo, ecc.).

Il che è molto comodo ed è un peccato che sia stato cambiato in MT5, che ha creato un sacco di difficoltà con l'accesso ai dati lì

 
Ilya Malev:

Non avete ancora citato un solo compito reale per il quale questa funzione sia necessaria. Solo belle parole come "accesso ai dati" e l'ammissione che avete bisogno di questa funzione solo perché è descritta nella documentazione.

Ci sono abbastanza funzioni in MT4 API per l'accesso ai dati, a mio parere, non c'è assolutamente bisogno di entrare nelle funzioni per MT5. Non c'è bisogno di scoprire il numero di barre sul server in MT4, perché non c'è bisogno di caricare la storia programmaticamente - il terminale lo fa.

Il che è molto comodo ed è un peccato che sia stato cambiato in MT5, che ha creato un sacco di problemi con l'accesso ai dati lì

Ti ho anche dato il link:

Forum sul trading, sistemi di trading automatico e test di strategie di trading

Service Desk. Se avete domande o commenti sul Service Desk, non esitate a contattarci.

Alexey Kozitsyn, 2015.10.30 17:11

Almeno perché è dichiarato nella documentazione e voglio usarlo.

Per scaricare e controllare la storia, simile a MT5: https://www.mql5.com/ru/docs/series/timeseries_access

Ho una funzione di controllo/caricamento della cronologia scritta su mql5 simile a quella descritta nel link. Tutto funziona come dovrebbe. E volevo usare lo stesso nel programma mql4. Ho copiato il codice e ho scoperto che la funzione SeriesInfoInteger() funziona male. Ho scritto una domanda a Sersidesk. Perché non dovrei usare il codice esistente se tutte le funzioni sono duplicate in entrambe le lingue?

Per quanto ho capito, all'inizio stavi scrivendo per mql4, e poi sei passato a mql5. Al contrario, ho iniziato attivamente a scrivere in mql5, e poi - in mql4. Quindi, per me è più conveniente usare nuove funzioni.

 
E se si confronta la documentazione per organizzare l'accesso ai dati di mql4 e mql5, diventa chiaro che l'accesso è lo stesso. È solo che la documentazione di mql5 è estesa con un esempio di accesso. Quindi, è ancora una grande domanda se questo accesso è così diverso.
 
Alexey Kozitsyn:
E se confrontiamo la documentazione per l'accesso ai dati di mql4 e mql5, sarebbe chiaro che l'accesso è lo stesso. È solo che la documentazione di mql5 è estesa con un esempio di accesso. Quindi, è ancora una grande domanda se questo accesso è così diverso.

Un esempio semplice è che un indicatore chiama un altro da iCustom. E quest'altro indicatore, a sua volta, chiama anche il terzo e il quarto. E tutti questi indicatori sono costruiti un po' più a lungo di qualche millisecondo. Quando si esegue una tale costruzione durante il fine settimana, l'utente non aspetterà che l'indicatore venga creato fino alla fine del fine settimana, a meno che non prema regolarmente il pulsante "Aggiorna" nel grafico. A causa di questo problema ho dovuto fare un intero sistema di classi invece di iCustom per chiamarsi a vicenda con gli indicatori, bypassando iCustom. In MT4 non c'era una tale spina nel fianco.

In MT4, l'indicatore viene costruito prima, e poi viene chiamato il codice che utilizza i suoi dati. La stessa cosa si fa per lo più con le serie temporali. In MT5 tutto è stato cambiato non in meglio.

 
Ilya Malev:

Un esempio semplice è che un indicatore chiama un altro da iCustom. E quest'altro indicatore, a sua volta, chiama anche il terzo e il quarto. E tutti questi indicatori sono costruiti un po' più a lungo di qualche millisecondo. Quando si esegue una tale costruzione durante il fine settimana, l'utente non aspetterà che l'indicatore venga creato fino alla fine del fine settimana, a meno che non prema regolarmente il pulsante "Aggiorna" nel grafico. A causa di questo problema ho dovuto fare un intero sistema di classi invece di iCustom per chiamarsi a vicenda con gli indicatori, bypassando iCustom. In MT4 non c'era una tale spina nel fianco.

In Mt4, l'indicatore viene costruito prima, e poi viene chiamato il codice che utilizza i suoi dati.

Cercate di usare gli eventi del timer. Cioè avviare la logica di tutti i calcoli all'uscita del timer. Poi, se l'indicatore non appare nella finestra - premi una volta refresh. Tutto dovrebbe funzionare.
 

Alexey Kozitsyn:

Prova a usare gli eventi del timer.

Gli eventi timer sono in realtà una sottoclasse di ChartEvent, e vengono chiamati solo quando l'indicatore viene lanciato direttamente sul grafico. Negli indicatori chiamati attraverso iCustom, non aspetterete né la chiamata OnTimer né quella OnChartEvent

Lì, un indicatore inizia a disegnare solo dopo che l'altro è stato disegnato. Devi premere refresh una volta per costruire il primo, il più lontano nella catena, poi ancora una volta per costruire quello che usa i suoi dati :)

Perché l'indicatore nel suo thread non può aspettare la costruzione dei dati di un altro indicatore, senza tornare da OnCalculate. È anche una bella caratteristica. Così, l'utente si troverà sempre di fronte al menu del grafico invece di lavorare con i dati.

Motivazione: