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

 
forexman77:

非常感谢您!它是有效的。

解释mql5的逻辑。在mql4中,int Hour()被用来确定以小时为单位的时间。 在mql5中,没有这样的常数,据我所知。

1.程序如何识别我们要求的是以小时为单位的时间?我想是来自MqlDateTime

2.要将当前时间(分钟)与当前时间(小时)相加,即找出当前时间(分钟),其结构是这样的

1.是

2.对。

 

mql4mql5 重做EA的第二日。

1.我需要找到从1970年1月1日开始的日线开盘时间,单位为秒。我在论坛上发现了这个功能。

//--- переменные для указания параметров функции
int start = 0; // индекс бара
int count = 1; // количество баров
datetime tp[]; // массив, в котором возвращается время баров
//--- копирование времени 
CopyTime(_Symbol,PERIOD_D1,start,count,tp);
//--- вывод результата
Alert(tp[0]);

我不确定这个函数是找到最后一个还是第一个小节的时间。

时间显示为交易日的开始,以日期和时间的形式显示。

我找到了StringToTime函数;它似乎可以满足我的需要,但我尝试了不同的组合,现在我觉得自己就像一只黑猩猩,不明白该按什么按钮来打开苹果的门。

3.我 mql5 没有iBarShift, iLow, iLowest函数。能否请教一下,如何找到每天某段时间的最小值,或者应该用mql5 中的什么函数来解决这个问题?

Документация по MQL5: Преобразование данных / StringToTime
Документация по MQL5: Преобразование данных / StringToTime
  • www.mql5.com
Преобразование данных / StringToTime - Документация по MQL5
 
forexman77:

mql4mql5 重做EA的第二日。

1.我需要找到从1970年1月1日开始的日线开盘时间,单位为秒。在论坛上找到了这个功能。

2.我找到了StringToTime函数,它似乎可以满足我的需要。 但我尝试了不同的组合,现在我觉得自己像一只不知道该按哪个按钮来打开苹果的门的黑猩猩。

我在mql5 中没有iBarShift, iLow, iLowest函数 你能告诉我如何找到每天某段时间的最小值,或者我应该用mql5 中的什么函数来解决这个问题?

1,2.请在此 阅读。

3.在这里 阅读。

 
DC2008:

1,2.在此 阅读。

3.在此 阅读。

关于第二个问题。重新阅读关于日期时间的所有内容。"datetime类型的目的是将日期和时间存储为自1970年1月1日起经过的秒数。"

那为什么在调用警报时说:2013.10.02 00:00:00,而不是说秒数。

 
forexman77:

关于第二个问题。重新阅读关于日期时间的所有内容。"datetime类型的目的是将日期和时间存储为自1970年1月1日起经过的秒数。"

那为什么在调用警报时显示:2013.10.02 00:00:00,而不是秒数。

现在读到这里。为了在警报中输出,你必须将日期时间类型转换为int类型。

 
DC2008:

现在读到这里。为了在警报中输出,你需要将数据时间类型转换为int类型。

我做了一个这样的结构。

int start = 0; // индекс бара
int count = 1; // количество баров
datetime tp[]; // массив, в котором возвращается время баров
//--- копирование времени 
CopyTime(_Symbol,PERIOD_D1,start,count,tp);
//--- вывод результата
int st=tp[0];
Alert("st=",st);

我把它与metatrader 4进行了比较,得到了相同的数字。

但在编译mql5时,该信息是黄色的。

由于类型转换而可能造成的数据损失

我试图这样做。

int start = 0; // индекс бара
int count = 1; // количество баров
datetime tp[]; // массив, в котором возвращается время баров
//--- копирование времени 
CopyTime(_Symbol,PERIOD_D1,start,count,tp);
//--- вывод результата
Alert(IntegerToString(tp[0]));
没有错误。但我不知道在哪里附加IntegerToString来获取数值而不发出警报,因为它将被专家顾问用于计算只是我不明白,它将是一个字符串值,也就是说,它可以作为与另一个数字的比较吗?
 
forexman77:

做了一个这样的结构。

与metatrader 4相比,结果是相同的数字。

除了在编译mql5的时候,消息出来是黄色的。

由于类型转换而可能造成的数据损失

比这更简单!

//--- вывод результата
Alert("st=",(int)tp[0]);
 

你能告诉我,如果我曾经订阅过另一个信号,如何创建一个信号

就是说,我已经退订了它。这真的不可能吗?

在不到2周的时间里赚了100%的钱,但不能与任何人分享(

 
这也是一个有趣的问题
 
DC2008:

比这更简单!

但是,我不仅在Alert中 需要变量 "st",而且在计算中也需要,而且在编译时出现了 "由于类型转换可能导致数据丢失 "的警告。

我想这是因为我得到了一个10位数的数字,而int中的最大值是2 147 483 647,我目前得到的是1 380 758 400。也许使用长的有意义,可能EA在这部分会消耗大量的资源?

Документация по MQL5: Общие функции / Alert
Документация по MQL5: Общие функции / Alert
  • www.mql5.com
Общие функции / Alert - Документация по MQL5