Fragen von Anfängern MQL5 MT5 MetaTrader 5 - Seite 1029

 
Roman Kutemov:

Ratschlag wie man den Tag in mt5 bestimmen kann ? ein Analogon von DayOfYear aus mt4

diese Funktion ist zu schreiben

if (TimeDayOfYear(transaction_time)==DayOfYear())

https://www.mql5.com/ru/docs/constants/structures/mqldatetime

Документация по MQL5: Константы, перечисления и структуры / Структуры данных / Структура даты
Документация по MQL5: Константы, перечисления и структуры / Структуры данных / Структура даты
  • www.mql5.com
Порядковый номер в году day_of_year в високосном году, начиная с марта, будет отличаться от порядкового номера соответствующего дня в невисокосном году.
 

Das habe ich gelesen, ich weiß nur nicht, wie ich es in den Code einfügen kann.

 
Roman Kutemov:

Ratschlag, wie man den Tag in mt5 bestimmen kann ? ein Analogon von DayOfYear aus mt4

diese Funktion ist zu schreiben

if (TimeDayOfYear(transaction_time)==DayOfYear())

Beispiel-Code:

   MqlDateTime STimeTransaction,STimeCurrent;
   ResetLastError();
   if(TimeToStruct(transaction_time,STimeTransaction))
     {
      if(TimeToStruct(TimeCurrent(),STimeCurrent))
        {
         if(STimeTransaction.day_of_year==STimeCurrent.day_of_year)
           {
            //--- your code

           }
        }
      else
         Alert("ERROR STimeCurrent: ",GetLastError());
     }
   else
      Alert("ERROR STimeTransaction: ",GetLastError());

Es gibt zweiMqlDateTime-Strukturen-STimeTransaction und STimeCurrent. In derSTimeTransaction-Struktur wird die Transaktionszeit (transaction_time) umgewandelt, und in derSTimeCurrent-Struktur die letzte bekannte Zeit des Handelsservers.

Dann vergleichen wir einfach das Feldday_of_year dieser beiden Strukturen(STimeTransaction undSTimeCurrent)

 
Vladimir Karputov:

Beispiel-Code:

ZweiMqlDateTime-Strukturen-STimeTransaction und STimeCurrent. In der StrukturSTimeTransaction konvertieren wir die Transaktionszeit (transaction_time), und in der StrukturSTimeCurrent konvertieren wir die letzte bekannte Zeit des Handelsservers.

Dann vergleichen wir einfach das Feldday_of_year dieser beiden Strukturen(STimeTransaction undSTimeCurrent)

cool, danke

 

Ein Ratschlag für einen alten Mann...

Aus irgendeinem Grund funktioniert das Drucken beim Debuggen des Expert Advisors nicht.

D.h. es gibt ein Stück Programm:

if(IsNewBar)
       {
     Print("Buy_opened=",Buy_opened ,"  Sell_opened=",Sell_opened,"   Новый бар",New_Time[0]);
     int fileHandle=FileOpen("test.txt",FILE_WRITE|FILE_TXT|FILE_SHARE_READ|FILE_UNICODE,0,0); 
     FileWrite(fileHandle,"Buy_opened=",Buy_opened ,"  Sell_opened=",Sell_opened,"   Новый бар",New_Time[0]);
     Alert("Buy_opened=",Buy_opened ,"  Sell_opened=",Sell_opened,"   Новый бар",New_Time[0]);
       }


Und es wird nichts gedruckt. Ich habe sogar if(IsNewBar) entfernt, um bei jedem Tick zu drucken - aber nichts.

Ich habe alle Registerkarten wie "Expert Advisor", "Logs", "Logs" durchgesehen - nichts.

Was ist das Problem? Ich hatte keine Probleme mit MT4, aber ich habe keine Ahnung, was ich mit MT5 machen soll... Ich weiß nicht, wohin ich gehen soll... Ich weiß nicht, wo ich suchen soll...


Ja, der Expert Advisor läuft nicht im "Optimierungs"-Modus, sondern nur auf historischen Daten.

Отладка кода - Разработка программ - MetaTrader 5
Отладка кода - Разработка программ - MetaTrader 5
  • www.metatrader5.com
В MetaEditor встроен отладчик — инструмент, который позволяет проверить работу программы по шагам (по отдельным функциям). Вы расставляете в коде программы точки останова — места, в которых исполнение программы должно быть приостановлено. Затем запускаете программу на обычном графике или в тестере стратегий. Как только исполнение программы...
 
Oldman_Evgeny:

Ein Ratschlag für einen alten Mann...

Aus irgendeinem Grund funktioniert das Drucken beim Debuggen des Expert Advisors nicht.

D.h. es gibt ein Stück Programm:


Und es wird nichts gedruckt. Ich habe sogar if(IsNewBar) entfernt, um bei jedem Tick zu drucken - aber nichts.

Ich habe alle Registerkarten wie "Expert Advisor", "Logs", "Logs" durchgesehen - nichts.

Was ist das Problem? Ich hatte keine Probleme mit MT4, aber ich habe keine Ahnung, was ich mit MT5 machen soll... Ich weiß nicht, wohin ich gehen soll... Ich weiß nicht, wo ich suchen soll...


Ja, der Expert Advisor läuft nicht im "Optimierungs"-Modus, sondern nur auf historischen Daten.

Siehe die Protokolle im Ordner "Tester".

 
Alexey Viktorov:

Siehe die Protokolle im Ordner "Tester".

In den Protokollen des "Tester"-Ordners ist alles Mögliche zu finden, aber der Ausdruck, den ich suche, d.h. vom Programm, ist nicht da...
 
Oldman_Evgeny:
In den Protokollen des "Tester"-Ordners gibt es eine Menge Zeug, aber der Ausdruck, den ich suche, d.h. vom Programm, ist nicht da...

Es gibt auch einen Ordner namens "Agent-127.0.0.1-3000", der ebenfalls Protokolle enthält.

 
Alexey Viktorov:

Es gibt auch einen Ordner "Agent-127.0.0.1-3000", der ebenfalls Protokolle enthält.

Ein Wunder! Entfernt ALLE Protokolle im Tester und Drucken erschien in der Registerkarte "Log". Erstaunlich!

Ich kann mir nicht vorstellen, wie das passiert ist! )))) Aber Tatsache ist: Es wird gedruckt!

Vielen Dank für die Hilfe!

 

Welches Flag sollte gesetzt werden , um eine Datei zu öffnen, um den Expert Advisor auszuführen, der Daten in die Datei im Tester schreibt, so dass nach einem Lauf im Tester die geschriebene Datei im Ordner "MQL5Files" gefunden werden kann?

Ich habe es so versucht: FILE_WRITE|FILE_TXT - ich kann nicht herausfinden, wo der Prüfer die Datei gespeichert hat.

Ich habe es so versucht: FILE_WRITE|FILE_TXT|FILE_COMMON - alles ist wie in der Hilfe beschrieben, ich finde die Datei in "Roaming\MetaQuotes\Terminal\Common\Files".


aber ich will die Datei in "MQL5\Files"!!!

Grund der Beschwerde: