错误、漏洞、问题 - 页 1178

 
svds75:
不,我需要手动设置并以编程方式检查。
然后我必须读取可见性标志,并与常数做逻辑&。
 

像这样。

   long cf=ObjectGetInteger(0,"name",OBJPROP_TIMEFRAMES);
   Alert(((cf&OBJ_PERIOD_H1)==OBJ_PERIOD_H1) || cf==0);
如果H1上的可见性标志 被设置,它将为真。
 
Integer:
然后你必须读取可见性标志,并对常数做逻辑&。

如果你的意思是

ObjectGetInteger(0,"line",OBJPROP_TIMEFRAMES,OBJ_PERIOD_W1&OBJ_PERIOD_MN1,res);

ObjectGetInteger(0,"line",OBJPROP_TIMEFRAMES,OBJ_PERIOD_W1&&OBJ_PERIOD_MN1,res);
同样的事情。
 
svds75:

如果你的意思是

同样的事情。
没有。没有必要用枚举做得到。只要得到,然后检查所需的时间框架标志是否被设置。以上是一个例子。
 
svds75:

如果你的意思是

同样的事情。

你在这里的错误是bool(res),因为在任何映射中,res总是大于1,看res中返回什么,因此bool(res)只有在res=0时才会返回0或假。

你在使用类型转换和比较的时候不注意。

OBJ_NO_PERIODS

0

物体在任何时间段都不显示

OBJ_PERIOD_M1

0x00000001

对象是在1分钟图表上绘制的

OBJ_PERIOD_M2

0x00000002

对象是在2分钟图表上绘制的

OBJ_PERIOD_M3

0x00000004

对象绘制在3分钟图表上

OBJ_PERIOD_M4

0x00000008

对象是在4分钟图表上绘制的

OBJ_PERIOD_M5

0x00000010

对象绘制在5分钟图表上

OBJ_PERIOD_M6

0x00000020

对象绘制在6分钟图表上

OBJ_PERIOD_M10

0x00000040

对象绘制在10分钟的图表上

OBJ_PERIOD_M12

0x00000080

对象绘制在12分钟的图表上

OBJ_PERIOD_M15

0x00000100

对象绘制在15分钟的图表上

OBJ_PERIOD_M20

0x00000200

对象绘制在20分钟的图表上

OBJ_PERIOD_M30

0x00000400

对象绘制在30分钟的图表上

OBJ_PERIOD_H1

0x00000800

对象是在1小时图上绘制的

OBJ_PERIOD_H2

0x00001000

对象是在2小时图上绘制的

OBJ_PERIOD_H3

0x00002000

物体被绘制在3小时的图表上

OBJ_PERIOD_H4

0x00004000

物体被绘制在4小时的图表上

OBJ_PERIOD_H6

0x00008000

物体被绘制在6小时的图表上

OBJ_PERIOD_H8

0x00010000

物体被绘制在8小时图上

OBJ_PERIOD_H12

0x00020000

物体被绘制在12小时图上

OBJ_PERIOD_D1

0x00040000

对象是在日线图上绘制的

OBJ_PERIOD_W1

0x00080000

对象是在周线图上绘制的

OBJ_PERIOD_MN1

0x00100000

物体被绘制在月度图表上

obj_all_periods

0x001fffff

对象在所有的时间 框架上都被绘制出来了

 
Integer:

你去吧。

如果H1上的可见性标志 被设置,它将为真。
它的工作,谢谢你。
 
meat:

作为我上一篇文章的继续,我设法用科学的方法找到了导致该错误的问题区域。

我们有这样一个库,有这样一个功能。

这里是主文件。

结果专家顾问不能工作,并在日志中显示:"EX5加载失败"。

谢谢你的帖子,它已被修复。
 

你好。我在OnInit函数中锁定了EA,可能是因为这个原因,当我关闭EA并改变时间框架时,终端会挂起(刹车后时间框架不会改变)。所以我的问题是:它是由挂机引起的吗?如果是这样,如果我把算法移到OnTick,是否就能纠正?如果没有,什么会有帮助?

PS:该循环有一个函数 "睡眠",这样终端就不会过载。输入字段 在循环中被读取。

 
king20:

你好。我在OnInit函数中锁定了EA,这一定是我关闭EA并改变时间框架时终端挂起的原因(刹车后时间框架没有改变)。所以我的问题是:它是由挂机引起的吗?如果是这样,如果我把算法移到OnTick,是否就能纠正?如果没有,什么会有帮助?

PS:该循环有一个函数 "睡眠",这样终端就不会过载。输入字段 在循环中被读取。

格式化硬盘。
 
king20:

你好。我在OnInit函数中锁定了EA,这一定是我关闭EA和改变时间框架时终端挂起的原因(刹车后时间框架没有改变)。所以我的问题是:它是由挂机引起的吗?如果是这样,如果我把算法移到OnTick,是否就能纠正?如果没有,什么会有帮助?

PS:该循环有一个函数 "睡眠",这样终端就不会过载。输入字段 在循环中被读取。

OnInit - 仅用于初始化。所有的计算必须进一步进行--OnTick、OnTimer等。

如果你需要知道输入字段的变化,有一个标准库可以做到:https://www.mql5.com/ru/docs/standardlibrary/controls/cedit

Документация по MQL5: Стандартная библиотека / Классы для создания панелей и диалогов / CEdit
Документация по MQL5: Стандартная библиотека / Классы для создания панелей и диалогов / CEdit
  • www.mql5.com
Стандартная библиотека / Классы для создания панелей и диалогов / CEdit - справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5