第一:这个问题不是重复的。我已经在这里问过这个问题,它已作为副本关闭。虽然它类似于 stackoverflow 上的其他线程,但实际上要复杂得多。在假设它是重复的之前,请阅读该帖子:
我正在尝试计算可变日期与可变移动平均线的交叉。
即:我想提示用户输入 3 个值和 1 个选项。输入是通过 Web 前端进行的,因此我可以根据输入构建/编辑查询,或者在需要时进行多个查询。
X = 1st moving average term (N day moving average. Any number 1-N)
Y = 2nd moving average term. (N day moving average. Any number 1-N)
Z = Amount of days back from present to search for the occurance of:
option = Over/Under: (> or <. X passing over Y, or X passing Under Y)
X day moving average passing over OR under Y day moving average
within the past Z days.
我的数据库是结构化的:
tbl_daily_data
id
stock_id
date
adj_close
和:
tbl_stocks
stock_id
symbol
我有一个 btree 索引:
daily_data(stock_id, date, adj_close)
stock_id
我被困在这个查询上并且在编写它时遇到了很多麻烦。如果变量是固定的,这似乎微不足道,但因为 X、Y、Z 都是 100% 相互独立的(例如,可以查看过去 100 天内的 5 天移动平均线,或过去 5 天内的 100 天移动平均线) ) 我在编码时遇到了很多麻烦。
请帮忙!:(
编辑:有人告诉我更多上下文可能会有所帮助?
我们正在创建一个开放的股票分析系统,用户可以在其中进行趋势分析。我有一个数据库,其中包含 3500 只股票及其自 1970 年以来的价格历史。
此查询将每天运行,以查找符合特定条件的股票,例如:
10天移动平均线在5天内超过20天移动平均线
5天内20天低于10天移动平均线
100天内55天低于22天移动平均线
但是每个用户可能对不同的分析感兴趣,所以我不能只存储每行的移动平均值,它必须被计算出来。