10.4 计算一周的第一日和最后一日
计算一周的第一日和最后一日。
当前日期是 2020/02/17,求上证指数上一周的涨幅。部分数据如下:
Date | Open | Close | Amount |
---|---|---|---|
2020/02/17 | 2924.9913 | 2983.6224 | 3.67E11 |
2020/02/14 | 2899.8659 | 2917.0077 | 3.08E11 |
2020/02/13 | 2927.1443 | 2906.0735 | 3.35E11 |
2020/02/12 | 2895.5561 | 2926.8991 | 2.98E11 |
2020/02/11 | 2894.5414 | 2901.6744 | 3.03E11 |
… | … | … | … |
使用函数 pdate(dateExp) 获得指定日期 dateExp 所在星期 / 月 / 季度的最早的一天和最后的一天。
脚本:
A | |
---|---|
1 | =file(“sh000001.csv”).import@cqt() |
2 | =A1.sort(Date) |
3 | =pdate@w(A2.m(-1).Date) |
4 | =A2.select@z1(Date<=A3-2) |
5 | =pdate@w(A4.Date) |
6 | =A2.select@z1(Date<=A5-2) |
7 | =A4.Close/A6.Close-1 |
A1 读取上证指数数据
A2 按日期排序
A3 使用 pdate() 函数的 @w 选项,选出当天(2020/02/17)所在星期的第一天(周日)
A4 从后往前查找上周 5 以前的第 1 条记录,即上一交易周的最后一条记录
A5 求上一个交易周的第一天(周日)
A6 从后往前查找上一个交易周的前一个周 5 的第 1 条记录,即上上交易周的最后一条记录
A7 计算涨幅
运行结果:
Value |
---|
0.01427 |