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

 
Vladimir Karputov:

反正OnChartEvent只对当前符号触发--在这种情况下,识别符号就没有意义了:它总是被放置在那里。

第二个方法是绕过所有图表的列表--ObjectFind。

同时,你能告诉我这是什么样的错误吗?

2021.02.02 18:06:55.780 GDICache        pen creation error [87]
2021.02.02 18:06:56.251 GDICache        pen creation error [87]
2021.02.02 18:06:56.556 GDICache        pen creation error [87]
2021.02.02 18:06:56.677 GDICache        pen creation error [87]
2021.02.02 18:06:56.969 GDICache        pen creation error [87]

我发现了其中的原因。在调试过程中,在指定行属性时出现了。线条样式为左值。只是奇怪的是,我没有发现任何地方提到这个错误。

 
Aleksandr Prishenko:

它以前工作得很好。我应该在免费主机上 试一试。总之给了methaquotes 15英镑 ))))

谢谢你的答复

迁移了(后悔了15年),但检查的结果相当奇怪。

迁移程序不理解EA的指标安装路径,必须清理图表。

2021.02.02 19:57:39.442 虚拟主机 6215402: 检查加载 "C:\Users\Crucian\AppData\Roaming\MetaQuotes\Terminal\D0E8209F77C8CF37AD8BF550E51FF075\MQL5\Experts\BBS_9.ex5:: Indicators\Band Width1.ex5"

2021.02.02 19:57:39.442 虚拟主机 6215402: 载入程序失败


Migrator 甚至要求重新编译技术指标 ))。

2021.02.02 19:44:12.708 虚拟主机 6215402: 进口模块 "ZigZag.ex5 "的过时版本应在转移到托管服务器前重新编译。



 
下午好,我看过很多关于如何从指标中建立一个EA或者如何从指标中获取数据到EA的文章。而如何做到相反,如何将一个EA可视化,比如说它已经计算出一个数据阵列,如何将其转移到一个自定义指标
 
VANDER:
下午好,我看过很多关于如何从指标中建立一个EA或者如何从指标中获取数据到EA的文章。而如何做到相反,如何将一个EA可视化,比如说它计算了一个数组的数据,如何将其转移到一个自定义指标

通过一个可插入的.mqh,其中所有的东西都被计算在内,EA从那里得到,而指标...

 

你好!我怎样才能使MT5平台在移动平均线指标中磁化线?为了使趋势线清晰地站起来,并被磁化到指标线上。在图表的平台设置中,有一个 "磁化 "项目,趋势线被放在开盘价上。移动平均线和简单趋势线有这样的方法吗?


 
leonerd:

启动调试器,在类型变量上设置一个断点。我在图表上画了一个三角形(插入-对象-形状-三角形)。按删除键,三角形被删除。我捕捉到一个事件,上面代码中的type总是0。type_str,分别是OBJ_VLINE(枚举的第一个值)。

当一个图形对象的属性被改变或被拖动时,同样的代码会返回OBJ_TRIANGLE作为正确的对象类型。

输出。当删除一个图形对象 时,无法在OnChartEvent中获得对象类型。

目前还不清楚如何获得一个被删除的对象的类型。OnChartEvent()中的对象名称是正确的,但类型总是0。 以上描述的是一个错误,还是应该以其他方式进行?

//+------------------------------------------------------------------+
//| ChartEvent function                                              |
//+------------------------------------------------------------------+
void OnChartEvent(const int id,
                  const long &lparam,
                  const double &dparam,
                  const string &sparam)
  {
   if(id==CHARTEVENT_OBJECT_DELETE)
     {
      string object_name=sparam;
      ENUM_OBJECT object_type=(ENUM_OBJECT)ObjectGetInteger(ChartID(),object_name,OBJPROP_TYPE); // object_type всегда VLINE
     }
  }
 
leonerd:

现在还不清楚如何找出被删除对象的类型。OnChartEvent()中的对象名称是正确的,但类型总是0。 以上描述的是一个错误,还是应该用不同的方法?

ObjectType(sparam)
 
Vitaly Muzichenko:

什么是ObjectType()函数?

这似乎是一个关于MQL5的分支。

很明显,它是这样设计的。被删除对象的其他参数不能被检索到。它只接收名字。坐标等都是零。有什么方法可以从删除图形对象的事件中检索它们吗?

 
leonerd:

什么是ObjectType()函数?

这似乎是一个关于MQL5的分支。

很明显,它是这样设计的。被删除对象的其他参数不能被检索到。它只接收名字。坐标等都是零。有什么办法可以从删除图形对象中获得它们吗?

是的,我在mql5中没有想到,但有一个类似的东西。

ObjectGetInteger(0,name,OBJPROP_TYPE)

你想通过删除事件获得对象的参数,也就是说,在它已经消失之后。

 
leonerd:

什么是ObjectType()函数?

这似乎是一个关于MQL5的分支。

很明显,它是这样设计的。被删除对象的其他参数不能被检索到。它只接收名字。坐标等都是零。是否有办法从删除图形对象的事件中获得它们?

可能,这样的可能性并不存在,也不被期待。毕竟该对象已经存在...

我看到这样的出路:在创建对象 时,在一个数组结构中写下名称和所有需要的参数,在删除时,在读取需要的参数后从数组结构中删除有关记录。