Servicedesk. Reclami, suggerimenti. - pagina 7

 
Ilya Malev:
Ho appena trovato il tuo problema già in MT5 in un indicatore, senza uscire da un ciclo OnTimer, controllo la serie temporale su un altro simbolo/periodo (non quello attuale) - la funzione mi dice che è costruita e dà il numero corretto di barre. Subito dopo chiamo un'altra funzione per costruire l'indicatore - all'interno di questa funzione, chiamata dalla stessa chiamata di OnTimer, la serie temporale riesce ad essere scaricata e il SeriesInfoInteger ritorna zero. Ho dovuto incorporare un ulteriore controllo ciclico, in modo che tutto si costruisca da solo senza tic in entrata.

Qual è la struttura del terminale MT5? Mikhail ha scritto che MT5 build 1200 dovrebbe andare bene:

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

Service Desk. Reclami, suggerimenti.

Mikhail, 2015.10.29 17:46

Ho sollevato il problema dei dati negli indicatori molto tempo fa!

https://www.mql5.com/ru/forum/42180

Mi è stato assicurato che il problema è stato risolto.

L'hanno anche scritto nell'abstract del comunicato del 1200

17: Terminale: Corretto un bug che portava a scaricare i dati storici come inutilizzati, nonostante i regolari accessi ai dati dai programmi MQL5.

E se la build è nuova, ma l'errore persiste - andate da servicedesk con le prove!

 
Alexey Kozitsyn:

Qual è la struttura del terminale MT5? Mikhail ha scritto che MT5 build 1200 dovrebbe andare bene:

Se la build è nuova e l'errore è ancora presente, andate al Service Desk con le prove!

La costruzione è la stessa del 1200/64. Per riprodurre l'errore, ho bisogno di simulare la situazione che ho avuto in un prodotto abbastanza complesso, che non posso inviare a tavolino. Lo farò non appena sarò libero dal lavoro per un po'.
 

Il topic-starter ha ricevuto consigli sul suo problema nella prima risposta, che lui, il topic-starter, ha ignorato.

Stanislav Starikov| 10.29 12:41

Per ottenere i dati effettivi dal symbol-period di qualcun altro è necessario accedere a questi dati più frequentemente di una volta ogni 10 secondi. Oppure accedere a questi dati da Expert Advisor, per esempio usando iTime (allora i dati possono essere consultati almeno una volta ogni 3 minuti)


Il topic-starter ovviamente ha visto questo consiglio, dato che c'è del codice commentato nel suo indicatore che ha presentato qui

         //if( bars_count == 0 || firstDate == 0 || serv_firstDate == 0 )
         //     {
         //      Print( "Подкачка iTime()" );
         //      datetime tm = iTime( _Symbol, period, 0 );
         //     }

Se inserite la chiamata incondizionata iTime(_Symbol,period,0) in OnInit e all'inizio di OnCalculate, non avrete i problemi descritti sopra

Il SeriesInfoInteger raccoglie semplicemente le informazioni già esistenti senza chiamare lo scambio di dati, e questo è logico.

 
Slawa:

Il topic-starter ha ricevuto consigli sul suo problema nella prima risposta, che lui, il topic-starter, ha ignorato.

Stanislav Starikov| 10.29 12:41

Per ottenere dati effettivi dal periodo-simbolo di qualcun altro è necessario accedere a questi dati più frequentemente di una volta ogni 10 secondi. Oppure accedere a questi dati da Expert Advisor, per esempio usando iTime (allora i dati possono essere consultati almeno una volta ogni 3 minuti)


Il topic-starter ovviamente ha visto questo consiglio, dato che c'è del codice commentato nel suo indicatore che ha presentato qui

Se inserite la chiamata incondizionata iTime(_Symbol,period,0) in OnInit e all'inizio di OnCalculate, non avrete i problemi descritti sopra

Il SeriesInfoInteger raccoglie semplicemente le informazioni già esistenti senza chiamare lo scambio di dati, e questo è logico.

Vyacheslav, a chi ti stai rivolgendo ora? Io? O a Ilya?

Se ti stai rivolgendo a Ilya, lui sta già parlando di mql5. Per favore leggi attentamente prima di rispondere. Vi ho detto più di una volta che avete fretta di rispondere senza entrare nei dettagli.

Ho visto il tuo consiglio, il codice commentato lo conferma, grazie, mi ha aiutato. Dato che Renat ha detto che lo scarico aggressivo dei dati sarà corretto, non c'è bisogno di continuare a discutere di mql4.

Ma se la stessa situazione continua in mql5, anche se dovrebbe essere risolta a partire dalla build 1200, allora cosa fare?

Ancora una volta, se voi (gli sviluppatori) non avete intenzione di cambiare nulla in mql4, aggiungete alla documentazione che SeriesInfoInteger() raccoglie solo informazioni esistenti, e questo è tutto! Tutte le domande spariranno, o potrete semplicemente ficcare il naso nella documentazione!

 
Alexey Kozitsyn:

Vyacheslav, con chi stai parlando adesso? Io? O a Ilya?

Dal momento che iTime è stato menzionato, si tratta ovviamente di MT4. Non ho ancora dato un esempio di codice specifico per rispondermi.
 
Ilya Malev:
Dal momento che iTime è stato menzionato, si tratta chiaramente di MT4. Non ho ancora dato un esempio di codice specifico per rispondermi.
L'ho capito, ma è più probabile che tu sia stato indirizzato. Ma hai scritto dell'errore in mql5.
 
Alexey Kozitsyn:
L'ho capito, ma probabilmente era rivolto anche a te. Ma hai scritto dell'errore in mql5.
Non sono il topicstarter :)
 
Ilya Malev:
Non sono il topicstarter :)
Sì, ma il post era come se ti spiegasse ciò che io, secondo Vyacheslav, non ho afferrato.
 
Alexey Kozitsyn:
Sì, ma il post era come spiegare a te ciò che io, secondo Vyacheslav, non ho colto.

Penso che sia un modo di parlare con te :)

Tornerò sul mio problema e fornirò un codice di verifica. A meno che non sia stato corretto qualcosa nella build 1210. Finora ho fatto un controllo ciclico e sono andato avanti, non c'è tempo per fermarsi.

 
Ilya Malev:
Scrivete poi il risultato dei vostri esperimenti con la storia in MT4)

Ho iniziato a sperimentare il caricamento della storia da zero. Cioè cancello tutta la storia dal simbolo e avvio il terminale. Impostazione del terminale barre massime nella finestra = 5000.

Se si utilizza uno script simile a quello di Data Access Organization in MT5, si può vedere che la storia viene caricata fino al numero massimo di barre o all'ultima data sul server.

Usando uno schema simile in MT4, i dati non vengono caricati. Cioè inizialmente sono disponibili circa 2050, e per ottenere più storia è necessario scorrere il grafico fino alla profondità della storia.

Ho anche notato una particolarità. Quando si scorre, se vengono caricate nuove barre, prev_calculated viene resettato a 0 (funziona come il pulsante "aggiorna").

Cari sviluppatori. Si prega di commentare se c'è un modo per scambiare la storia senza usare lo scorrimento del grafico (MT4!).

Motivazione: