1.18 有序:找出最大值成员序号后再跨行运算
查找最大值位置,并取出记录跨行计算。根据股市交易表,统计上证指数收盘价最高的当天,相对前日的涨幅。
Date | Open | Close | Amount |
---|---|---|---|
2019/12/31 | 3036.3858 | 3050.124 | 2.27E11 |
2019/12/30 | 2998.1689 | 3040.0239 | 2.67E11 |
2019/12/27 | 3006.8517 | 3005.0355 | 2.58E11 |
2019/12/26 | 2981.2485 | 3007.3546 | 1.96E11 |
2019/12/25 | 2980.4276 | 2981.8805 | 1.9E11 |
… | … | … | … |
我们需要知道股市最高点记录的序号,再与上一个交易日比较得出结果。
脚本:
A | |
---|---|
1 | =T(“000001.csv”) |
2 | =A1.sort(Date) |
3 | =A2.pmax(Close) |
4 | =A2.calc(A3,Close/Close[-1]-1) |
A1 导入数据文件
A2 按日期排序
A3 取出股市最高点的成员序号
A4 使用当天收盘价和前日收盘价计算涨幅
同样可以使用 pmin 函数来取最小值的成员序号:
A | |
---|---|
3 | =A3.pmin(Close) |
A3 取出股市最低点的成员序号
最大值所在记录不一定是唯一的,如果想返回所有记录的序号,可以使用 pmax@a 选项:
A | |
---|---|
3 | =A2.pmax@a(Close) |
4 | =A2.calc(A3,Close/Close[-1]-1) |
A3 取出所有股市最高点记录的序号
A4 循环使用当天收盘价和前日收盘价计算涨幅
如果希望从后向前定位,可以使用 pmax@z 选项:
A | |
---|---|
3 | =A2.pmax@z(Close) |
A3 从后向前取出股市最高点记录的序号