错误、漏洞、问题 - 页 2177

 
Konstantin Nikitin:

弦乐到时间

非常感谢您!
 
Maxim Khrolenko:
非常感谢!

缓慢得可怕,而且不是处理字符串变量转换的最佳方式。

你有上面的答案。

关于交易、自动交易系统和交易策略测试的论坛

虫子、虫子、问题

Alexey Viktorov, 2018.03.30 19:30

填充MqlDateTime结构并从中获得完整的日期和时间。


 
Maxim Khrolenko:
非常感谢您!

我们不寻求简单的方法。办法是......。

 
Alexey Viktorov:

我们不是在寻找一个简单的出路。办法是......。

给他写个小例子;)

 
Alexey Viktorov:

填入MqlDateTime结构,并从中获取完整的日期和时间。

看看它在代码中是如何工作的,很有意思

 
Artyom Trishkin:

给他写个小例子;)

有人说

关于交易、自动交易系统和交易策略测试的论坛

虫子,虫子,问题

Maxim Khrolenko, 2018.03.30 18:49

我找不到答案,如何在6个int类型的变量(年、月、日、小时、分钟)的基础上,将与给定参数相对应的时间值写入一个datetime类型 的变量中?然后我需要找到当时打开的蜡烛的索引,但这对我来说不是问题。如果谁有能找到答案的链接,请告诉我,我自己会想办法。

MqlDateTime dateTime;

dateTime.year = 2018;
dateTime.mon = 3;
dateTime.day = 30;
dateTime.hour = 21;
dateTime.min = 15;

datetime _Time = StructToTime(dateTime);
 
Alexey Viktorov:

有人说。


那是一周中的哪一天 呢?你检查过吗?只是想知道它是否在转换过程中自己计算。

即使是这两个:星期和年的日期

 
Artyom Trishkin:

今天是什么日子?你检查过吗?我只是想知道它是否在转换过程中自己计算,或者不计算。

甚至是这两个:星期的日和年的日。

如果你事后把它放回结构中。

  TimeToStruct(_Time, dateTime);

它将显示所有权利。

一周的日子 = 5

年的一天 = 88

 
Artyom Trishkin:

今天是什么日子?你检查过吗?只是好奇它是否在转换过程中自行计算。

即使是这两个:星期和年的日期


void OnStart()
  {
//---
   MqlDateTime timeDate, time;
   
   timeDate.year=2018;
   timeDate.day_of_year=32;
   
   datetime date1=StructToTime(timeDate);
   Print("День года - ",timeDate.day_of_year);
   
   time.year=2018;
   time.mon=2;
   time.day=1;
   time.hour=0;
   time.min=0;
   
   datetime date2=StructToTime(time);
   Print("День года - ",time.day_of_year);
  }

День года - 879007969
День года - 32



当day_of_year被填入时,它就不起作用了(

 


一个非常奇怪的22秒的停顿。谁能解释它?

//+------------------------------------------------------------------+
//|                                                      BagBars.mq5 |
//|                        Copyright 2018, MetaQuotes Software Corp. |
//|                                             https://www.mql5.com |
//+------------------------------------------------------------------+

void OnStart()
  {
   datetime Arr[];
   if(CopyTime(_Symbol,PERIOD_H4,0,1,Arr)<0) Print("Ошибка");
   Print("1 "+TimeToString(Arr[0])+" CurrentTime = "+TimeToString(TimeCurrent()));
   
   int Res=::Bars(_Symbol,PERIOD_W1,Arr[0],TimeCurrent());  // выполнение происходит 22 секунды!!!
   
   Print("2 CurrentTime = "+TimeToString(TimeCurrent()));
  }
//+------------------------------------------------------------------+

结果。

2018.03.30 16:37:16.941 BagBars (EURUSD,W1)     1 2018.03.30 20:00 CurrentTime = 2018.03.30 23:37
2018.03.30 16:37:38.862 BagBars (EURUSD,W1)     2 CurrentTime = 2018.03.30 23:37