金字塔决策交易系统

 找回密码
 

微信登录

微信扫一扫,快速登录

搜索
查看: 424|回复: 9

如何统计一系列指标值中占比最小的那个值。

[复制链接]

13

主题

50

帖子

60

积分

Rank: 4

等级: 专业版

注册:
2022-10-26
曾用名:
103779
发表于 2024-7-29 09:39 | 显示全部楼层 |阅读模式
比如说100日的psy指标,我想统计这100日中从最高到最低范围内,数量达到80%的数据的最小值。
回复

使用道具 举报

13

主题

50

帖子

60

积分

Rank: 4

等级: 专业版

注册:
2022-10-26
曾用名:
103779
 楼主| 发表于 2024-7-29 09:42 | 显示全部楼层
截图202407290941199881.png 如图,假设阴影部分的数据数量占总数据量的80%,我想求下面那根水平线的值。
回复

使用道具 举报

0

主题

95

帖子

95

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-27
曾用名:
发表于 2024-7-29 09:50 | 显示全部楼层
本帖最后由 资深技术07 于 2024-7-29 10:03 编辑

SUM(COUNT(CLOSE>REF(CLOSE,1),M)/M*100,100)/100*0.2;      //代码为:先求和后,再求平均值的20%

求面积的,目前不能实现。只能用求和、求平均替代。
回复

使用道具 举报

13

主题

50

帖子

60

积分

Rank: 4

等级: 专业版

注册:
2022-10-26
曾用名:
103779
 楼主| 发表于 2024-7-29 10:08 | 显示全部楼层
资深技术07 发表于 2024-7-29 09:50
SUM(COUNT(CLOSE>REF(CLOSE,1),M)/M*100,100)/100*0.2;      //代码为:先求和后,再求平均值的20%

求面 ...

有没有更通用一点的算法,比如说我的指标会在0-3200区间内变动,这个公式就不准确了。

补充内容 (2024-7-29 10:09):
您提供的公式在0-100区间内可用,但是在不定的范围内就不准确。
回复

使用道具 举报

0

主题

95

帖子

95

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-27
曾用名:
发表于 2024-7-29 10:30 | 显示全部楼层
本帖最后由 资深技术07 于 2024-7-29 10:31 编辑

第1个100是psy指标里自带的,第2和第3个100是您说的100日个数据。公式是通用的。
0.2是您1楼说的80%换算来的,即为:1-80%=20%=0.2
回复

使用道具 举报

13

主题

50

帖子

60

积分

Rank: 4

等级: 专业版

注册:
2022-10-26
曾用名:
103779
 楼主| 发表于 2024-7-29 11:08 | 显示全部楼层
A:(SUM(C,100)/100)*0.2;

P:COUNT(C>A,100)/100;

我化简了一下,以收盘价为指标,A应该是100日内80%的收盘价所在的最小值,可是C>A的百日内的占比却不是0.8。

补充内容 (2024-7-29 11:14):
可以这么理解,我想把任意指标100日内的数据(共100个数)从高到小排序,选出第80个数A,即100日内,有80%的数据均大于A,求这个A值。
回复

使用道具 举报

0

主题

95

帖子

95

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-27
曾用名:
发表于 2024-7-29 13:38 | 显示全部楼层
本帖最后由 资深技术07 于 2024-7-29 14:53 编辑

不好意思,之前理解错了。您看看这个满足需求吗?
LARGE(COUNT(CLOSE>REF(CLOSE,1),M)/M*100,100,80);
回复

使用道具 举报

13

主题

50

帖子

60

积分

Rank: 4

等级: 专业版

注册:
2022-10-26
曾用名:
103779
 楼主| 发表于 2024-7-29 15:53 | 显示全部楼层

GLOBALVARIABLE:X:=0;
X:=LARGE(C,5,4);
P:COUNT(C>=X,5)/5,NOAXIS;

还有一个问题,就是这个公式必须要使用全局变量才能保持结果正确,然后前面的数据也不对,只有最后一个数据是正确的,怎么修改?
回复

使用道具 举报

0

主题

95

帖子

95

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-27
曾用名:
发表于 2024-7-29 16:27 | 显示全部楼层
本帖最后由 资深技术07 于 2024-7-29 16:50 编辑

采用下面的方法,在K线上输出,观察到:排序在历史和最后一根K线上都是正确的,也不需要用全局变量
X:LARGE(C,5,4);
a1:LARGE(C,5,1),linethick0;
a2:LARGE(C,5,2),linethick0;
a3:LARGE(C,5,3),linethick0;
a4:LARGE(C,5,4),linethick0;
a5:LARGE(C,5,5),linethick0;

COUNT(C>=X,5)计算的值,也是正确的。
每根K线上,都是对应的前5跟K线的第四大的X和Close,的对比

回复

使用道具 举报

13

主题

50

帖子

60

积分

Rank: 4

等级: 专业版

注册:
2022-10-26
曾用名:
103779
 楼主| 发表于 2024-7-29 16:58 | 显示全部楼层
资深技术07 发表于 2024-7-29 16:27
采用下面的方法,在K线上输出,观察到:排序在历史和最后一根K线上都是正确的,也不需要用全局变量
X:LARG ...

好的,谢谢
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 微信登录

本版积分规则

手机版|小黑屋|上海金之塔信息技术有限公司 ( 沪ICP备13035422号 )

GMT+8, 2024-12-22 12:00 , Processed in 0.257973 second(s), 24 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表