Per favore, spiegate cosa potrebbe esserci di sbagliato in questa funzione? - pagina 7

 

Questo link dice

Механизм обращения к серверу за данными не зависит от того, каким образом был инициирован запрос — пользователем при навигации по графику или программным способом на языке MQL5.


apparentemente si tratta dei dati più vecchi, e i dati più recenti dovrebbero essere ottenuti semplicemente perché il grafico dello strumento è aperto? O no?

Qual è la differenza nell'ottenere dati con funzioni diverse?

 
Slawa:
Avete letto per intero la documentazione sull'organizzazione dell'accesso ai dati?

Slava, hai guardato la mia domanda?

MQL5: errore #4806
Aperto, Iniziato: 2016.02.15 11:22, #1409574

La manutenzione della cache tramite il twitching degli indicatori non funziona.

Esegui l'EA allegato, dopo un po' ottieni un errore nei log.

 
Andrey Khatimlianskii:

Slava, hai guardato la mia domanda?

La manutenzione della cache attraverso il twitching degli indicatori non funziona.

Eseguire l'allegato EA, ottenere un errore nei log dopo un po'.

Sì, l'ho fatto. Ma non vi ho trovato nessuna EA.

Ho controllato con il mio EA. Ripeto: la presenza di un qualsiasi gestore di indicatori (nel mio caso iMA) impedisce lo scarico della cache storica.

Inviate qui il vostro EA (e potete farlo nell'applicazione di cui sopra) - lo eseguirò in diversi terminali. Vediamo

 
Alexey Viktorov:

Dimitri, non è strano? C'è una nuova barra, ma non la contiamo ancora.

Ascolta, non è la causa di tale comportamento SeriesInfoInteger(_Symbol, PERIOD_D1, SERIES_LASTBAR_DATE);? È apparsa una nuova barra, il tick è disponibile il codice viene eseguito, ma il tempo non è ancora preso in considerazione?

In termini di uso del tempo - corretto. Si accetta che il limite superiore dell'intervallo di tempo specificato non sia applicabile. Ma in questo caso è scomodo - sì.

A proposito diSeriesInfoInteger(_Symbol, PERIOD_D1,SERIES_LASTBAR_DATE), non so, non l'ho usato e probabilmente non lo userò, se ho bisogno del tempo della barra, userò CopyTime() o CopyRates().

Gli sviluppatori dovrebbero fare un analogo di iBarShift(), riscrivere un po' Bars() e funzionerebbe.

 
Slawa:

Sì, l'ho fatto. Ma non vi ho trovato nessun consigliere.

Ho controllato con il mio EA. Ripeto: la presenza di un qualsiasi gestore di indicatori (nel mio caso iMA) impedisce lo scarico della cache storica.

Dai il tuo EA qui (o puoi farlo nell'applicazione di cui sopra) - lo eseguirò in diversi terminali. Vediamo

L'Expert Advisor è stato allegato nel primo post (zip, 58.91 KB). Non avete file archiviati da qualche parte?

Ho costruito la versione da cui tutto è iniziato e l'ho allegata. Provalo. Ci sono anche le condizioni di prova e il set-file.

 
Dmitry Fedoseev:

In termini di uso del tempo, corretto. Si accetta che il limite superiore del tempo specificato non si applichi all'intervallo. Ma in questo caso è scomodo - sì.

A proposito diSeriesInfoInteger(_Symbol, PERIOD_D1,SERIES_LASTBAR_DATE); non so, non ho usato e probabilmente non userò, se ho bisogno del tempo della barra, userò CopyTime() o CopyRates().

Gli sviluppatori dovrebbero fare un analogo di iBarShift(), riscrivere un po' Bars() e funzionerebbe.

Accettato in altri linguaggi di programmazione?

Beh, colpire il limite superiore della gamma è metà del problema. Quello che voi chiamate "un inconveniente", io lo chiamo stupidità alla quale potrete abituarvi e considerare l'utilizzo nei vostri programmi.

Ho semplicemente trovato un comportamento inadeguato della funzione, e non c'è altro nome per questo, così ho cercato di spiegarlo agli sviluppatori. Ma invece di cercare di capire cosa stava succedendo ... questo è tutto... silenzio. Nessuno ne ha bisogno.

Ho anche già rinunciato a usare questa funzione e l'ho sostituita con CopyRates() solo per inerzia ha continuato a spiegare, probabilmente perché il batterista ha rinominato il topic in modo che io chieda un suggerimento, e non segnalare un problema in mql5.

 
Andrey Khatimlianskii:

Il consulente è stato allegato nel primo post (zip, 58.91 KB). Non avete i file archiviati da qualche parte?

Hanno assemblato la versione dove tutto è iniziato e l'hanno allegata. Provalo. Ci sono anche le condizioni di prova e il file impostato.

Ieri ho avuto un sacco di lavoro. Si scopre che c'è un sorgente zippato dell'Expert Advisor nel primo post. Questo è quello che sto usando.
 
Alexey Viktorov:

Avendo semplicemente scoperto il comportamento inadeguato della funzione, che è l'unico modo per descriverlo, ho cercato di spiegarlo agli sviluppatori. Ma invece di cercare di capire cosa sta succedendo... questo è tutto... silenzio. Nessuno ne ha bisogno.


Dove vedete un comportamento inadeguato della funzione? Avete letto attentamente la documentazione?

SeriesInfoInteger

Restituisce informazioni sullo stato dei dati storici.

Restituisce informazioni sullo stato dei dati storici. Non aggiorna le informazioni, non avvia la paginazione dei dati. Restituisce solo quello che c'è attualmente

 
Slawa:

Dove vede un comportamento inadeguato della funzione? Avete letto attentamente la documentazione?

Restituisce informazioni sullo stato dei dati storici. Non aggiorna le informazioni, non avvia la paginazione dei dati. Restituisce solo quello che c'è al momento.

Se non ti dispiace, vai su https://www.mql5.com/ru/forum/89213/page6#comment_2605980, è tutto lì.

SERIES_LASTBAR_DATE Ora dell'apertura dell' ultima barra per il periodo del simbolo. Ma quando appare una nuova barra, ma la funzione la vede o non la vede, come si chiama? Culturalmente parlando, si chiama "funzionamento INSTABILE della funzione", o semplicemente comportamento inadeguato...

In secondo luogo, non avresti dovuto dire sciocchezze nelle prime risposte alla mia domanda alla SD.

 
Alexey Viktorov:

SERIES_LASTBAR_DATE Tempo di apertura dell' ultima barra per carattere di periodo. Quando appare una nuova barra ma la funzione la vede e non la vede, come si chiama? Culturalmente parlando, il "funzionamento INSTABILE della funzione", o semplicemente il suo comportamento inadeguato...


Se i dati storici corrispondenti sono stati scaricati per timeout, cosa dovrebbe restituire la funzione SeriesInfoInteger con la richiesta SERIES_LASTBAR_DATE?

E chi controllerà il risultato di GetLastError()?

La vostra richiesta a servicedesk si chiama "Una strana condizione if(condition) non è soddisfatta". (Porca miseria! L'IF NON FUNZIONA!!!) Ed eri tu che dicevi sciocchezze in quella richiesta. Hai mischiato tutto lì dentro. Rileggi la tua domanda in uno stato più calmo, attraverso gli occhi di un estraneo.

E non c'è bisogno di attaccare - questo è un forum tecnico, e gli argomenti devono essere preparati con competenza.

Motivazione: