初学者的问题 MQL5 MT5 MetaTrader 5 - 页 1029

 
Roman Kutemov:

建议如何在mt5中确定日期? 与mt4中的DayOfYear相似。

这是要写的函数

如果(TimeDayOfYear(transaction_time)==DayOfYear())

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

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

我已经看过了,只是不知道如何把它放在代码中

 
Roman Kutemov:

建议如何在mt5中确定日期? 与mt4中的DayOfYear相似。

这是要写的函数

如果(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。在STimeTransaction 结构中,我们转换交易时间(transaction_time),而在STimeCurrent 结构中--交易服务器的最后已知时间。

然后我们简单地比较这两个结构(STimeTransactionSTimeCurrent)的day_of_year 字段。

 
Vladimir Karputov:

示例代码。

两个MqlDateTime 结构--STimeTransactionSTimeCurrent。在STimeTransaction 结构中,我们转换交易时间(transaction_time),而在STimeCurrent 结构中,我们转换交易服务器的最后已知时间。

然后,我们简单比较这两个结构(STimeTransactionSTimeCurrent)的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),以便在每个tick上打印 - 但什么也没有。

我看了所有的标签,如 "专家顾问"、"日志"、"日志"--什么都没有。

有什么问题吗? 我使用MT4没有问题,但我不知道MT5该怎么做......我不知道该去哪里......我不知道该去哪里寻找......。


是的,专家顾问没有在 "优化 "模式下运行,它只是在历史数据上运行。

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

对一个老人的忠告......

由于某些原因,在调试专家顾问 时,打印不起作用。

也就是有一块程序。


而且它没有打印任何东西。我甚至删除了if(IsNewBar),以便在每个tick上打印 - 但什么也没有。

我看了所有的标签,如 "专家顾问"、"日志"、"日志"--什么都没有。

有什么问题吗? 我使用MT4没有问题,但我不知道MT5该怎么做......我不知道该去哪里......我不知道该去哪里寻找......。


是的,专家顾问没有在 "优化 "模式下运行,它只是在历史数据上运行。

见 "Tester "文件夹中的日志。

 
Alexey Viktorov:

见 "Tester "文件夹中的日志。

在 "测试者 "文件夹的日志中,有各种各样的东西,但我要找的打印,即来自程序的打印,并不在那里......
 
Oldman_Evgeny:
测试仪 "文件夹的日志中充满了各种各样的东西,但我要找的打印结果,即来自程序的打印结果却不在那里......

还有一个名为 "Agent-127.0.0.1-3000 "的文件夹,也有日志。

 
Alexey Viktorov:

还有一个文件夹 "Agent-127.0.0.1-3000",里面也有日志。

奇迹!删除了测试器中的所有日志,打印出现在 "日志 "标签中。惊人的!

我无法想象它是如何发生的!))))但事实是--它可以打印

谢谢你的帮助!

 

应该设置什么标志来打开一个文件 来运行专家顾问,它在测试器中 的文件中写入数据,以便在测试器中运行后,可以在 "MQL5\Files "文件夹中找到写入的文件?

我试着这样做:FILE_WRITE|FILE_TXT - 我找不到测试者保存文件的地方。

我试着这样做:FILE_WRITE|FILE_TXT|FILE_COMMON--一切如帮助中所述,我在 "Roaming\MetaQuotes\Terminal\Common\Files "中找到了这个文件。


但我想要的是 "MQL5\Files "中的文件!!。