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

 
barabashkakvn:

再看一下帮助中的指标代码 https://www.mql5.com/ru/docs/indicators/ima 。注意OnInit()中的几行。

这将创建 周期的指标句柄--"周期"。

我已经发现了数组大小的错误,这是我在初始代码中的主要错误。我不明白为什么终端图表表现得不够好(模糊、更新、移位等)。谢谢你。
附加的文件:
macd2.mq5  4 kb
 
你好。IndicatorCreate()和iCustom() 之间有什么优势,哪一个更适合使用。谢谢
 

下午好。

我想得到一个分形的最后一个值。

Handle[Number]=iFractals(Symbol_,0)。

CopyBuffer(Handle[Number], UPPER_LINE,4,100,Upper)

upenv[Number]=Upper[0]。


但有时我得到一些奇怪的数字 upenv[Number]=1.797693134862316e+308

如果这个数字是0,问题将这样解决

如果(upenv[Number]=Upper[0] && Upper[0]!=0)

upenv[Number]=Upper[0]。

我的错误在哪里?我做错了什么?我怎样才能得到分形在变化前的最后一个值?

 
Vikon:
barabashkakvn:

再一次,你应该从https://www.mql5.com/ru/docs/indicators/ima 中查看指标代码。 注意OnInit()中的几行。

这里创建了 周期的指标柄--"周期"。

我已经发现了数组大小的错误,这是我在初始代码中的主要错误。我不明白为什么终端图表表现得不够好(模糊、更新、移位等)。谢谢。

你在每一个tick(即在OnCalculate()函数中)都创建了一个指标句柄。这是不正确的。指标句柄应该在OnInit()中创建。

 
barabashkakvn:

都发现了数组大小的错误,这是我在原代码中的主要错误。但为什么终端图表表现得不够好(闪烁、更新、转移等)。谢谢。

你在每一个tick(即在OnCalculate()函数中)都创建了一个指标句柄。这是不正确的。指标句柄必须在OnInit()中创建。

如果我在一个指标中需要MACD读数(M1;M5;M15;H1;H4;D1;W1),那么我需要为每个时期创建一个手柄?
 
Vikon:
如果我在一个指标中需要MACD读数(M1;M5;M15;H1;H4;D1;W1),那么我需要为每个时期创建一个手柄?
是的,在OnInit中,你需要多少个指标句柄就做多少个。
 
paladin800:
是的,在OnInit中根据需要制作尽可能多的指示器手柄。
这不是因为手柄的问题,我还搞不清楚,事实上,代码工作正常,数据输出也比较正确。但电脑起飞了,终端跳了,见鬼去吧。
 
barabashkakvn:

都发现了数组大小的错误,这是我在原代码中的主要错误。但为什么终端图表表现得不够好(闪烁、更新、转移等)。谢谢。

你在每一个tick(即在OnCalculate()函数中)都创建了一个指标句柄。这是不正确的。指标句柄必须在OnInit()中创建。

更有可能的是,在有M15的图表上,你使用的是D1数据,或者我搞错了。
 
嗨,也许有人会有时间看看我的izvoyanie,我的主要错误在哪里,或者是开发商的错误
附加的文件:
macd2.mq5  7 kb
 
Vikon:
更有可能的是,M15图表使用的是D1数据,或者我错了。

你在每个tick上创建一个指标句柄(即在OnCalculate()中)。这是不正确的。指标句柄应该在OnInit()中创建。在M15图表中,你可以使用D1的数据。然而,在这种情况下,数据可能是不完整的 - 阅读 "组织数据访问 "https://www.mql5.com/ru/docs/series/timeseries_access

Документация по MQL5: Доступ к таймсериям и индикаторам / Организация доступа к данным
Документация по MQL5: Доступ к таймсериям и индикаторам / Организация доступа к данным
  • www.mql5.com
Доступ к таймсериям и индикаторам / Организация доступа к данным - Документация по MQL5