我有一个psql数据库,其中包含各种股票的时间序列值.我想知道,如果股票价值在过去45天内增加了50%.我想检测曲线中的这种突然变化.现在,我的重点是增加价值.主要是二次曲线,虽然找到线性/对数也会很好.
我会稍后突然下降.有关如何检测曲线中此类模式的指示?是不是可以在sql中做到这一点?我也愿意学习任何数学分析工具或语言.
最佳答案 要获得这种信息,可以采取许多方法.如果此报告每隔一段时间运行一次,那么您可以在较旧的日期使用SQL查询将表连接到自身.假设您有一个日期,stock_ticker和price作为字段,查询可能如下所示:
SELECT base.date,
base.stock_ticker,
((base.price - old.price) / old.price) as gain
FROM stocks as base
LEFT OUTER JOIN stocks as old
ON base.stock_ticker = old.stock_ticker
AND base.date = old.date + cast('45 days' as interval)
这将为您提供一个表格,其中包含日期,股票代码以及自45天前价格以来价格上涨的价格.通过这种方式,您可以将其用作子查询,使用WITH子句对其进行别名,或者对其进行其他工作.
如果您不是仅仅寻找一段时间内的比率,您可以使用相同的技术来获得每日平均值,并使用该数据找到移动平均线.