intCopyBuffer(
int indicator_handle, // handle индикатораint buffer_num, // номер буфера индикатораint start_pos, // откуда начнем int count, // сколько копируемdouble buffer[] // массив, куда будут скопированы данные
);
Отсчет элементов копируемых данных (индикаторный буфер с индексом buffer_num) от стартовой позиции ведется от настоящего к прошлому, то есть стартовая позиция, равная 0, означает текущий бар (значение индикатора для текущего бара). При копировании заранее неизвестного количества данных в качестве массива-приемника buffer[] желательно...
我就是这样得到移动平均线的当前数据的,这样做对吗?
两个问题。
1.没有关于不将指标缓冲区 编号与指标联系起来的内容。由于有一个指标,它自动得到缓冲区0,这就是我所指定的。
2.如果我在初始化时有指标句柄,当我改变传递给指标的参数时,我是否需要重新将EA填充到图表中,以便初始化事件到来,新的参数被应用?
我就是这样得到移动平均线的当前数据的,这样做对吗?
两个问题。
1.没有关于不将指标缓冲区 编号与指标联系起来的内容。由于有一个指标,它自动得到缓冲区0,这就是我所指定的。
2.如果我在初始化中设置了指标句柄,当我改变传递给指标的参数时,我是否需要将EA重新加载到图表上,以便发生初始化事件并应用新参数?
1.没有什么 "关联"。从来没有过。
让我们阅读一下关于CopyBuffer 的帮助
有一个函数接收指标句柄(在你的例子中是变量ma_handle 和缓冲区编号'0' - 零,因为移动平均线指标只有一个缓冲区)。
2.如果你在你的EA中改变了输入参数,它将再次初始化你的EA,指标句柄将在OnInit中用你输入的参数创建。
1.没有什么 "关联"。从来没有过。
...
调用SetIndexBuffer()的意义
意味着对SetIndexBuffer()的调用
我不知道什么是指标缓冲区编号,这些缓冲区是如何创建的,它们是否被分配给某个指标或具有相同的编号。文档中说要写SetIndexBuffer(),但在移动平均线的例子中却没有写。我读了参考资料并搜索了其他文章,但还是不清楚。预处理器是否需要指定缓冲区,为什么缓冲区要比预处理器指令 中的少一个,而不是一样。
如果你寻找一些形而上学的意义...那么很多事情就变得不可理解了。否则,它就只是一个数字。它属于一个特定的指标。
专家顾问根本就没有指标缓冲区,因此不可能有SetIndexBufer()调用。
不是少一个,而是完全一样。当从零开始计数时,最后一个数字比总数字少1。
如果你不介意,请再回答几个问题。
1.我不明白为什么我需要给一个已声明的变量 赋值0,如果我以后要赋值的话。而且,有时不分配0,有时分配。
他们说你需要在去初始化中删除对象(我不明白为什么),但指标句柄是一个对象,但它通常不会被删除,这是为什么?
3.MqlTradeRequest request={0}; 它是什么意思?可能,整个结构被分配为0,但它并不只包含数字类型。
4、,为什么这里会有一个逻辑运算?
如果你不介意,请再回答几个问题。
1.我不明白为什么我需要给一个已声明的变量 赋值0,如果我以后要赋值的话。而且,有时不分配0,有时分配。
他们说你需要在去初始化中删除对象(我不明白为什么),但指标句柄是一个对象,但它通常不会被删除,这是为什么?
3.MqlTradeRequest request={0}; 它是什么意思?可能,整个结构都被赋值为0,但这不仅仅是数字类型。
4. 为什么我们在这里需要一个逻辑运算?
1.出于习惯。
2.它是另一个物体。它将被自行卸载,但它可以通过函数IndicatorRelease()加速。
3.它被清除了,就这样了。
4.这不是一个逻辑操作,而是通过引用来转移变量。
1.出于习惯。
2.这是一个不同的对象。然后它将自行卸载,但可以通过IndicatorRelease()来加速。
3.它被清除了,就这样了。
4.这不是一个逻辑操作,而是通过引用来转移变量。