错误、漏洞、问题 - 页 202

 
Interesting:

现在,与MT4不同的是,周期并不是指一个时期内的秒数。

请仔细阅读,我写的是_Period,而不是PeriodSeconds。请不要用你的认知错误来扰乱页面。
[删除]  
ANG3110:
它从来没有显示过秒数,即使在MT4亲爱的...但在MT4中的分钟,它显示得很清楚。那么H1图表上的_Period显示什么?对我来说,这似乎是一个严重的错误。
ANG3110
仔细阅读,我写的是_Period,不是PeriodSeconds。请不要用你的认知错误堵塞页面。
已经修好了。总的来说,使用 PeriodSeconds,我们可以准确地得到一个时期内的秒数,然后对它们做任何你喜欢的事情。

所以H1=16385并不是无稽之谈,它是ENUM_TIMEFRAMES 中H1的数字表示。


阅读Period-u帮助

期间

返回当前图表的时间框架值。

ENUM_TIMEFRAMESPeriod()。

返回的值

_Period 变量的内容,持有当前图表的时间框架值。值可以是 ENUM_TIMEFRAMES的一个 枚举 值。

PS

因此,它返回的不是与周期相对应的分钟数(如在MT4中),而是 枚举ENUM_TIMEFRAMES的元素 (或其数字表示,如果需要)...

 
Interesting:
已经纠正了。总的来说,使用 PeriodSeconds,我们可以准确地得到一个周期中的秒数,然后对它们做任何你想做的事情。

所以H1=16385并不是无稽之谈,而是ENUM_TIMEFRAMES 中H1的一个数字表示。

该死的,真是一团糟。早些时候,一切都很简单和容易--只要写出Period(),你就能得到几分钟。现在你得到了一些你的工作并不真正需要的服务标识符。 好吧,我试着用几秒钟得到几分钟。
 

那么,如果我在H1上请求_Period,得到这个ENUM_TIMEFRAMES= 16385,我怎么能从中得到分钟呢?

当然,除以PeriodSeconds()/60是没有任何价值的。但这些标识符是什么,如何与之配合?

[删除]  
ANG3110:

那么,如果我在H1上请求_Period,得到这个ENUM_TIMEFRAMES= 16385,我怎么能从中得到分钟呢?

我在我的迁移库中使用这个功能已经有11个月了,到目前为止,它运行良好。

//Fumction PeriodToMinute
int PeriodToMinute(ENUM_TIMEFRAMES Value)
{
//----------------------------------------------------------------------------//
//Work variables
int Result; //Returned importance
//----------------------------------------------------------------------------//
Result = PeriodSeconds(Value)/60;
//----------------------------------------------------------------------------//
return(Result);
//----------------------------------------------------------------------------//
}

ANG3110

当然,你应该把PeriodSeconds()/60除以自己。但仍然是,这些是什么样的标识符,以及如何使用它们。

这个问题可以参考OOP的基础知识。它涉及标识符和枚举器。详情请参考参考资料或任何关于C++编程的好书。

这在MQL4中已经实现了,但不是那么明显。

每个标识符(无论是在MQL5中编写还是由用户创建)都可以有自己的 "数字表示"。

简单地说(我在尽力解释)......

你可能认为这是为了与外部环境兼容,例如DLL或其他(不知道MQL及其标识符的)。

因此,如果你需要在MQL5程序中使用一个周期,那么使用ENUM_TIMEFRAMES 枚举的标识符PERIOD_H1 是合理的。

但是如果你需要告诉外部环境(例如DLL)我们正在使用H1期,那么用这个标识符的数字表示就比较容易,在我们的例子中是16385

 
ANG3110:

那么,如果我在H1上请求_Period,得到这个ENUM_TIMEFRAMES= 16385,我怎么能从中得到分钟呢?

当然,除以PeriodSeconds()/60是没有任何价值的。但这些标识符是什么,我应该如何使用它们?

像这样

int minute = PeriodSeconds(_Period)/60;
 
Interesting:

我在我的迁移库中使用这个功能已经11个月了,到目前为止,它一直很好。

明白了。谢谢你的答复
 
sergey1294:

像这样

也谢谢你!
[删除]  

开发人员。

1.在某些情况下,OHLC字符串开始眨眼。在单核计算机上测试EA 时发现的(CPU可能超载)...

2.是否可以像Delphi那样,将类的列表和它们的功能(填料)放在导航器中(因为使用模块的程序和功能列表不是很方便)?

 
Ashes:

试图将测试员报告保存为Open XML格式。等待了几分钟(奔腾4,3.0GHz),应用程序没有反应,任务管理器显示terminal.exe进程(约占CPU的50%)占用了操作内存(约250Mb),结果--什么也没有。MT5只有反应,没有报价进来(连接状态指标为灰色旋转圆圈)。再试一次,也是如此。窗口 "Tools "有2个日志条目 "MemoryException 107878464 bytes not available",该时间对应于试图接收OpenXML的报告。
HTML文件几乎是瞬间生成的(约12Mb)。打开需要很长的时间,但这不是MT5的错...

我重复一遍。都是一样的,但要建立358。只是这需要更多的时间。对报告的大小有依赖性--短报告的处理没有问题。