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 从后向前取出股市最高点记录的序号