Индикаторный буфер представляет из себя динамический массив типа double, размером которого управляет клиентский терминал с тем, чтобы он всегда соответствовал количеству баров, на которых индикатор рассчитывается. Обычный динамический массив типа double назначается в качестве индикаторного буфера с помощью функции SetIndexBuffer(). Для индикаторных буферов не требуется задавать размер с помощью функции ArrayResize(), исполняющая система терминала сама позаботится об этом.
我不是在争论。"灰色的是在这个帖子的图片中显示的。
如果没有原始材料,这些是
嗯,我说的是 "这些"。当我出现溢出,指标不显示时,我没有看你提到的帖子中的截图所显示的菜单中的内容。在这里我不能说什么,我不能确定。
但是,如果指标不在导航器中,但它们在文件夹中,这意味着新的指标不会显示在导航器中,直到一些旧的指标被从文件夹中删除。
在那里,我们做了这些。我不是唯一的人。
我想规避手动调整动态数组大小的必要性,只需将其指定为一个指标缓冲区。但我无法摆脱ArrayResize(),就好像它是一个动态的指示器缓冲阵列,其大小应该由终端本身监控,而且不应该手动调整。
https://www.mql5.com/ru/docs/series/bufferdirection。
Индикаторный буфер представляет из себя динамический массив типа double, размером которого управляет клиентский терминал с тем, чтобы он всегда соответствовал количеству баров, на которых индикатор рассчитывается. Обычный динамический массив типа double назначается в качестве индикаторного буфера с помощью функции SetIndexBuffer(). Для индикаторных буферов не требуется задавать размер с помощью функции ArrayResize(), исполняющая система терминала сама позаботится об этом.
我们去https://www.mql5.com/ru/docs/array/arrayisdynamic, 运行代码,突然发现。
2022.01.24 21:25:27.543 t (NZDUSD,D1) 3.检查指示器缓冲区。
2022.01.24 21:25:27.543 t (NZDUSD,D1) 内存释放前大小=7278
2022.01.24 21:25:27.543 t (NZDUSD,D1)这是动态阵列 = 无
2022.01.24 21:25:27.543 t (NZDUSD,D1) 内存释放后大小=0
在同一时间。
我看了看书--我看到一个无花果。还是我们一直都被欺骗了?
或者,也许它只动态一次(在第一次初始化时),然后就这样了?
我无法摆脱ArrayResize(),它应该是一个动态的指标缓冲数组,其大小应该由终端本身监控,而且应该不需要手动调整大小。
https://www.mql5.com/ru/docs/series/bufferdirection。
我们去https://www.mql5.com/ru/docs/array/arrayisdynamic, 运行代码,突然发现。
同时,它。
我看了看书--我看到一个无花果。还是我们一直都被欺骗了?
或者,也许它只动态一次(在第一次初始化时),然后就这样了?
22:23:17.002 Dynamic EURCAD,H1: +============================+
0 22:23:17.002 动态EURCAD,H1: 1.检查一个动态数组。
0 22:23:17.002 Dynamic EURCAD,H1: Size before memory release = 100
0 22:23:17.002 Dynamic EURCAD,H1: This is Dynamic Array = Yes
0 22:23:17.002 Dynamic EURCAD,H1: 内存释放后的大小=0
0 22:23:17.002 动态EURCAD,H1: 2.静态阵列检查。
0 22:23:17.002 Dynamic EURCAD,H1: Size before memory free = 100
0 22:23:17.002 Dynamic EURCAD,H1: This is dynamic array = None
0 22:23:17.002 Dynamic EURCAD,H1: 内存释放后的大小=0
0 22:23:17.002 动态EURCAD,H1: 3.检查指示器缓冲区。
0 22:23:17.002 Dynamic EURCAD,H1: 释放内存前的大小=2725
0 22:23:17.002 Dynamic EURCAD,H1:This is dynamic array = Yes
0 22:23:17.002 Dynamic EURCAD,H1: Size after memory release = 0
0 22:23:24.754 Dynamic EURCAD,H1: uninit reason 1
0 22:23:24.758 自定义指标Dynamic EURCAD,H1:移除
这是在4。
我想规避手动调整动态数组大小的必要性,只需将其指定为一个指标缓冲区。但我无法摆脱ArrayResize(),就好像它是一个动态的指示器缓冲阵列,其大小应该由终端本身监控,而且不应该手动调整。
https://www.mql5.com/ru/docs/series/bufferdirection。
我们去https://www.mql5.com/ru/docs/array/arrayisdynamic, 运行代码,突然发现。
同时,它。
我看了看书--我看到一个无花果。还是我们一直都被愚弄了?
或者,也许它是一次性的动态(在第一次初始化时),然后就这样了?
是的,那么就是这样了 :-)
...在SetIndexBuffer之后,不可能使用ArrayResize,从程序的角度来看,数组是静态的,有一个预定义的(外部控制的)大小。
22:23:17.002 Dynamic EURCAD,H1: +============================+
0 22:23:17.002 动态EURCAD,H1: 1.检查一个动态数组。
0 22:23:17.002 Dynamic EURCAD,H1: Size before memory release = 100
0 22:23:17.002 Dynamic EURCAD,H1: This is Dynamic Array = Yes
0 22:23:17.002 Dynamic EURCAD,H1: 内存释放后的大小=0
0 22:23:17.002 动态EURCAD,H1: 2.静态阵列检查。
0 22:23:17.002 Dynamic EURCAD,H1: Size before memory free = 100
0 22:23:17.002 Dynamic EURCAD,H1: This is dynamic array = None
0 22:23:17.002 Dynamic EURCAD,H1: 内存释放后的大小=0
0 22:23:17.002 动态EURCAD,H1: 3.检查指示器缓冲区。
0 22:23:17.002 Dynamic EURCAD,H1: 释放内存前的大小=2725
0 22:23:17.002 Dynamic EURCAD,H1:This is dynamic array = Yes
0 22:23:17.002 Dynamic EURCAD,H1: Size after memory release = 0
0 22:23:24.754 Dynamic EURCAD,H1: uninit reason 1
0 22:23:24.758 自定义指标Dynamic EURCAD,H1:移除
这是在4。
太棒了!这到底是什么魔法?我刚刚检查了EURCAD,H1 - 同样没有。
那么4是什么呢?这个例子中只有三个点。
太棒了!这到底是什么魔法?刚刚检查了EURCAD,H1--又是 "不"。
而4是什么?这个例子中只有三个点。
MT4终端
太棒了!这到底是什么魔法?刚刚检查了EURCAD,H1--又是 "不"。
而4是什么?这个例子中只有三个点。
0 23:33:06.088 测试(EURUSD,D1) +============================+
0 23:33:06.088 test (EURUSD,D1) 1.检查动态阵列。
0 23:33:06.088 test (EURUSD,D1) 内存释放前大小=100
0 23:33:06.088 test (EURUSD,D1) This is a dynamic array = Yes
0 23:33:06.088 test (EURUSD,D1) 内存释放后大小=0
0 23:33:06.088 测试(EURUSD,D1) 2.静态阵列测试。
0 23:33:06.088 test (EURUSD,D1) 释放内存前的大小=100
0 23:33:06.088 test (EURUSD,D1) 这是一个动态数组 = None
0 23:33:06.088 test (EURUSD,D1) 内存释放后大小=100
0 23:33:06.088 test (EURUSD,D1) 3. 检查指标缓冲区。
0 23:33:06.088 test (EURUSD,D1) 释放内存前的大小 = 1054
0 23:33:06.088 test (EURUSD,D1) This is dynamic array = None
0 23:33:06.088 test (EURUSD,D1) 内存释放后大小=0
终端MT5,没有想法。
我想规避手动调整动态数组大小的必要性,只需将其指定为一个指标缓冲区。但我无法摆脱ArrayResize(),就好像它是一个动态的指示器缓冲阵列,其大小应该由终端本身监控,而且不应该手动调整。
https://www.mql5.com/ru/docs/series/bufferdirection。
我们去https://www.mql5.com/ru/docs/array/arrayisdynamic, 运行代码,突然发现。
同时,它。
我看了看书--我看到一个无花果。还是我们一直都被欺骗了?
或者,也许它只动态一次(在第一次初始化时),然后就这样了?
缓冲区阵列是动态的。在MQL中,动态数组有对象的迹象,就我在使用它们时的理解而言(如在超高级语言中)。但是如果你把一个动态数组声明为一个缓冲区(使用SetIndexBuffer),这个区域的内存将成为保留区。这就是为什么大多数标准函数不能改变其大小。我有时使用对象数组作为指标缓冲区。如果我这样做,这种数组的内存会在对象的析构器中被释放。因此,应用程序(或对象) 本身释放指标缓冲区内存是允许的。但这并不意味着数组可以在指标的操作过程中被释放。一切都应该明智地进行。
下午
我想写一个专家顾问,当我测试它时,发生了一件奇怪的事情,你能告诉我吗?
我有一个函数
什么情况,我在图表上启动一个EA实例运行,并在同一图表上以调试模式运行第二个EA,MT4
函数的输入数据是相同的,但输出数据是不同的!!? 我只是不明白一些事情,似乎...(
建议我从哪方面去挖掘信息!!。
PS:计算出的差额正好是输出的2.5倍我有一个函数
什么情况,我在图表上启动一个EA实例运行,并在同一图表上以调试模式运行第二个EA,MT4
函数的输入数据是相同的,但输出数据是不同的!!? 我只是不明白一些东西,似乎...(
你能告诉我从哪方面去挖掘信息吗?
PS:计算出的差额正好是输出的2.5倍这都是关于计算角度的公式。在代码中可以看到,对于它的计算只使用了一个坐标和一些系数,其目的不清楚。这是什么?请详细说明你是用什么数据来计算这个角度的。