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

 

MqlRates rates[];

rates[0].open>rates[0].close

请告知如何在当前的时间框架和另外几个时间框架上同时检查这个条件,两个、三个、五个。它是如何影响测试性能的? 我很乐意收到一个多框架EA或MT5指标的链接。

 
Николай К:

MqlRates rates[];

rates[0].open>rates[0].close

请告知如何在当前的时间框架和另外几个时间框架上同时检查这个条件,两个、三个、五个。它是如何影响测试性能的? 我很乐意收到一个多框架EA或MT5指标的链接。

每个TF的数组rate_tf_**[]和每个TF的CopyRates也到相应的结构数组。它如何影响测试的速度......这是另一个问题。但没有其他东西了。或者,也许我只是不知道......。
 


法规

FileWrite(file_handle, Period());

在5分钟的时间框架内,它显示5

AF 15分钟 =15

而在TF 1h= 1536

4ч =16388

为什么这么说?

 
Aleksei Skrypnev:


法规

在5分钟的时间框架内,它显示5

AF 15分钟 =15

而在TF 1H= 1536

为什么这么说?

首先我们看一下Period()

...该值可以是 枚举ENUM_TIMEFRAMES一个

识别器

描述

PERIOD_CURRENT

本期

PERIOD_M1

1分钟

PERIOD_M2

2分钟

PERIOD_M3

3分钟

PERIOD_M4

4分钟

PERIOD_M5

5分钟

PERIOD_M6

6分钟

PERIOD_M10

10分钟

PERIOD_M12

12分钟

PERIOD_M15

15分钟

PERIOD_M20

20分钟

PERIOD_M30

30分钟

PERIOD_H1

1小时

PERIOD_H2

2小时

PERIOD_H3

3小时

PERIOD_H4

4小时

PERIOD_H6

6小时

PERIOD_H8

8小时

PERIOD_H12

12小时

PERIOD_D1

1天

PERIOD_W1

1周

PERIOD_MN1

1个月


注意:"PERIOD的值之一..."。也就是说,它可以是PERIOD_H6或PERIOD_M1或PERIOD的任何值。但是,枚举的内部表示法根本不应该引起任何人的兴趣。今天是'15',明天可能是'15478899662'。但作为程序员,你根本不应该关心这个问题--你应该用数值(PERIOD_M4, PERIOD_M15 ...)工作,而不是用内部表示。

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

初看Period()

...该值可以是ENUM_TIMEFRAMES的一个 枚举



注意:"PERIOD的值之一..."。所以它可以是PERIOD_H6或PERIOD_M1或任何一个枚举的值。但是,列举的内部表示法根本不应该引起任何人的兴趣。今天是'15',明天可能是'15478899662'。但作为程序员,你根本不应该关心这个问题--你必须与数值(PERIOD_M4, PERIOD_M15 ...)打交道,而不是与内部表示相联系。

我以为会有更清晰的东西被写入文件)

你就不能用简单的方法把更清楚的东西(就像Perod_H1)写到文件里吗?

 
Aleksei Skrypnev:

我以为会有更清晰的东西被写进文件)

你不能用简单的方式把更容易理解的东西(就像Perod_H1)写到文件里,对吗?

如果你需要它非常清楚--把它写成文本"PERIOD_H1"之类的东西到文件中。

 

大家好!真是个问题。我在MT4上测试一个EA,测试了一整天,最后我看到晚上硬盘上已经没有内存了,我马上意识到这是因为测试的原因,我决定清理一下,到Windows的MetaQuotes 文件夹中,删除了那里的很多东西,结果所有的平台都丢失了,包括MT4和MT5,总共10块,它们都在运行,但它们完全 "干净"--没有来自市场的指标,没有EA,什么都没有我真的需要一个顾问在一个MT5终端,我没有保存副本,没有更多的激活,我应该做什么?

我决定用这个程序来恢复被删除的文件,我在更新 时把EA文件放在专家文件夹里 设法恢复了它,但终端 就是看不到它,我也无法从市场账户下载它,它说安装失败了

附加的文件:
 

请帮助我解决一个问题!

我只是在学习如何写代码,所以请宽恕我的不识字。

我需要帮助理解OnChartEvent 函数,该函数在时间框架改变或指标菜单中的设置改变后更新图表中的图形对象。 在指标关闭的情况下,我将完全删除图表中该指标的所有图形对象。

我知道你必须先删除 图形对象,然后再重新创建它们。但如果对象被删除,就无法访问其属性,那么如何 重新创建这些对象.......。 也许我不明白?或者也许有另一种方法--更新图表上的图形对象?

请写一个例子,并对如何做到这一点提出意见。


 
Sprut 185:

请帮助我解决一个问题!

我只是在学习如何写代码,所以请宽恕我的不识字。

我需要帮助理解OnChartEvent 函数,该函数在时间框架改变或指标菜单中的设置改变后更新图表中的图形对象。 在指标关闭的情况下,我将完全删除图表中该指标的所有图形对象。

我知道你必须先删除 图形对象,然后再重新创建它们。但如果对象被删除,就无法访问其属性,那么如何 重新创建这些对象.......。 也许我不明白?或者也许有另一种方法--更新图表上的图形对象?

请写一个例子,并对如何做到这一点提出意见。


不要认为这是无礼的,但文档中都有例子。你只需要注意ObjectSet***函数,它可以改变一个图形对象的参数。

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

不是我不客气,但文档里有所有的例子。你只需要注意ObjectSet***函数,它可以改变图形对象的参数。

谢谢你的参与。

不幸的是,ObjectSet*** 函数并不适合我的任务。

我自己用OnDeinit()函数 解决了这个问题。
void OnDeinit(const int reason)
  {
   ObjectsDeleteAll (0, -1, -1);
  }

现在一切都在正常工作。