[SERVICE DESK] Errore nell'ottenere il tempo del TF senior nel timer! - pagina 11

 
Alexey Kozitsyn:

Quale orario di chiusura? Ho bisogno di un orario di apertura...

Hai il controllo dell'orario di apertura dell 'ultimo bar che va dappertutto, ecco cosa ottieni. Subito dopo l'apertura del terminale, la barra non si è ancora formata in OnInit.

 
Konstantin Nikitin:

Hai il controllo dell'orario di apertura dell 'ultimo bar ovunque, ecco cosa ottieni. Subito dopo l'apertura del terminale, la barra non si è ancora formata in OnInit.

...No comment, ho finito di parlare con te.

 
Alexey Kozitsyn:

Domanda! Perché emette i dati precedenti dopo che la connessione al server è già stata stabilita, c'era una pre-richiesta di dati in OnInit(), un controllo del caricamento dei dati in ciascuna delle funzioni CheckCurren...(). Quanti maledetti controlli dobbiamo fare per farlo funzionare correttamente...

Ci sono molti simboli e periodi, se il terminale è stato offline per molto tempo, ha bisogno di caricare molti dati.
Per non aspettare questo caricamento che dipende dalla velocità di internet e del server del broker, il terminale vi dà i dati precedenti in una volta.
Quelli che sono già disponibili.

Quindi non è una "soluzione di stampella", è un controllo necessario per caricare l'ultima candela.

ps. come si controlla ulteriormente l'aspetto di una nuova barra?

 
Taras Slobodyanik:

Ci sono molti simboli e periodi, se il terminale è stato offline per molto tempo, è necessario scaricare molti dati.
Per evitare l'attesa di questo download, che dipende dalla velocità di internet e del server del broker, il terminale vi dà immediatamente i dati precedenti.
Quelli che sono già disponibili.

Quindi non è una "soluzione stampella", ma un controllo necessario per caricare l'ultima candela.

Senti il problema della logica? Se la storia non è ancora caricata, e lasciatemi emettere "qualcosa" e aspettare che i dati siano aggiornati. E non importa se i dati sono corretti o no...

Inoltre, anche se il terminale è offline per 5-10 minuti - stessa assurdità. Anche se ci sono solo 3 caratteri nella finestra dei dati - la stessa assurdità. Tutti i controlli sono stati seguiti - stessa assurdità.

Capite che il consiglio dello sviluppatore sul caricamento corretto NON FUNZIONA. Non significa niente per te?

 
L'aggiornamento 1126 è arrivato su MQDemo... Controlleremo di più su questa versione lunedì.
 
Alexey Kozitsyn:

Percepisce un problema di logica? Se la cronologia non è ancora stata caricata, e lasciatemi dare "qualcosa" e aspettare che i dati siano aggiornati. E non importa se i dati sono corretti o no...

Questa logica è solo al primo simbolo di run-open.
Il terminale non sa se ci sono altre candele, dà quello che ha.

Poi appare l'ultima candela.

 
Taras Slobodyanik:

Questa logica funziona solo la prima volta che si esegue l'apertura di un simbolo.
Il terminale non sa se ci saranno altre candele, ti dà quello che ha.

Poi appare l'ultima candela.

Ho aggiornato il mio post.

Ditemi, volete spendere ore di lavoro ogni volta per capire queste sfumature, o volete leggere la documentazione una volta e capire tutto? Volete soffrire con i "precarichi" o semplicemente ottenere un errore quando i dati non sono ancora stati aggiornati?

 
Taras Slobodyanik:

A proposito, che versione del terminale hai?

 
Taras Slobodyanik:

ps. come si fa a verificare ulteriormente la comparsa di una nuova barra?

//+------------------------------------------------------------------+
//| Проверяем образование нового часа                                |
//+------------------------------------------------------------------+
bool CheckNewHour()     
        {
         //--- Сбрасываем код последней ошибки
         ResetLastError();
         //--- Получаем время открытия текущего часа
         const datetime hOpenTime = iTime( _Symbol, PERIOD_H1, 0 );
         //--- Проверяем корректность полученного времени
         if( hOpenTime == 0 || GetLastError() != 0 )            // Если возникла ошибка или время не получено
                 return( false );                                                                               // Возвращаем ложь
         //--- Сравниваем полученное время с сохраненным
         if( hOpenTime == _hourOpenTime )                                       // Если время совпадает
                 return( false );                                                                               // Возвращаем ложь
         //--- Запоминаем время нового часа
         _hourOpenTime = hOpenTime;
         //--- Возвращаем истину
         return( true );
        }
 

Non vedo il problema, c'è una nuova candela - ricalcola l'ultima candela dell'indicatore/advisor.
C'è più di una nuova candela - fai un ricalcolo completo dell'indicatore/advisor.
Questo è lo stesso - appare una nuova candela.

Un'altra cosa - i periodi richiesti dovrebbero essere costantemente "tirati" per aggiornarli.
Se non c'è nessuno che lavora sul simbolo-periodo (le virgolette non sono controllate, l'indicatore non è in esecuzione), allora "dorme" perché è considerato non necessario.