5.6 Locate multiple specified members and compare each with the neighboring row

 

Calculate the growth rate of closing price in each day of the last 10 transaction dates in the year 2019 compared with price of the previous day. Below is part of the data table:

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

SPL script:

A
1 =T(“000001.csv”)
2 =A1.select(year(Date)==2019).sort(Date)
3 =A2.p(to(-10,-1))
4 =A3.new(A2(~).Date:Date, string(A2(~).Close/A2(~-1).Close-1, “0.000%” ):Increase)

A1 Import the data file.
A2 Select records of the year 2019 and sort them by date.
A3 Use A.p() function to return ordinal numbers of the last 10 records.
A4 Loop each day to calculate growth rate of the current closing price compared with price of the previous transaction date.

Execution result:

Date Increase
2019/12/18 -0.178%
2019/12/19 0.001%
2019/12/20 -0.402%
2019/12/23 -1.404%
2019/12/24 0.673%