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

 
ramis866:
谁能告诉我如何使用EA?
见帮助:设置和运行EA
 
伙计们!当时间框架改变时,EA会重新启动。因此,它将其所有绘制的图形返回到默认视图。我怎样才能防止在我改变时间框架时重新启动?
 
net:
伙计们!当我们改变时间框架时,EA被重新启动。因此,它将所有绘制的图表返回到其默认的外观。当我改变时间框架时,我怎样才能禁止重新启动?

是否应该纠正专家顾问中的一个细微差别,使其绘制的图表在改变TF后能正确显示?

 
net:
伙计们!当你改变时间框架时,专家顾问会被重新启动。因此,它将其所有绘制的图表返回到默认视图。当我改变时间框架时,我怎样才能禁止重新启动?

你不能禁止它。还有,是否有必要保存图表?毕竟,对于图表的每个时间框架,所有的构造都会有很大的不同。以图表不同时间框架上的MACD指标为例而如果需要绘制图表,你需要改变专家顾问的逻辑

专家顾问和指标必须在图表周期变化后重新启动 - 这是函数OnInit()的逻辑 - Init事件的处理程序。

啟動

在客户终端加载程序(专家顾问或自定义指标)并开始初始化全局变量后,将立即发送一个Init事件,如果有OnInit() 函数,则由其处理。在证券和/或图表周期变化后,在MetaEditor中重新编译程序后,在改变专家顾问或自定义指标设置窗口的输入参数后,也会产生这一事件。专家顾问在账户改变后也会被初始化。脚本不产生初始事件。

 
barabashkakvn:

你不能禁止它。还有,是否有必要保存图表?毕竟,对于图表的每个时间框架,所有的构造都会有很大的不同。以图表不同时间框架上的MACD指标为例而如果需要绘制图表,你需要改变专家顾问的逻辑

专家顾问和指标必须在图表周期变化后重新启动 - 这是函数OnInit()的逻辑 - Init事件的处理程序。

我并不完全同意。当然,重新启动是必要的,但为了节省资源,特别是对于具有大量图形对象 的多时态指标/顾问,这是必要的--你可以绕过初始化的某些部分,特别是对已经建立的重新计算。也就是说,如果按照逻辑(我个人认为是正确的),在去初始化之后,图形结构被删除,那么应该处理TF变化的原因(不删除结构)。如果你愿意,最好通过TF来调整对象的可见性,而不需要重建对象本身。
 
Tapochun:
我不太同意。当然,有必要重新启动,但为了节省资源,只是对于有大量图形对象 的多时空指标/顾问 - 你可以绕过初始化的某些部分,特别是重新计算已经建立的。也就是说,如果按照逻辑(我个人认为是正确的),在去初始化之后,图形结构被删除,那么应该处理TF变化的原因(不删除结构)。如果你愿意,最好通过TF来调整对象的可见性,而不需要重建对象本身。
一切都掌握在程序员的手中。
 

你能告诉我如何从iCustom缓冲区中找到double类型 的变量的最小值吗,有8个。

我想这个问题可以通过数组来解决,但如何写我就不知道了。

求助!

 

大家好,无论是自由职业者还是专业人士,我没有时间重新阅读论坛的所有回忆录,静静地按跑酷的原则学习MQ.............

Vobsobschestvya目前的问题:我从例子中下载了面板,在我的EA中进行了调整,现在的任务是在设置中启用和禁用这个面板。

所以在代码中

我写的是变量。

输入 bool vkl =false;//删除面板

我进一步解释

如果 //

//+------------------------------------------------------------------+
//| Expert deinitialization function                                 |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
  {
//--- Вывести в журнал причину деинициализации
   Print(GetDeinitReasonText(reason));
//--- При удалении с графика
   if(reason==REASON_REMOVE)
      //--- Удалить все объекты с графика, которые относятся к информационной панели   
      DeleteInfoPanel();
      
     
  }

DeleteInfoPanel()

如果(vkl=false)。

----------------

然后是一个错误或其他他不理解我的东西))

如果你知道如何通过实例来正确操作,或者告诉我在哪里可以找到一个有实例的文件

附加的文件:
 
alhoya:

你能告诉我如何从iCustom缓冲区中找到double类型 的变量的最小值吗,有8个。

我想这个问题可以通过数组来解决,但如何写我就不知道了。

求助!

在你使用iCustom获得自定义指标的句柄后,你使用OnCalculate()中的CopyBuffer将自定义指标的分析缓冲区的值复制到你的缓冲区。剩下的就是使用ArrayMinimum找到你的缓冲区中的最小值。
 
aleks557:

...

为了删除某些东西,必须先创建它

void DeleteInfoPanel()
  {
   DeleteObjectByName("InfoPanelBackground");   // Удалить фон панели
   DeleteObjectByName("InfoPanelHeader");       // Удалить заголовок панели
//--- Удалить свойства позиции и их значения

还有一件事:当你改变EA属性时(在输入参数中你设置了条件为真--你想删除EA),这个条件将不会让你删除面板。

void OnDeinit(const int reason)
  {
//--- Вывести в журнал причину деинициализации
   Print(GetDeinitReasonText(reason));
//--- При удалении с графика
   if(reason==REASON_REMOVE)
      //--- Удалить все объекты с графика, которые относятся к информационной панели   
      DeleteInfoPanel();

  }

这个条件只有在你从图表中删除专家顾问时才会起作用。