Perguntas de Iniciantes MQL5 MT5 MetaTrader 5 - página 1029

 
Roman Kutemov:

aconselhar como determinar o dia em mt5 ? um análogo de DayOfYear de mt4

esta é a função de escrever

se (TimeDayOfYear(transaction_time)==DayOfYear())

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

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

Já li isso, só não sei como o colocar no código

 
Roman Kutemov:

aconselhar como determinar o dia em mt5 ? um análogo de DayOfYear de mt4

esta é a função de escrever

se (TimeDayOfYear(transaction_time)==DayOfYear())

Exemplo de código:

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

Existem duas estruturasMqlDateTime-STimeTransaction e STimeCurrent. Na estruturaSTimeTransaction convertemos o tempo de transacção (transaction_time), e na estruturaSTimeCurrent- último tempo conhecido do servidor comercial.

Depois basta comparar o campodia_do_ano destas duas estruturas(STimeTransaction eSTimeCurrent)

 
Vladimir Karputov:

Exemplo de código:

Duas estruturasMqlDateTime-STimeTransaction e STimeCurrent. Na estruturaSTimeTransaction convertemos o tempo de transacção (transaction_time), e na estruturaSTimeCurrent convertemos o último tempo conhecido do servidor comercial.

Depois, basta comparar o campodia_do_ano destas duas estruturas(STimeTransaction eSTimeCurrent)

fixe, obrigado

 

Um conselho a um homem velho...

Por alguma razão, a impressão não funciona quando se depura o Expert Advisor.

Isto é, há uma parte do programa:

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


E não imprime nada. Eu até removi se(IsNewBar) para imprimir em cada tic - mas nada.

Procurei em todos os separadores como "Expert Advisor", "logs", "logs" - nada.

Qual é o problema? Não tive problemas com o MT4, mas não tenho ideia para onde ir com o MT5... Não sei para onde ir... Não sei para onde procurar...


Sim, o Expert Advisor não está a funcionar em modo "optimização", está apenas a funcionar com dados históricos

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

Um conselho a um homem velho...

Por alguma razão, a impressão não funciona quando se depura o Expert Advisor.

Isto é, há uma parte do programa:


E não imprime nada. Eu até removi se(IsNewBar) para imprimir em cada tic - mas nada.

Procurei em todos os separadores como "Expert Advisor", "logs", "logs" - nada.

Qual é o problema? Não tive problemas com o MT4, mas não tenho ideia para onde ir com o MT5... Não sei para onde ir... Não sei para onde procurar...


Sim, o Expert Advisor não está a funcionar em modo "optimização", está apenas a funcionar com dados históricos

Ver os registos na pasta "Testador".

 
Alexey Viktorov:

Ver os registos na pasta "Testador".

Há todo o tipo de coisas nos registos da pasta "Testador", mas a impressão que procuro, isto é, do programa, não está lá...
 
Oldman_Evgeny:
Há muitas coisas nos registos da pasta "Testador", mas a impressão que procuro, isto é, do programa, não está lá...

Há também uma pasta chamada "Agent-127.0.0.1-3000" que também tem registos.

 
Alexey Viktorov:

Há também uma pasta "Agent-127.0.0.1-3000" com registos nela também.

Milagre! Removido TODOS os registos no testador e a impressão apareceu no separador "Registo". Incrível!

Não consigo imaginar como isso aconteceu! )))) Mas o facto é que - imprime!

Obrigado pela ajuda!

 

Que bandeira deve ser colocada para abrir um ficheiro para executar o Expert Advisor, que escreve os dados no ficheiro no testador, para que depois de uma execução no testador o ficheiro escrito possa ser encontrado na pasta "MQL5\Files"?

Tentei desta forma: FILE_WRITE|FILE_TXT - não consigo encontrar onde o testador guardou o ficheiro.

Tentei desta forma: FILE_WRITE|FILE_TXT|FILE_COMMON - tudo é como descrito na Ajuda, encontro o ficheiro em "Roaming\MetaQuotes\Terminal\Files".


mas eu quero o ficheiro em "MQL5\Files" !!!

Razão: