新人对MQL4和MQL5的任何问题,对算法和代码的帮助和讨论 - 页 131

 
Vitaly Muzichenko:

我不能用OnCalculate(...) 事件碰它,我可以碰任何函数,但我不能碰这个计时器不是一个选项,指示器不是那么经常需要,最好是通过点击一个图形项目来使用。

如何实施?

你在指标和事件处理程序中捕捉对象的点击,然后你重新计算指标缓冲区,就像在一个新的开始。你不需要拉动OnCalculate
 
-Aleks-:

你能告诉我如何正确寻找代码中负载CPU的资源最密集的地方吗?

从编辑器中运行代码剖析
 
Artyom Trishkin:
从编辑器中运行代码剖析

谢谢,但你如何在离线状态下进行--在休息日?

 
可能是什么问题?

一段代码。

for(i=1; i<=Bars; i++)
{
if(Open[i]-Close[i]==0)

在测试时,调试器会在if行产生一个错误。阵列超出了范围。

预先感谢你。
附加的文件:
 
Andy-D:
可能是什么问题?

一段代码。

for(i=1; i<=Bars; i++)
{
if(Open[i]-Close[i]==0)

在测试时,调试器会在if行产生一个错误。阵列超出了范围。

预先感谢你。
for(i=1; i<Bars; i++)
  {
   if(Open[i]-Close[i]==0)
     {

     }
  }
...
 
Sergey Gritsay:
for(i=1; i<Bars; i++)
  {
   if(Open[i]-Close[i]==0)
     {

     }
  }
...
谢谢帮助,我想我不应该把"<="?不过,这很奇怪。我不明白为什么。我应该把加号放在哪里?
 
Andy-D:
谢谢帮助,我想我不应该把"<="?不过,这很奇怪。我不明白为什么。把加号放在哪里?
数组索引从0开始,以Bars-1结束(在本例中)。因此,Bars的值会导致数组 超限。
 
Andy-D:
谢谢帮助,我想我不应该把"<="?虽然很奇怪。我不明白为什么。在哪里放一个加号?
因为数组的索引是从0开始的,所以,例如,如果Bars中的条数是1,那么要从这个单一的条数中得到一个值,你必须取其索引为0的单元格的值。

下面是一个比较表。

酒吧中的酒吧数量
1 2 3 4 5 6 7 8 9 10 外部阵列
指向数据的循环索引
0 (i<Bars)1 (i<Bars)2 (i<Bars)3 (i<Bars) 4 (i<Bars)5 (i<Bars) 6 (i<Bars) 7 (i<Bars)8 (i<Bars)9 (i<Bars) 10 (i==Bars)
 
Sergey Gritsay:
要做到这一点,你需要在本地计算机之外创建一个服务器,并通过这个服务器传输数据,分别为MT你写一个处理这些数据的指标或顾问,或把终端放在VPN服务器上,在那里你设置了一个从你的账户到你的朋友的账户的交易复制器。另一个选择是通过信号 服务复制你在特定水平上执行的交易。一般来说,你必须考虑到你的经济能力来订购适当的软件。
我发现一个指标(mq4)有类似的映射原理。我已经看到了它的结果,它们并不适合我。我有我自己的数据,我认为它更准确。我有自己的数据,我可以编辑它,使其更准确,删除一些不必要的映射,并指定我的数据的路径吗?只是把它作为一个基础。
 
Artyom Trishkin:
由于数组索引从0开始,例如,如果Bars中的条数是1,那么要从这个单一的条数中获取数值,我们需要取其索引为0的单元格的数值。

以下是对比表。

酒吧中的酒吧数量
1 2 3 4 5 6 7 8 9 10 外部阵列
指向数据的循环索引
0 (i<Bars)1 (i<Bars)2 (i<Bars)3 (i<Bars) 4 (i<Bars)5 (i<Bars) 6 (i<Bars) 7 (i<Bars)8 (i<Bars)9 (i<Bars) 10 (i==Bars)
非常感谢你,现在更有意义了。
原因: