以文本方式查看主题

-  金字塔客服中心 - 专业程序化交易软件提供商  (http://222.73.7.161/bbs/index.asp)
--  公式模型编写问题提交  (http://222.73.7.161/bbs/list.asp?boardid=4)
----  [求助]下标索引的问题  (http://222.73.7.161/bbs/dispbbs.asp?boardid=4&id=182921)

--  作者:Ritter
--  发布时间:2020/11/9 13:32:35
--  [求助]下标索引的问题

INPUT:N(2,0.5,10,0.5);

variable:E[]=0;
if barpos<2 then E:=0;
Z2:ZIG(4,N);
temp1:=ref(HIGH,1);
if Z2<ref(Z2,1) and ref(Z2,1)>ref(Z2,2) then
 E:=temp1;
 A1:=E;//波峰
 b1:=E[UBOUND(E)-1] ;//前一个波峰
 if c>A1 THEN
  D1:=E[LBOUND(E)];//第一次突破时的波峰

 

 

请老师帮忙看一下,这段代码问题出现在哪里,帮忙更正一下,谢谢啦!!


--  作者:FireScript
--  发布时间:2020/11/9 13:48:48
--  
 你要说下具体什么问题啊。否则我也不明白你的操作思路,我没办法判断的。


--  作者:Ritter
--  发布时间:2020/11/9 13:57:44
--  

通过ZIG取峰值,当价格第一次突破峰值后,判断其趋势为多头。


--  作者:FireScript
--  发布时间:2020/11/9 14:22:07
--  
 你是想用数组存下每个波峰的最高价,然后判断最新价是否突破最近的一个波峰的最高价?

[此贴子已经被作者于2020/11/9 14:22:50编辑过]

--  作者:Ritter
--  发布时间:2020/11/9 14:53:59
--  

我想判断价格第一次突破峰值时的那个价格,这个峰值相当于颈线的值。


INPUT:N(2,0.5,10,0.5);

variable:E[]=0; 
if barpos<2 then E:=0; 
Z2:ZIG(4,N);
temp1:=ref(HIGH,1); 
if Z2<ref(Z2,1) and ref(Z2,1)>ref(Z2,2) then
 E:=temp1; 
 A1:=E;//波峰

这段代码能求出波峰最高价。


当价格第一次突破波峰的时候,才开始记录波峰,并且我只要判断第一个波峰是否突破,之后的突破则不需要,当价格反向突破波谷之后,数组清零,再次突破波峰重新开始记录。


因为我只能想到用数组去取第一个满足条件的值,不知道老师还有没有其它的办法。


--  作者:FireScript
--  发布时间:2020/11/9 15:06:13
--  
 只第一次满足“Z2<ref(Z2,1) and ref(Z2,1)>ref(Z2,2) ”的时候?

那你这样取值啊:

INPUT:N(2,0.5,10,0.5);

Z2:ZIG(4,N);

cd:Z2<ref(Z2,1) and ref(Z2,1)>ref(Z2,2);
result:VALUEWHEN(count(cd,0)=1 and cd,ref(HIGH,1));




--  作者:Ritter
--  发布时间:2020/11/9 15:59:51
--  
是第一次满足‘C>峰值A1‘’的时候,始终取当前A1的值。
--  作者:FireScript
--  发布时间:2020/11/9 16:03:42
--  
所以你的意思是A1值其实是更新的,就是波峰位置的H,只是我们始终取第一次 满足‘C>峰值A1‘时候的C(或者H?)?
--  作者:Ritter
--  发布时间:2020/11/9 16:24:59
--  
假设已知波峰A1,波谷B1;
当C>A1时,开始记录此时A1的价格,这是第一次,当第二~N次C>A1时,会出现新的A1价格,但是我仍然取第一个A1的价格;
直至C<B1,按照取A1的方式去波谷B1,之后再出现C>A1则重新开始计算。

--  作者:FireScript
--  发布时间:2020/11/9 16:58:22
--  

假设已知波峰A1,波谷B1;
当C>A1时,开始记录此时A1的价格,这是第一次,当第二~N次C>A1时,会出现新的A1价格,但是我仍然取第一个A1的价格;
直至C<B1,按照取A1的方式去波谷B1,之后再出现C>A1则重新开始计算。
我看了下你这个逻辑上还是有很多有问题的地方啊。

波峰,波谷是一直在更新的。
zig的这个波峰波谷,很显然一个波峰到下个波谷之间。是肯定不会出现C大于波峰的值的。否则就不叫波峰了。

图片点击可在新窗口打开查看此主题相关图片如下:temp.png
图片点击可在新窗口打开查看


所以在出现 C>A1之前 波峰早就更新了。也就是A1的值。

突破只能是发生在下面这个阶段中:

图片点击可在新窗口打开查看此主题相关图片如下:temp.png
图片点击可在新窗口打开查看


波谷之后的位置,新的波峰形成之前,可能有一个价格突破了之前的波峰。


[此贴子已经被作者于2020/11/10 9:32:22编辑过]