초보자의 질문 MQL5 MT5 MetaTrader 5 - 페이지 1029

 
Roman Kutemov :

mt5에서 날짜를 결정하는 방법을 알려주세요. mt 4에서 DayOfYear의 아날로그

쓰는 기능입니다

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

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

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

읽었는데 마음만으론 부족해 코드로 어떻게 쓰는지

 
Roman Kutemov :

mt5에서 날짜를 결정하는 방법을 알려주세요. mt 4에서 DayOfYear의 아날로그

쓰는 기능입니다

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 구조 - STimeTransactionSTimeCurrent . 트랜잭션 시간(transaction_time)을 STimeTransaction 구조로 변환하고 거래 서버의 마지막 알려진 시간을 STimeCurrent 구조로 변환합니다.

그런 다음 이 두 구조( STimeTransaction STimeCurrent )에 대한 day_of_year 필드를 비교합니다.

 
Vladimir Karputov :

코드 예:

두 개의 MqlDateTime 구조 - STimeTransactionSTimeCurrent . 트랜잭션 시간(transaction_time)을 STimeTransaction 구조로 변환하고 거래 서버의 마지막 알려진 시간을 STimeCurrent 구조로 변환합니다.

그런 다음 이 두 구조( STimeTransaction STimeCurrent )에 대한 day_of_year 필드를 비교합니다.

멋진, 감사합니다

 

말해봐, 제발, 노인 ...

어떤 이유로 EA를 디버깅 할 때 인쇄가 작동하지 않습니다.

저것들. 프로그램의 일부가 있습니다.

 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)를 제거했습니다. 아무 것도 없습니다.

"전문가", "로그", "로그"와 같은 모든 탭이 검색되었습니다.

무슨 일이야? MT4에서는 문제가 없었는데 MT5에서는 어디로 달려야 할지 모르겠고... 어디를 봐야할지...


예, "최적화" 모드에서 EA를 실행하지 않고 기록 데이터에서 실행 중입니다.

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

말해봐, 제발, 노인 ...

어떤 이유로 EA를 디버깅 할 때 인쇄가 작동하지 않습니다.

저것들. 프로그램의 일부가 있습니다.


아무데도 아무 것도 인쇄되지 않습니다. 그리고 모든 틱에 인쇄되도록 if(IsNewBar)를 제거했습니다. 아무 것도 없습니다.

"전문가", "로그" "로그"와 같은 모든 탭을 살펴보았지만 아무데도 없습니다.

무슨 일이야? MT4에서는 문제가 없었는데 MT5에서는 어디로 달려야 할지 모르겠고... 어디를 봐야할지...


예, "최적화" 모드에서 EA를 실행하지 않고 기록 데이터에서 실행 중입니다.

"Tester" 폴더의 로그를 참조하십시오.

 
Alexey Viktorov :

"Tester" 폴더의 로그를 참조하십시오.

"Tester" 폴더의 로그에는 여러 가지가 있지만 내가 찾고 있는 인쇄물, 즉 프로그램에서, 아니 ...
 
Oldman_Evgeny :
"Tester" 폴더의 로그에는 여러 가지가 있지만 내가 찾고 있는 인쇄물, 즉 프로그램에서, 아니 ...

그 안에 "Agent-127.0.0.1-3000" 폴더도 있고, 로그도 있습니다.

 
Alexey Viktorov :

그 안에 "Agent-127.0.0.1-3000" 폴더도 있고, 로그도 있습니다.

불가사의! 테스터에서 모든 로그를 제거했고 인쇄가 "저널" 탭에 나타났습니다. 불가사의!

그것이 어떻게 일어났는지 - 나는 결코 알지 못할 것입니다!)))) 그러나 사실 - 인쇄합니다!

도와 주셔서 감사합니다!

 

테스터에서 실행한 후 작성된 파일을 "MQL5\Files" 폴더에서 찾을 수 있도록 테스터 의 파일에 데이터를 쓰는 Expert Advisor를 시작하기 위해 어떤 파일 열기 플래그 를 설정해야 하는지

나는 이것을 시도했다: FILE_WRITE|FILE_TXT - 테스터가 파일을 저장한 위치를 전혀 찾을 수 없다

이것을 시도했습니다: FILE_WRITE|FILE_TXT|FILE_COMMON - 모든 것이 도움말과 같습니다. "Roaming\MetaQuotes\Terminal\Common\Files"에서 파일을 찾았습니다.


하지만 "MQL5\Files"에 파일이 필요합니다!!!

사유: