以文本方式查看主题

-  金字塔客服中心 - 专业程序化交易软件提供商  (http://weistock.com/bbs/index.asp)
--  公式模型编写问题提交  (http://weistock.com/bbs/list.asp?boardid=4)
----  [求助]在10根K线内找倒数第二低的数,该怎么写?  (http://weistock.com/bbs/dispbbs.asp?boardid=4&id=61573)

--  作者:显示器
--  发布时间:2014/2/12 15:54:39
--  [求助]在10根K线内找倒数第二低的数,该怎么写?
要求在逐K模式,10根K线内,找到倒数第二高的K线位置和价格,即比最低高一点的K线,应该怎么写啊?
[此贴子已经被作者于2014/2/12 15:55:27编辑过]

--  作者:jinzhe
--  发布时间:2014/2/12 15:59:01
--  
ll:hhvbars(h,10);
hh:ref(hhv(h,10-(ll+1)),ll+1);

--  作者:显示器
--  发布时间:2014/2/12 16:55:26
--  
测试有些位置是不对的。

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


--  作者:jinzhe
--  发布时间:2014/2/12 17:09:17
--  

指出上面的图不对的地方


--  作者:显示器
--  发布时间:2014/2/12 17:14:12
--  
就是黄线有些位置很高,最近10K线根本没到过这么高。

我把Y坐标截图出来

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


--  作者:jinzhe
--  发布时间:2014/2/12 17:25:00
--  
想了一下这种方法不对,次高点求没有思路,等高人来看看
--  作者:jinzhe
--  发布时间:2014/2/12 17:33:46
--  

突发奇想的一个思路,在序列模式下使用,楼主先验证下对不对

 

ll:hhvbars(h,10);

if ll=10 then hh:=hhv(h,10-1);
if ll=0 then hh:=ref(hhv(h,10-1),1);
if ll<10 and ll>0 then hh:=max(ref(hhv(h,10-ll),ll),hhv(h,10-(ll-1)));
hh1:hh;


--  作者:显示器
--  发布时间:2014/2/12 17:43:36
--  
这个也不对,我加了一句:hh2:hhv(h,10);
做对比,就是黄线。
你看白线HH1跟黄线部分是重合的,重合部分固然不对,抽样计算了几根k线,不重合的位置也不完全对。

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

[此贴子已经被作者于2014/2/12 17:44:24编辑过]

--  作者:jinzhe
--  发布时间:2014/2/13 9:26:21
--  
等高人吧,有段思路用未来也算不出来
--  作者:jinzhe
--  发布时间:2014/2/13 9:44:06
--  

不能络筒的归纳,我用枚举法写出来的10周期次高点,看看有没有高人能简化

ll:=hhvbars(h,10);

hhh:hhv(h,10);
h1:=hhv(h,10-1);
h2:=ref(hhv(h,10-1),1);

h_1:=max(ref(hhv(h,8),ll+1),hhv(h,ll));
h_2:=max(ref(hhv(h,7),ll+1),hhv(h,ll));
h_3:=max(ref(hhv(h,6),ll+1),hhv(h,ll));
h_4:=max(ref(hhv(h,5),ll+1),hhv(h,ll));
h_5:=max(ref(hhv(h,4),ll+1),hhv(h,ll));
h_6:=max(ref(hhv(h,3),ll+1),hhv(h,ll));
h_7:=max(ref(hhv(h,2),ll+1),hhv(h,ll));
h_8:=max(ref(hhv(h,1),ll+1),hhv(h,ll));

if ll=0 then hh:=h2;
if ll=1 then hh:=h_1;
if ll=2 then hh:=h_2;
if ll=3 then hh:=h_3;
if ll=4 then hh:=h_4;
if ll=5 then hh:=h_5;
if ll=6 then hh:=h_6;
if ll=7 then hh:=h_7;
if ll=8 then hh:=h_8;
if ll=9 then hh:=h1;
hh1:hh