Questions des débutants MQL5 MT5 MetaTrader 5 - page 1029

 
Roman Kutemov:

conseiller comment déterminer le jour dans mt5 ? un analogue de DayOfYear de mt4

c'est la fonction à écrire

si (TimeDayOfYear(transaction_time)==DayOfYear())

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

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

Je l'ai lu, mais je ne sais pas comment le mettre dans le code.

 
Roman Kutemov:

conseiller comment déterminer le jour dans mt5 ? un analogue de DayOfYear de mt4

c'est la fonction à écrire

si (TimeDayOfYear(transaction_time)==DayOfYear())

Exemple de 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());

Il existe deux structuresMqlDateTime-STimeTransaction et STimeCurrent. Dans la structureSTimeTransaction, nous convertissons l'heure de la transaction (transaction_time), et dans la structureSTimeCurrent- la dernière heure connue du serveur commercial.

Ensuite, nous comparons simplement le champday_of_year de ces deux structures(STimeTransaction etSTimeCurrent).

 
Vladimir Karputov:

Exemple de code :

Deux structuresMqlDateTime-STimeTransaction et STimeCurrent. Dans la structureSTimeTransaction, nous convertissons l'heure de la transaction (transaction_time), et dans la structureSTimeCurrent, nous convertissons la dernière heure connue du serveur commercial.

Ensuite, nous comparons simplement le champday_of_year de ces deux structures(STimeTransaction etSTimeCurrent).

cool, merci

 

Un conseil à un vieil homme...

Pour une raison quelconque, l'impression ne fonctionne pas lors du débogage du conseiller expert.

C'est-à-dire qu'il y a un morceau de programme :

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]);
       }


Et ça n'imprime rien. J'ai même supprimé if(IsNewBar) pour imprimer à chaque tick - mais rien.

J'ai regardé dans tous les onglets comme "Expert Advisor", "logs", "logs" - rien.

Quel est le problème ? Je n'avais aucun problème avec MT4, mais je ne sais pas du tout où aller avec MT5... Je ne sais pas où aller... Je ne sais pas où regarder...


Oui, le conseiller expert ne fonctionne pas en mode "optimisation", il fonctionne simplement sur des données historiques.

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

Un conseil à un vieil homme...

Pour une raison quelconque, l'impression ne fonctionne pas lors du débogage du conseiller expert.

C'est-à-dire qu'il y a un morceau de programme :


Et ça n'imprime rien. J'ai même supprimé if(IsNewBar) pour imprimer à chaque tick - mais rien.

J'ai regardé dans tous les onglets comme "Expert Advisor", "logs", "logs" - rien.

Quel est le problème ? Je n'avais aucun problème avec MT4, mais je ne sais pas du tout où aller avec MT5... Je ne sais pas où aller... Je ne sais pas où regarder...


Oui, le conseiller expert ne fonctionne pas en mode "optimisation", il fonctionne simplement sur des données historiques.

Voir les journaux dans le dossier "Tester".

 
Alexey Viktorov:

Voir les journaux dans le dossier "Tester".

Il y a toutes sortes de choses dans les journaux du dossier "Tester", mais l'empreinte que je cherche, c'est-à-dire celle du programme, n'est pas là...
 
Oldman_Evgeny:
Les journaux du dossier "Tester" sont remplis de toutes sortes de choses, mais l'impression que je cherche, c'est-à-dire celle du programme, n'est pas là...

Il y a également un dossier appelé "Agent-127.0.0.1-3000" qui contient également des journaux.

 
Alexey Viktorov:

Il y a aussi un dossier "Agent-127.0.0.1-3000" avec des journaux dedans aussi.

Miracle ! J'ai supprimé TOUS les journaux dans le testeur et l'impression est apparue dans l'onglet "Journal". Incroyable !

Je ne peux pas imaginer comment c'est arrivé ! )))) Mais le fait est qu'il s'imprime !

Merci pour votre aide !

 

Quel drapeau doit être défini pour ouvrir un fichier afin que le conseiller expert commence à écrire des données dans le fichier dans le testeur, de sorte qu'après une exécution dans le testeur, le fichier écrit puisse être trouvé dans le dossier "MQL5\Files" ?

J'ai essayé de cette manière : FILE_WRITE|FILE_TXT - je ne trouve pas où le testeur a enregistré le fichier.

J'ai essayé de cette façon : FILE_WRITE|FILE_TXT|FILE_COMMON - tout est comme décrit dans l'aide, je trouve le fichier dans "Roaming\MetaQuotes\Terminal\Common\Files".


mais je veux le fichier dans "MQL5\Files" ! !!