Fehler, Irrtümer, Fragen - Seite 99

 
Renat:

Nein.

Wenn Sie eine Variable int i; erstellt haben, warum haben Sie sie nicht initialisiert? Sie selbst haben gesagt: "Es ist mir egal, was in dieser Variablen steht", und am Ende stand Müll drin.

Der richtige Weg ist int i=0;

Ja, das ist richtig - Sie können solche Variablen innerhalb eines Blocks erstellen.
Es ist eine Gewohnheit. Früher (in MQL4) funktionierten int i; und int i=0; auf die gleiche Weise. Eh....
 
Renat:
Bitte stellen Sie ein Stück Code in Servisdesk ein, bei dem diese Situation auftritt.

Ich postete es in voller (Code), (wenn diese Zeile mit diesem Zeichen "&" vollständig einen Fehler zu erklären, und wenn Sie dieses Zeichen aus der Zeichenfolge vollständig zu entfernen, alles funktioniert ... Oder zumindest die Hälfte der Zeichenkette zum Kommentieren, dann wird es mit diesem Zeichen funktionieren, ABER!!! Die Länge der Zeichenkette von 159 Zeichen. Was ist es dann????) und versuchen, es auf Windows 7 64 Bit zu erklären (das ist wichtig), weil der Fehler genau auf sie auftritt, obwohl vor diesem Bild 306 habe ich 15 baut alles gut funktionierte, auf 305 - Ich arbeitete mit diesem Code eine Woche auf dieser Version von Windows alles war gut.



Ich schreibe nun schon seit zwei Tagen an den Service Desk und kann nichts erreichen...

P/S. Sie haben mir bereits mitgeteilt, dass sie daran arbeiten... (über ServiceDesk).


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

Zitate am Donnerstag 00:00 - 24:00. Freitag 00:00 - ~22:45 .

Wie erhalte ich diese Informationen?

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

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

Rückgabe "2010.08.17 15:44:31 Zeit (GBPJPY,H1) 1970.01.01 00:00:00-1970.01.02 00:00:00"

Was ist session_index, // Sitzungsnummer, woher kenne ich diese Nummer?

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

Zitate am Donnerstag 00:00 - 24:00. Freitag 00:00 - ~22:45 .

Wie erhalte ich diese Informationen?

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

Rückgabe "2010.08.17 15:44:31 Zeit (GBPJPY,H1) 1970.01.01 00:00:00-1970.01.02 00:00:00"

Was ist session_index, // Sitzungsnummer, woher kenne ich diese Nummer?

Siehe Artikel Grenzwerte und Kontrollen in EAs
 


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

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

session_index ist immer Null

Ich verstehe immer noch nicht, warum der Sitzungsindex!?

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

Abgesehen von 0 ist es immer falsch.

 

Gewidmet den Entwicklern ...

Ihr hättet zumindest gewarnt, wenn ihr eine Gelegenheit gebt, die vorher prinzipiell nicht möglich war.

Ich habe vierundzwanzig Stunden damit verschwendet, diesen Fehler zu finden.

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

Natürlich weiß ich das, aber ich habe 24 Stunden gebraucht, weil ich daran gewöhnt bin, dass mit diesem

if(DIGITS=EMPTY_VALUE)

Ich bin es gewohnt, dass mir der Compiler einen Fehler anzeigt.

 
Urain:

Gewidmet den Entwicklern ...

Ihr hättet zumindest gewarnt, wenn ihr eine Gelegenheit gebt, die vorher prinzipiell nicht möglich war.

Ich habe vierundzwanzig Stunden damit verschwendet, diesen Fehler zu finden.

Natürlich weiß ich das, aber ich habe 24 Stunden gebraucht, weil ich daran gewöhnt bin, dass mit diesem

Ich bin es gewohnt, dass mir der Compiler einen Fehler anzeigt.

Es liegt kein Fehler vor. Bei der nächsten Aktualisierung wird eine Warnung ausgegeben, dass der Ausdruck nicht logisch ist.
 
mql5:
Es liegt kein Fehler vor. In der nächsten Aktualisierung wird es eine Warnung geben, dass der Ausdruck nicht logisch ist.
Jetzt, wo Sie es sagen, gibt es keinen Fehler mehr.
 

Gibt es einen erzwungenen Abbruch der Funktion OnTester()

oder warum der Verlauf der Transaktionen vor der benutzerdefinierten Funktion existiert und danach Null zurückgibt:

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

Welche Funktionen funktionieren im Testgerät nicht?

Wie kann der Prüfer (während der Optimierung) nach außen signalisieren, dass etwas nicht stimmt (Warnungen drucken, nichts funktioniert)?

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

Ich verstehe das beim besten Willen nicht.

Der Grund dafür ist: Es ist nicht um 24:00 Uhr an einem Freitag vorbei.

Oder was?

Und warum session_index++; wenn session_index=1 bereits falsch ist:

//+------------------------------------------------------------------+
//|  Вывести информацию о котировочных сессиях                       |
//+------------------------------------------------------------------+
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++;
     }
  }