Errori, bug, domande - pagina 99

 
Renat:

No.

Se avete creato una variabile int i;, perché non l'avete inizializzata? Infatti, tu stesso hai detto "non mi interessa cosa c'è in questa variabile" e ti sei ritrovato con della spazzatura dentro.

Il modo corretto è int i=0;

Sì, è vero - potete creare tali variabili all'interno di un blocco.
È un'abitudine. Prima (in MQL4) int i; e int i=0; funzionavano allo stesso modo. Eh....
 
Renat:
Si prega di postare un pezzo di codice in servisdesk dove si verifica questa situazione.

L'ho postato per intero (codice), (quando questa linea con questo carattere "&" dichiara completamente un errore, e se si rimuove completamente questo carattere dalla stringa, tutto funziona... O almeno la metà della stringa per commentare allora funzionerà con questo carattere MA!!! La lunghezza della stringa di 159 caratteri. Che cosa è poi????) e provare a dichiararlo su Windows 7 64 bit (questo è importante) perché l'errore si verifica proprio su di esso, anche se prima di questo Bild 306 ho 15 builds tutto funzionava bene, su 305 - ho lavorato con questo codice una settimana su questa versione di Windows tutto andava bene.



Sono due giorni che scrivo al Service Desk e non riesco a concludere nulla...

P/S. Mi hanno già informato che ci stanno lavorando... (via ServiceDesk).


Документация по MQL5: Основы языка / Типы данных / Тип string
Документация по MQL5: Основы языка / Типы данных / Тип string
  • www.mql5.com
Основы языка / Типы данных / Тип string - Документация по MQL5
 

Citazioni il giovedì 00:00 - 24:00. Venerdì 00:00 - ~22:45 .

Come posso ricevere queste informazioni?

"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""

void OnTick()
  {
//---
//Print(TimeCurrent());      
datetime a,b;
SymbolInfoSessionTrade(Symbol(),FRIDAY,0,a,b);
Print(a,"-",b);
  }

Restituisce "2010.08.17 15:44:31 ora (GBPJPY,H1) 1970.01.01 00:00:00-1970.01.02 00:00:00"

Cos'è session_index, // numero di sessione, come faccio a conoscere questo numero?

bool  SymbolInfoSessionTrade(
   string            name,                // имя символа
   ENUM_DAY_OF_WEEK  day_of_week,         // день недели
   uint              session_index,       // номер сессии
   datetime&         from,                // время начала сессии
   datetime&         to                   // время окончания сессии
   );
 
gumgum:

Citazioni il giovedì 00:00 - 24:00. Venerdì 00:00 - ~22:45 .

Come posso ricevere queste informazioni?

"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""

Restituisce "2010.08.17 15:44:31 ora (GBPJPY,H1) 1970.01.01 00:00:00-1970.01.02 00:00:00"

Cos'è session_index, // numero di sessione, come faccio a conoscere questo numero?

Vedere l'articolo Limiti e controlli negli EA
 
Rosh:
Vedere l'articolo Limitazioni e controlli negli EA


2010.08.17 17:35:37 time (EURUSD,H1) Monday: session index=0 start=00:00 finish=23:59:59

2010.08.17 17:34:58 (EURUSD,H1) Friday: session index=0 start=00:00 finish=23:59:59

session_index è sempre zero

Ancora non capisco perché l'indice di sessione!?

for(int i=0;i<=1000;i++)
{
datetime a,b;
if(!SymbolInfoSessionTrade(Symbol(),FRIDAY,i,a,b)){}else{Print(a," - ",b);}
}

Oltre allo 0 è sempre falso.

 

Dedicato agli sviluppatori ...

Voi ragazzi almeno avreste avvertito se date un'opportunità che prima in linea di principio non era possibile.

Ho sprecato ventiquattr'ore per cercare di prendere questo bug.

double            nd(double v)
{if(DIGITS=EMPTY_VALUE)DigitMinLots();// ставлю  if(DIGITS==EMPTY_VALUE) даёт расчёт с ошибкой
return(NormalizeDouble(v,DIGITS));
};

Non dirmi che va bene, certo che lo so, ma ho sprecato 24 ore solo perché sono abituato al fatto che con questo

if(DIGITS=EMPTY_VALUE)

Sono abituato a farmi dare un errore dal compilatore.

 
Urain:

Dedicato agli sviluppatori ...

Voi ragazzi almeno avreste avvertito se date un'opportunità che prima in linea di principio non era possibile.

Ho sprecato ventiquattro ore per cercare di prendere questo bug.

Non dirmi che va bene, certo che lo so, ma ho sprecato 24 ore solo perché sono abituato al fatto che con questo

Sono abituato a farmi dare un errore dal compilatore.

Non c'è nessun errore. Il prossimo aggiornamento darà un avviso che l'espressione non è logica.
 
mql5:
Non c'è nessun errore. Nel prossimo aggiornamento, ci sarà un avviso che l'espressione non è logica.
Ora stai parlando, non c'è nessun errore da parte mia.
 

Esiste una terminazione forzata della funzione OnTester()

o perché la storia delle transazioni prima della funzione personalizzata esiste e restituisce zero dopo :

double OnTester()
  {
   int HTD=-1;
   Custom_func();
   if(HistorySelect(0,TimeCurrent()))HTD=HistoryDealsTotal();   
   return(HTD);
  }

Quali funzioni non funzionano nel tester?

come può il tester (durante l'ottimizzazione) segnalare all'esterno che qualcosa non va (avvisi di stampa, niente funziona) ?

Документация по MQL5: Основы языка / Функции / Функции обработки событий
Документация по MQL5: Основы языка / Функции / Функции обработки событий
  • www.mql5.com
Основы языка / Функции / Функции обработки событий - Документация по MQL5
 

Non lo capisco, per niente.

Perché: non è finita alle 24:00 di venerdì.

O cosa?

Rosh:
Vedere l'articolo Restrizioni e controlli negli EA

E perché session_index++; se session_index=1 è già falso:

//+------------------------------------------------------------------+
//|  Вывести информацию о котировочных сессиях                       |
//+------------------------------------------------------------------+
void PrintInfoForQuoteSessions(string symbol,ENUM_DAY_OF_WEEK day)
  {
//--- начало и конец сессии
   datetime start,finish;
   uint session_index=0;
   bool session_exist=true;

//--- пройдемся по всем сессиям за этот день
   while(session_exist)
     {
      //--- проверим наличие котировочной сессии с номером session_index
      session_exist=SymbolInfoSessionQuote(symbol,day,session_index,start,finish);

      //--- если такая сессия есть
      if(session_exist)
        {
         //--- выведем день недели, номер сессии и время начала и окончания
         Print(DayToString(day),": session index=",session_index,"  start=",
               TimeToString(start,TIME_MINUTES),"    finish=",TimeToString(finish-1,TIME_MINUTES|TIME_SECONDS));
        }
      //--- увеличим счетчик сессий
      session_index++;
     }
  }