java 寻找峰值峰谷_java – 时间序列中的峰值检测

你似乎只是寻找斜率反转(从正到负,反之亦然).粗略的java算法可以(未测试):

List points = ... //all the points in your curve

List extremes = new ArrayList ();

double previous = null;

double previousSlope = 0;

for (Point p : points) {

if (previous == null) { previous = p; continue; }

double slope = p.getValue() - previous.getValue();

if (slope * previousSlope < 0) { //look for sign changes

extremes.add(previous);

}

previousSlope = slope;

previous = p;

}

最后,测量相似度的一个好方法是相关性.在你的情况下,我会看看%move相关性(换句话说,你希望你的2系列同时上升或下降) – 这通常是在你计算2个资产回报之间的关联的财务中做的:

>为2系列的每个点创建2个新的系列,%移动

>计算这两个系列之间的相关性

Series 1 Series 2

100 50

98 49

100 52

102 54

“回报”系列将是:

Series 1 Series 2

-2.00% -2.00%

+2.04% +6.12%

+2.00% +3.85%

并且您计算那些2个返回系列(在本例中为0.96)的相关性,以获得两条曲线看起来相同程度的度量.您可能需要将结果调整为方差(即,如果一个形状的范围比另一个更宽).

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值