Вопросы от начинающих MQL5 MT5 MetaTrader 5 - страница 1029

 
Roman Kutemov:

подскажите как в мт5 определить день ? аналог DayOfYear из мт 4

вот такую функцию надо написать 

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

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

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

я это читал, только ума не хватает, как в коде записать

 
Roman Kutemov:

подскажите как в мт5 определить день ? аналог DayOfYear из мт 4

вот такую функцию надо написать 

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

Пример кода:

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

Две структуры MqlDateTime - STimeTransaction и STimeCurrent. В структуру STimeTransaction конвертируем время транзакции (transaction_time), а в структуру STimeCurrent последнее известное время торгового сервера.

Потом просто у этих двух структуру (STimeTransaction и STimeCurrent) сравниваем поле day_of_year

 
Vladimir Karputov:

Пример кода:

Две структуры MqlDateTime - STimeTransaction и STimeCurrent. В структуру STimeTransaction конвертируем время транзакции (transaction_time), а в структуру STimeCurrent последнее известное время торгового сервера.

Потом просто у этих двух структуру (STimeTransaction и STimeCurrent) сравниваем поле day_of_year

круто, благодарю

 

Подскажите, плз, старику...

Почему-то не работает печать при отладке эксперта.

Т.е. есть кусок программы:

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


И никуда, ничего не печатает. И if(IsNewBar) убирал, чтоб на каждом тике печатало - нет ничего.

Все вкладки типа "эксперт", "журналы" "логи" просмотрел - нет нигде.

В чем дело? на  МТ4 проблем не было, а на МТ5 не знаю куда бечь... и куда смотреть...


Да, эксперт гоняю не в режиме "оптимизация", а просто прогон на исторических данных

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

Подскажите, плз, старику...

Почему-то не работает печать при отладке эксперта.

Т.е. есть кусок программы:


И никуда, ничего не печатает. И if(IsNewBar) убирал, чтоб на каждом тике печатало - нет ничего.

Все вкладки типа "эксперт", "журналы" "логи" просмотрел - нет нигде.

В чем дело? на  МТ4 проблем не было, а на МТ5 не знаю куда бечь... и куда смотреть...


Да, эксперт гоняю не в режиме "оптимизация", а просто прогон на исторических данных

Смотрите логи в папке "Tester".

 
Alexey Viktorov:

Смотрите логи в папке "Tester".

В логах папки "Tester" много всякого разного, но той печати, что я ищу, т.е. из программы, нет...
 
Oldman_Evgeny:
В логах папки "Tester" много всякого разного, но той печати, что я ищу, т.е. из программы, нет...

Там есть ещё папка "Agent-127.0.0.1-3000" в ней тоже логи есть.

 
Alexey Viktorov:

Там есть ещё папка "Agent-127.0.0.1-3000" в ней тоже логи есть.

Чудеса! Поудалял ВСЕ логи в tester и печать  появилась во вкладке "Журнал". Чудеса!

Как это получилось - ума не приложу!)))) Но факт - печатает!

Спасибо за помощь!

 

какой флаг открытия файла нужно выставить, чтобы запустить эксперта пишущего в файл данные в тестере, чтобы после прогона в тестере записанный файл найти в папке "MQL5\Files"

пробовал так: FILE_WRITE|FILE_TXT  - вообще не найду где тестер сохранил файл

пробовал так: FILE_WRITE|FILE_TXT|FILE_COMMON - все как в справке, нахожу файл в "Roaming\MetaQuotes\Terminal\Common\Files"


но хочу файл в "MQL5\Files" !!!

Причина обращения: