Bug MQL5 quando si lavora con accesso alle serie temporali iClose/iOpen, ecc. - pagina 6

 

Ho beccato iTime che riagganciava su PERIOD_M1.


Il mio sistema:

2018.11.15 10:03:35.115 Terminal        MetaTrader 5 x64 build 1944 started (MetaQuotes Software Corp.)
2018.11.15 10:03:35.118 Terminal        Windows 10 (build 17134) x64, IE 11, UAC, Intel Core i3-3120 M  @ 2.50 GHz, Memory: 4141 / 8077 Mb, Disk: 154 / 415 Gb, GMT+2
2018.11.15 10:03:35.118 Terminal        C:\Users\barab\AppData\Roaming\MetaQuotes\Terminal\D0E8209F77C8CF37AD8BF550E51FF075

Funziona normalmente, nessun portatile.

Su AUDUSD, M5 ho eseguito "Test CopyTime.mq5" alle 10:08:20

2018.11.15 10:08:20.159 Experts expert Test CopyTime (AUDUSD,Daily) loaded successfully

Codice di Expert Advisor

//+------------------------------------------------------------------+
//|                                                Test CopyTime.mq5 |
//|                              Copyright © 2018, Vladimir Karputov |
//|                                           http://wmua.ru/slesar/ |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2018, Vladimir Karputov"
#property link      "http://wmua.ru/slesar/"
#property version   "1.00"
//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit()
  {
//---

//---
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//| Expert deinitialization function                                 |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
  {
//---

  }
//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick()
  {
   datetime CM1_T[1];
   datetime CM2_T[1];
   CopyTime(_Symbol,PERIOD_M1,0,1,CM1_T);
   CopyTime(_Symbol,PERIOD_CURRENT,0,1,CM2_T);
   Comment("CopyTime PERIOD_CURRENT: "+TimeToString(CM2_T[0],TIME_DATE|TIME_SECONDS)+"\n"+
           "CopyTime PERIOD_M1: "+TimeToString(CM1_T[0],TIME_DATE|TIME_SECONDS));
  }
//+------------------------------------------------------------------+

Poi in

2018.11.15 10:27:45.583 Network '10169544': connection to MetaQuotes-Demo lost

forzatamente disconnesso da Internet (router spento)


Dopo essersi ricollegato a

2018.11.15 10:32:58.823 Network '10169544': authorized on MetaQuotes-Demo through Access Point EU 2 (ping: 50.64 ms)

codice

CopyTime(_Symbol,PERIOD_M1,0,1,CM1_T)

ha smesso di dare l'attuale tempo di apertura di una barra su M1, e tutto il tempo dà l'ultimo tempo prima che la connessione sia interrotta.


2018.11.15 10:08:20.159 Experts expert Test CopyTime (AUDUSD,Daily) loaded successfully
2018.11.15 10:27:45.583 Network '10169544': connection to MetaQuotes-Demo lost
2018.11.15 10:32:58.823 Network '10169544': authorized on MetaQuotes-Demo through Access Point EU 2 (ping: 50.64 ms)
2018.11.15 10:32:58.823 Network '10169544': previous successful authorization performed from 178.165.123.77 on 2018.11.15 10:03:38
2018.11.15 10:32:58.900 Network '10169544': terminal synchronized with MetaQuotes Software Corp.
2018.11.15 10:32:58.900 Network '10169544': trading has been enabled - hedging mode
2018.11.15 10:33:00.653 Network '10169544': scanning network for access points
2018.11.15 10:33:19.062 Network '10169544': scanning network finished
2018.11.15 10:33:19.062 Network '10169544': auto connecting to a better access point with 95 % quality (previous: 88 %)
2018.11.15 10:33:19.062 Network '10169544': connection to MetaQuotes-Demo lost
2018.11.15 10:33:19.716 Network '10169544': authorized on MetaQuotes-Demo through Access Point EU 4 (ping: 65.57 ms)
2018.11.15 10:33:19.716 Network '10169544': previous successful authorization performed from 178.165.123.77 on 2018.11.15 10:32:58
2018.11.15 10:33:19.825 Network '10169544': terminal synchronized with MetaQuotes Software Corp.
2018.11.15 10:33:19.825 Network '10169544': trading has been enabled - hedging mode


Forse è un array statico

datetime CM1_T[1];

E c'è bisogno di usare un array dinamico?


Aggiunto: sostituito CM1_T[1] con un CM1_T[] dinamico. Dopo aver interrotto forzatamente la connessione per circa tre minuti, la stringa

CopyTime(_Symbol,PERIOD_M1,0,1,CM1_T)

Emette l'ultimo tempo conosciuto con M1 prima di interrompere il collegamento.

File:
 
Vladimir Karputov:

Ho beccato iTime che riagganciava su PERIOD_M1.

Il mio sistema:

Funziona normalmente, nessun portatile.

Su AUDUSD, M5 ho eseguito "Test CopyTime.mq5" alle 10:08:20

Codice di Expert Advisor

Poi in

forzatamente disconnesso da Internet (router spento)

Dopo essersi ricollegato a

codice

ha smesso di dare l'attuale tempo di apertura di una barra su M1, e tutto il tempo dà l'ultimo tempo prima che la connessione sia interrotta.

Forse è un array statico

e hanno bisogno di usare un array dinamico?

Prova a metterlo su M30, e ottieni anche i dati da M30. È esattamente così che si blocca, come si vede nel video. Cambiare il timeframe non aiuta, solo rimuovere l'indicatore e poi installarlo.

 
Vitaly Muzichenko:

Provate a metterlo su M30 e a ottenere dati anche da M30. È esattamente così che ottengo il freeze, che è mostrato nel video. Cambiare il timeframe non aiuta, solo rimuovere l'indicatore e poi installarlo.

Confermo che giocare con la ricarica dell'indicatore non è utile al 100%, tanto da dire che per ogni 3 volte che riesco a ricaricare completamente l'indicatore e naturalmente non indovinare dai fondi di caffè, è più facile scaricare l'indicatore e ricaricarlo sullo strumento.

Ma è una cosa incredibile, di che tipo di automazione del trading possiamo parlare in questa specie di danza con i tamburelli.

 
Vladimir Karputov:

*** Forse è l'array statico

Ho degli array dinamici, come è originariamente scritto che è meglio usarli a SoruXXX, il problema non è il tipo di array.

 
Sai, al lavoro, devo scrivere molto al supporto tecnico di diverse aziende (Symantec, DeviceLock, Kaspersky, FortiNet, Xspider, ecc.), ma mai prima ho dovuto trovare la causa del problema descritto da me, mda .... Resta solo da scrivere una correzione per me stesso :)
 
Farkhat Guzairov:

... ma purtroppo, il prodotto MQ, è stato il mio obiettivo per circa 10 anni.

tra altri 10 anni tutto funzionerà correttamente )))))))))))))))))))))

 
Ho avuto un problema simile circa sei mesi fa. Stavo scrivendo un robot di arbitraggio, quindi stavo lavorando con una grande lista di personaggi allo stesso tempo. Stavo scrivendo un robot di arbitraggio , quindi stavo lavorando con una grande lista di simboli allo stesso tempo. Il robot era protetto dal lavorare con quotazioni non aggiornate, quindi il problema era solo una diminuzione dell'attività. L'unica cosa che ha aiutato è stato riattaccare l'EA al grafico.
 
Riprodurremo e correggeremo.
 
Renat Fatkhullin:
Riprodurremo e correggeremo.

Quando possiamo aspettarci una correzione?

 
Farkhat Guzairov:

Quando possiamo aspettarci una correzione?

Il congelamento dell'aggiornamento del timeframe invisibile alieno dopo la riconnessione è stato affrontato e risolto. La ragione era uno stato della cache sbagliato dopo la riconnessione.

La versione beta 1946 è disponibile tramite Help -> Check Desktop Updates -> Latest Beta Version.

Motivazione: