静态数组 ? - 页 6

 

在这个简单的英语描述中,有太多的代码了 ......

分形被存储在指标缓冲区 中,你明白是怎样的吗? 如果你不写一些代码来帮助你理解 ......

你可以读取指标缓冲区,并从分形中找到条形数字,从条形数字中你可以得到蜡烛值。. .

 
RaptorUK:

在这个简单的英语描述中,有太多的代码了 ......

分形被存储在指标缓冲区中,你明白是怎样的吗? 如果你不写一些代码来帮助你理解 ......

你可以读取指标缓冲区,并从分形中找到条形数字,从条形数字中你可以得到蜡烛值。. .

我并不完全理解指标缓冲区 是如何存储的。


而这正是我想做的,从分形图中找到小节号,然后得到蜡烛值

我会继续做下去,但如果我知道指标是如何在缓冲区中存储数值的,我可能会更清楚。

谢谢

 

有3个缓冲区,v1、v2和v3,还有3个双倍数,val1、val2和val3,用于计算。v3和val3似乎没有被使用。

val1和val2保存着iFractals产生的值,这个值是为每个小节逐一计算的,while 循环从Bars开始,一直递减到0,循环整个小节 . .

因此,每一个柱状图的分形值都被计算并存储在MODE_UPPER的V1和MODE_LOWER的V2中,让我们通过V1 .

依次对每个柱子 .. . . 如果val1大于0,则该小节的v1缓冲区的值被设置为该小节的High,所以想象一下,循环在从Bars 到0的小节中的一部分,让我们想象一下它是在4934号小节,分形被计算为4934号小节,如果值大于0,则v1[4934]被设置为High[4934],换句话说,v1缓冲区的第4935个元素被设置为4934号小节的High . . . 不要忘记数组从0开始

最后,你需要了解一个小的复杂情况 ...... 运行该指标,你会看到从每个分形的高点和低点到下一个分形的点线 ...... 想象一下,我们现在在第4933个条形上,并且val1的值不大于0,现在发生的情况是,这个条形的缓冲区值没有被设置为这个条形的高点,而是被设置为与缓冲区的前一个条目相同的值 ...... 在这种情况下,前一个意味着 i+1,因为在while循环中i 在向下计数。

当循环结束,所有的条形图都被计算出来时,缓冲区 所有条目 都将包含数值。...这对你没有什么帮助。...你需要改变一下代码。

请阅读我在这里写的内容 .......如果你不明白发生了什么事,那么你就没有资格去搞这些代码。......一旦你明白了,你就可以继续前进了 ......有任何问题请问。

 
RaptorUK:

有3个缓冲区,v1、v2和v3,还有3个双数,val1、val2和val3,用于计算。v3和val3似乎没有被使用。

val1和val2保存着iFractals产生的值,这个值是为每个小节逐一计算的,while 循环从Bars开始,一直递减到0,循环整个小节 . .

因此,每一个柱状图的分形值都被计算并存储在MODE_UPPER的V1和MODE_LOWER的V2中,让我们通过V1 .

依次对每个柱子 ..如果val1大于0,则该栏位的缓冲区v1的值被设置为该栏位的高点,所以想象一下循环在从Bars 到0的栏位中的一部分,让我们想象一下它在栏位4934,分形被计算为栏位4923,如果值大于0,则v1[4394]被设置为High[4394],换句话说,v1缓冲区的第4395元素被设置为栏位4394的高点 . . . 不要忘记数组从0开始

最后,你需要了解一个小的复杂情况 ...... 运行该指标,你会看到从每个分形的高点和低点开始的一行小点 ......直到下一个 ...... 想象一下,我们现在是在第4933条,而且val1的值不大于0,现在的情况是,这个条形的缓冲区的值不是设置为这个条形的高点,而是设置为与缓冲区的前一个条目相同的值 ...... 在这种情况下,前一个意味着 i+1,因为在while循环中i 在向下计数。

当循环结束,所有的条形图都被计算出来时,缓冲区的所有条目都将包含数值。...这对你没有什么帮助。...你需要改变一下代码。

请阅读我在这里写的内容 .......如果你不明白发生了什么事,那么你就没有资格去搞这些代码。......一旦你明白了,你就可以继续前进了 ......有任何问题请提出。

我确实明白指标是如何工作的,就像你描述的那样。我想我也明白了缓冲区是如何存储数值的,这就是为什么我感到困惑,因为当我重新编码打印时,我没有得到我所期望的结果。

然而,现在已经克服了一个主要的大障碍,理解了缓冲区是如何不同的,并没有实际声明元素的数量,这就是为什么我不能从缓冲区打印

好的继续。
我认为你提到的 4934 小节有一些错误分形计算是针对4923 小节的,应该是4933
另外,对于大于0的值,v1[4394]被设置为High[4394]==我认为这也是为了遵循前面提到的4923/33,但我理解是元素数高于条形图数。

如果我打错了,请纠正我。

总之,假设这些是打错的,我明白这意味着什么。

我认为我将创建v3,并以类似的方式声明和初始化它,以便能够打印它或从它那里获得值。
我最初考虑的是,我可能会打印i-1,以提取High[i]大于0时的存储值,并用于该Bar。
或者甚至是v1[i]=v1[1-1],在这个时候打印v1[i],但是我还没有解决这部分的问题,而且也无法通过打印部分,因为没有声明元素的数量。

这就是为什么我想创建一个不同的v3方案,但实际上是一样的,只是创建一个有声明元素数的数组,我可能会提取这些条形的分形值。

这就是我在设计上遇到的问题,所以我会再研究一下

谢谢

 
Agent86:

我确实明白指标是如何工作的,就像你描述的那样。我想我也明白了缓冲区是如何存储数值的,这就是为什么我感到困惑,因为当我重新编码打印时,我没有得到我所期望的结果。

然而,现在已经克服了一个主要的障碍,了解了缓冲区是如何不同的,并没有实际声明元素的数量,这就是为什么我不能从缓冲区中打印的原因。

好了,继续。
我认为你提到的 4934 小节有一些错误,分形的计算是针对4923 小节的,应该是4933
另外,对于大于0的值,v1[4394]被设置为High[4394]==我认为这也是为了遵循前面提到的4923/33,但我理解为是元素数大于条形数。

如果我打错了,请纠正我。

对不起,打错了字。. .我已经用正确的数值修正了我的文字 .. .我在早上的第一件事不是很好;-)

你是否看到你需要对代码进行小的修改,才能对你有很大的帮助?

 
    for(i=Bars; i >= 0; i--)
     {
     val3=iFractals(NULL, 0, MODE_UPPER,i);
     if(val3>0)
      {
      double v3[1000];
      v3[i]=High[i];
      Print ("v3[", i, "]= ", v3[i], " if");
      }
     else          
         {
         v3[i]=v3[i+1];
         Print ("v3[", i, "]= ", v3[i], " else");
         }
     }
好了,在这里取得了一些进展,我想主要是我无法越过缓冲区的声明,在我的打印语句中总是产生0。

我想我也许可以从这里开始处理
我现在得到了我所寻求的值,至少从目前来看,我可能是在正确的轨道上。

2011.09.24 12:26:21 2011.01.02 19:09 Agent86_5min EURUSD,M5: v3[5]=1.3361 if
2011.09.24 12:26:21 2011.01.02 19:09 Agent86_5min EURUSD,M5: v3[6]= 1.3343 else
2011.09.24 12:26:21 2011.01.02 19:09 Agent86_5min EURUSD,M5: v3[7]= 1.3343 else
2011.09.24 12:26:21 2011.01.02 19:09 Agent86_5min EURUSD,M5: v3[8]=1.3343 else
2011.09.24 12:26:21 2011.01.02 19:09 Agent86_5min EURUSD,M5: v3[9]= 1.3343 else
2011.09.24 12:26:21 2011.01.02 19:09 Agent86_5min EURUSD,M5: v3[10]= 1.3343 if
2011.09.24 12:26:21 2011.01.02 19:09 Agent86_5min EURUSD,M5: v3[11]=1.3399 else


再次感谢
 
我怀疑你真的不想要或不需要其他东西。
 
RaptorUK:
我怀疑你真的不想要或不需要其他东西。

是的,你是对的