【问题标题】:How do you create a new array from all NON empty values in another array?如何从另一个数组中的所有非空值创建一个新数组?
【发布时间】:2018-02-08 04:55:48
【问题描述】:
   for ( int i = limit; i >= 0; i-- )
   {     
         if (  Low[i-1] >  Low[i]
            && Low[i+1] >  Low[i]
               ) Dpivot[i]=Low[i];
   }

这会将 Low 价格存储在该柱上,满足此条件到 Dpivot[] 数组中。

但显然,在不正确的柱上,该值为 0。

如何创建一个数组,其中所有的 0 都被跳过,并且只包含 Dpivot[] 中显示的实际价格。

对不起,如果这是一个非常微不足道的问题。我对编程很陌生,MQL4 文档让我头疼。

我真的很想把整个数组的东西都包起来!

在很多情况下,我的主要问题是在满足条件时查找值,但在不满足条件时无法再次引用它们,如果这有意义的话。

【问题讨论】:

    标签: trading algorithmic-trading mql4


    【解决方案1】:

    语料库细节很大程度上取决于您是构建自定义指标还是其他类型的MQL4 代码执行单元

    主要方法是将非零单元格填充到这样的新数组中。

    double aNewNonZeroPIVOTsARRAY[];
    
    for ( int nPi = EMPTY,
              dPi = 0; dPi < ArraySize( Dpivot ); dPi++ ) {
          if  ( Dpivot[dPi] > 0. )  aNewNonZeroPIVOTsARRAY[++nPi] = Dpivot[dPi];
    }
    

    【讨论】:

    • 我正在尝试构建一个自定义指标。那么你在这里所说的将创建一个数组,其中只有非空价格值依次排列?我想这样做,所以我可以进行计算以查看最近的值和之前的最后一个值之间的差异(例如 Dpivot [+1] 为空 (0) 但 Dpivot [+2] 有一个价格值的 0 值是 +1,其中有价格的 +2 值是 +1。也可以将这些值引用为对象的坐标。所以用 Dpivot 的位置画一条线 [+ 1] 值到 Dpivot [0]?
    • 慢点,慢点,伙计。你一次问越来越多的问题。 是的, 这个for(){...} 填充 aNewNonZeroPIVOTsARRAY[] 数组只有非零值,一个接一个,正如你上面问的那样。
    • 对不起!!我的错。如果是这样的话,我提出的所有这些问题都是可能的,哈哈!谢谢
    • StackOverflow 有其他表达感谢的方式——点击 UpVote 并 [Accept] 回答。到目前为止,您已经收到了几个答案,您还感谢了每个答案 (stackoverflow.com/a/45006429),但从未点击过投票或接受。 这不是 StackOverflow 社区规则的工作方式。
    • 你介意告诉我如何使用 dpi 和 ++npi 的机制吗?我看到这是魔法正在发生,但不明白阵列内部发生了什么,我觉得我可能会迷失在未来尝试应用这个伟大的解决方案
    猜你喜欢
    • 2019-03-19
    • 2012-12-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-05-06
    • 2013-08-21
    • 1970-01-01
    相关资源
    最近更新 更多