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

 

为什么我有不正确的复制指定时间的收盘价 与指定数量。MQL5

copied = CopyClose(_Symbol,PERIOD_H4,Time[59],5,MPI); Alert(copied);
  for(int i = 0; i < 100; i++)
    {
     Alert(MPI[i]);
    };
 
Alexandr Sokolov:

为什么我有不正确的复制指定时间的收盘价 与指定数量。MQL5

你在mql5中哪里找到了Time[],或者是一个自定义数组?

 
Alexey Viktorov:

而你在mql5中哪里找到了Time[],或者是一个自定义数组?

是的,它是一个自定义数组,我把指标所在的时间框架的条形图的开盘时间 复制到其中。或者还能如何指定日期(特别是考虑到将来必须以多种方式进行组合)?

 
Alexandr Sokolov:

是的,它是一个自定义数组,我把指标所在的时间框架的条形图的开盘时间 复制到其中。或者还能如何指定日期(尤其是在未来,它必须以多种方式组合)?

是的,抄袭 "别人的 "TF是有问题的。我为severalfolds启动了一个指标,我注意到CopyRates()没有立即被复制。显然,这是因为没有按期准备好数据。只要重新编译就能解决这个问题。事实证明,我们应该先 "拉 "出周期,然后再复制。但我还没来得及做。我明天会检查的。但我希望我是对的。

我有个困惑:如果可以用time[]来代替,为什么要复制指标所在的时间框架窗口中的条形图开盘时间?而且我们不应该忘记索引的方向。

 
Alexey Viktorov:

还有一个简单的问题:如果可以用time[]代替,为什么要在指标所在的时间框架窗口中复制条形图的开放时间?而且不要忘记索引的方向。

时间是在OnCalculate之外使用的。在所有的缓冲区中索引方向 ArraySetAsSeries(...,true)


它是用来做什么的?- 我做了一个趋势指标(在CodeBase中发布),它是 "噪音"。我做了一个慢动作--不够。现在,我想让较低时间框架的每根蜡烛上的数值从较高时间框架的条形图中计算出来

你说的 "yank "是什么意思?

 
Alexandr Sokolov:

时间是在OnCalculate之外使用的。在所有的缓冲区中索引方向ArraySetAsSeries(...,true)


它是用来做什么的?- 我做了一个趋势指标(在CodeBase中发布),它是 "噪音"。我做了一个慢动作--不够。现在,我想让下层时间框架的每根蜡烛上的数值从上层时间框架的条形图中计算出来

你说的 "扽 "是什么意思?

"美国佬 "不是我的表述。这就是我在这个论坛上看到的定期参考所需时期的数据。

我记得连我自己都很生气,认为这没有用,表示自己 "像猫一样拽着期期艾艾的屁股",但这并没有用。经过对这个问题的多次讨论,我把复制工作包裹在一个do while循环中。如果它在第一次尝试时就复制了,那就谢天谢地了。如果没有,我们通过一个空的for循环给它做N次尝试,进行200-500次迭代,这似乎已经足够了。我们可以走得更远...

关于这个指标,我前面已经说过了,它仍然处于最开始的阶段。这就是为什么它没有做得很好。我只是在检查我需要多少个高tf的条数来满足当前时期的可用条数。最后,我在每5000根M5条中有17根日线。而如果你不考虑这一点,那么5000个当前的M5周期,5000个4h和5000个每日都是复制的。太多的额外...

另一个重要的通知:前段时间,你可以将数组的索引 倒置一次,现在你必须在每次打喷嚏时重新定向。我以前曾在某个地方写过这个问题。这就是为什么我更喜欢用默认选项工作。适应它并不难。

 

默认情况下,GlobalVariable只能是双倍的。

double close = GlobalVariableGet("close");


如果我想得到一个没有小数部分 的近似值,这样写是否正确呢?

int close = GlobalVariableGet("close");
 
Alexey Viktorov:

"美国佬 "不是我的表述。这就是我对这个论坛上定期提到的正确时期数据的解读。

我记得连我自己都因为没有效果而生气,表示自己 "像猫一样拽着期期艾艾的地方",但这并没有什么用。在对这个问题进行了多次讨论后,我将复制工作包裹在一个do while循环中。如果它在第一次尝试时就复制了,那就谢天谢地了。如果没有,我们就通过一个空的for循环给它做N次尝试,进行200-500次迭代,这似乎已经足够了。我们可以增加...

而我之前提到的那个指标仍处于起步阶段。这就是为什么它没有做得很好。我只是在检查我需要多少个高tf的条数来满足当前时期的可用条数。最后,我在每5000根M5条中有17根日线。而如果你不考虑这一点,那么5000个当前的M5周期,5000个4h和5000个每日都是复制的。这是个很大的额外...

另一个重要的通知:前段时间,你可以将数组的索引 倒置一次,现在你必须在每次打喷嚏时重新定向。我以前曾在某个地方写过这个问题。这就是为什么我更喜欢用默认选项工作。适应它并不难。

等等,我们是否错过了什么或误解了对方,因为

Alert(copied);

......它返回5,这是正确的,但缓冲区内的值都是一样的。

 
Alexandr Sokolov:

等等,我们是否错过了什么或误解了对方,因为

...我返回5,这是正确的,但缓冲区内的值都是一样的

然后我们需要弄清楚MPI数组的维度 和它的索引方向,如果你复制5个元素,为什么要循环到100?

在这种情况下,我更喜欢使用调试器。获取一个数组并检查所有数组字段而不重启...

 
Alexey Viktorov:

然后我们需要处理MPI数组的大小 和索引方向,如果你复制5个元素,那么为什么要循环到100?

在这种情况下,我更喜欢使用调试器。获取数组并检查所有数组字段,而无需重新启动...

我把它设置为100,因为我以为它会从59开始,但它在6时也是一样。