以文本方式查看主题

-  金字塔客服中心 - 专业程序化交易软件提供商  (http://weistock.com/bbs/index.asp)
--  公式模型编写问题提交  (http://weistock.com/bbs/list.asp?boardid=4)
----  前一天的数据由大到小排列并取出  (http://weistock.com/bbs/dispbbs.asp?boardid=4&id=140507)

--  作者:chyhao
--  发布时间:2016/10/10 13:38:51
--  前一天的数据由大到小排列并取出

1分钟周期,把前一天的ABS(C-O)按照由大到小的顺序排列,并且取出最大的N个相加得到P,请问用公式应该怎么写呢,谢谢


--  作者:jinzhe
--  发布时间:2016/10/10 13:53:46
--  

假设n为6:

 

h1:ref(large(abs(c-o),todaybar,1),todaybar);

h2:ref(large(abs(c-o),todaybar,2),todaybar);

h3:ref(large(abs(c-o),todaybar,3),todaybar);

h4:ref(large(abs(c-o),todaybar,4),todaybar);

h5:ref(large(abs(c-o),todaybar,5),todaybar);

h6:ref(large(abs(c-o),todaybar,6),todaybar);

p:h1+h2+h3+h4+h5+h6;


--  作者:chyhao
--  发布时间:2016/10/10 16:52:14
--  
如果我想取N,N的数量是使其对应的VOL累加能超过全天成交量的10%,这种情况下这个p应该怎么写呢?
--  作者:jinzhe
--  发布时间:2016/10/10 17:20:16
--  
ss:=0;
vv:callstock(stklabel,vtvol,6);
n:ref(valuewhen(cross(sum(vol,todaybar)/vv>0.1,0.5),todaybar),todaybar);
for i=1 to n do begin
 ss:=ss+ref(large(abs(c-o),todaybar,i),todaybar);
end
p:ss;
--  作者:chyhao
--  发布时间:2016/10/11 9:55:04
--  

cross(sum(vol,todaybar)/vv>0.1,0.5)

为什么是0.5的,这句怎么理解?


--  作者:jinzhe
--  发布时间:2016/10/11 10:05:22
--  
这句是判断条件由不成立到成立的那个点的。条件判断就只有两个结果,0和1,那么结果上穿0.5必然是正好从0变成1,也就是条件刚好从不成立变成成立
--  作者:chyhao
--  发布时间:2016/10/11 17:06:12
--  
再请问一下,如果我想取昨天第3大的ABS(C-O)对应的收盘价和成交量,应该怎么写呢?
--  作者:jinzhe
--  发布时间:2016/10/11 17:12:55
--  

这个不好定位


--  作者:chyhao
--  发布时间:2016/10/11 17:26:27
--  
ss:=0;
vv:callstock(stklabel,vtvol,6);
n:ref(valuewhen(cross(sum(vol,todaybar)/vv>0.1,0.5),todaybar),todaybar);
for i=1 to n do begin
ss:=ss+ref(large(abs(c-o),todaybar,i),todaybar);
end
p:ss

 

 

这个好像不符合我的条件,我想前一天的ABS(C-O)从大到小排列,然后从大到小取出N个值,这N个值对应的VOL累加能达到前一天成交量的0.1,然后计算这N个ABS(C-O)的总和,但上边的写法n:ref(valuewhen(cross(sum(vol,todaybar)/vv>0.1,0.5),todaybar),todaybar) 应该是从昨天开盘按时间先后一直取的,并不是我想要的排列后按照大小取,老师们能帮忙再看看吗,谢谢?


--  作者:jinzhe
--  发布时间:2016/10/11 17:31:40
--  
那你这样的,实在是算不出