以文本方式查看主题

-  金字塔客服中心 - 专业程序化交易软件提供商  (http://weistock.com/bbs/index.asp)
--  公式模型编写问题提交  (http://weistock.com/bbs/list.asp?boardid=4)
----  请问percentile的具体用法  (http://weistock.com/bbs/dispbbs.asp?boardid=4&id=154909)

--  作者:damoncles
--  发布时间:2017/6/9 10:34:33
--  请问percentile的具体用法
比如我要取收盘价c,从今天起往前N个周期内排名95%的数据,怎么取
--  作者:FexTel
--  发布时间:2017/6/9 10:51:47
--  
排名95%是指前95对应的收盘价?  这个你要先排序,后取值
--  作者:damoncles
--  发布时间:2017/6/9 15:43:30
--  

请问代码该怎么写啊


--  作者:pyd
--  发布时间:2017/6/9 15:47:42
--  

先把需要描述清楚了才可以写,请回复2楼的问题


--  作者:damoncles
--  发布时间:2017/6/9 16:04:51
--  

建立一个指标,该指标当前周期的数值为该股前N个周期(含当前周期)收盘价从高到低排序第95%位


--  作者:pyd
--  发布时间:2017/6/9 16:48:12
--  

看下这个函数large

[此贴子已经被作者于2017/6/9 16:52:14编辑过]

--  作者:damoncles
--  发布时间:2017/6/13 8:48:03
--  

M,N,F为参数

 

for k:=2 to datacount do
begin
 zhengfu[k]:=abs(l[k]-c[k-1]);
 zhangdie[k]:=c[k]-c[k-1];
 if zhangdie[k]<0 then begin
  bili[k]:=(zhengfu[k]+abs(zhangdie[k]))/2/c[k-1];
  liudong[k]:=bili[k]/amount[k]*N*10000*100;
 end;
 else begin
  bili[k]:=0;
  liudong[k]:=0;
 end;
end;
ll:=liudong; 

 

//以上部分创造了一个序列变量ll


mm:large(ll,M,intpart(F/100*M)+1);

 

//取ll前M个周期,从大到小第F%位,为何不显示数据?


--  作者:wenarm
--  发布时间:2017/6/13 10:29:53
--  

不明白你的处理逻辑。并且也没必要通过数组这样处理,你使用的变量本身就是序列变量。

直接就可以用下面的方式。

mm:large(close,20,3);//20个周期的收盘价内排名第三的值