我问的问题和这个问题有些类似,原始数据如下:
| n | v1 | v3 | v5 | v8 |
| 1 | 1 | 0 | 1 | 42345 |
| 2 | 0 | 3 | 1 | 42310 |
| 3 | 1 | 0 | 1 | 42490 |
| 4 | 0 | 3 | 1 | 42450 |
| 5 | 0 | 0 | 1 | 42475 |
| 6 | 1 | 3 | 1 | 42535 |
| 7 | 1 | 0 | 1 | 42630 |
| 8 | 0 | 0 | 1 | 42770 |
| 9 | 1 | 3 | 1 | 42875 |
| 10 | 0 | 3 | 1 | 42725 |
| 11 | 0 | 0 | 1 | 42810 |
| 12 | 1 | 3 | 1 | 42880 |
| 13 | 0 | 0 | 1 | 42790 |
| 14 | 1 | 0 | 1 | 42715 |
| 15 | 0 | 3 | 1 | 42740 |
| 16 | 0 | 0 | 1 | 42760 |
| 17 | 1 | 3 | 2 | 42825 |
问题如下:数据中n是序号,v1是买卖标志(1=卖出,0=买入),v3是开仓或平仓标志(0=开仓,3=平仓)v5是成交数量
需要的数据形式如下:
| n | v1 | v3 | v5 | v8 | d |
| 1 | 1 | 0 | 1 | 42345 | 1 |
| 2 | 0 | 3 | 1 | 42310 | 1 |
| 3 | 1 | 0 | 1 | 42490 | 2 |
| 4 | 0 | 3 | 1 | 42450 | 2 |
| 5 | 0 | 0 | 1 | 42475 | 3 |
| 6 | 1 | 3 | 1 | 42535 | 3 |
| 7 | 1 | 0 | 1 | 42630 | 4 |
| 10 | 0 | 3 | 1 | 42725 | 4 |
| 8 | 0 | 0 | 1 | 42770 | 5 |
| 9 | 1 | 3 | 1 | 42875 | 5 |
| 11 | 0 | 0 | 1 | 42810 | 6 |
| 12 | 1 | 3 | 1 | 42880 | 6 |
| 13 | 0 | 0 | 1 | 42790 | 7 |
| 16 | 0 | 0 | 1 | 42760 | 7 |
| 17 | 1 | 3 | 2 | 42825 | 7 |
| 14 | 1 | 0 | 1 | 42715 | 8 |
| 15 | 0 | 3 | 1 | 42740 | 8 |
具体的说,观测1通过卖出开仓,观测2通过买入平仓,所以放在了一组(d=1);同理,观测7通过卖出开仓,但是直到观测10才通过买入平仓,所以放在一组(d=4);观测13通过买入开仓、观测16又买入1手增仓,观测17卖出2手平仓,所以放在同一组中(d=8)
另外,更具体一点:观测7是卖出开仓,但是8是买入开了另外一个仓,9是卖出平了8开的仓,10是通过买入平了7开的仓,所以7和10要放在一起,而8和9放在一起
补充:我这里只是一个品种的示例文件,所有开平仓都是对这一个品种的操作,而且n表示的顺序是按照时间先后排序的,所以10的平仓时针对于7的开仓进行的。
请问上面这种分组应该如何实现,希望给位大神指点迷津!!




雷达卡




京公网安备 11010802022788号







