错误、漏洞、问题 - 页 1683

 
在OnBookEvent内部调试时,断点不起作用--BookEvent 事件没有发生(订阅存在)。
 

以下是写在指标代码中的内容。

I.e.Period()返回int(在此为0),而它必须返回ENUM_TIMEFRAMES!同时,_Period正常工作,包含了当前的时间框架(在这里是PERIOD_H1)。这无论如何是一个错误,因为Period()函数的帮助清楚地表明了这一点。

Возвращаемое значение

_Period 变量的内容,它存储了当前图表的时间框架的值。该值可以是 ENUM_TIMEFRAMES枚举 中的一个值

 

将通过MT5构建的独立窗口,看到了什么优势?

 
Vasiliy Sokolov:

以下是写在指标的代码中。

I.e.Period()返回int(在此为0),而它必须返回ENUM_TIMEFRAMES!同时,_Period正常工作,包含了当前的时间框架(在这里是PERIOD_H1)。这在任何情况下都是一个错误,因为Period()函数的帮助明确指出了这一点。

也许没有mql5文件,它的编译和MT4一样?
 
Vasiliy Sokolov:

以下是写在指标代码中的内容。

I.e.Period()返回int(在此为0),而它必须返回ENUM_TIMEFRAMES!同时,_Period正常工作,包含了当前的时间框架(在这里是PERIOD_H1)。这在任何情况下都是一个错误,因为Period()函数的帮助明确指出了这一点。

你把tf作为一个枚举类型。但你把它写进去了。注意把一个枚举值 也写进去。
 
Artyom Trishkin:
Period()的返回类型是ENUM_TIMEFRAMES
 
Комбинатор:
Period()的返回类型是ENUM_TIMEFRAMES

在5中,Period()返回一个枚举,_Period返回一个int。

在Quartet中,预定义的_Period和Period()都是int类型。

由于一个人得到了隐式枚举转换警告,我们得出结论,它是一个四。

 

我怎样才能在OnBookEvent中找出接受玻璃的时间?

你不能用SymbolInfoTick+time_msc来做这个,因为OnBookEvent的调用频率比OnTick高得多。

当然,你可以在OnTick中存储time_msc和GetMicrosecondCount 值。然后在OnBookEvent中,我们将把经过的时间添加到time_msc。但不知怎么搞的,因为OnBookEvent会和OnTick冲突--当一个在运行时,另一个可能在等待。

 

请在专家日志的 "来源 "一栏中不仅添加(发布条目的)程序名称,而且添加它所运行的符号。但也要看程序的类型--指标/顾问/脚本。以及它所运行的图表的句柄(可以是一个弹出信息)。

出于同样的原因(手柄),请在悬停在图表中的书签上时增加一个弹出的手柄编号。

请为打开一个新的图表(连同句柄)和删除一个图表等事件添加日志

 
一个简明扼要的例子,说明了为何约束可以是有用的,以及有时你就是不能没有约束。
void Func( const string &Str ) { } // const - обязателен!

void OnStart() { Func(_Symbol); }