# 数据的批量完整下载方式代码

<https://github.com/rainx/pytdx/issues/21> via yutiansut

看到有issue提出不知道如果下载完整的数据,关于数据位置指针的使用,给一个示例代码:

```
from pytdx.hq import  TdxHq_API
api=TdxHq_API()

with api.connect():
     data=[]

      for i in range(10):
              data+=api.get_security_bars(9,0,'000001',(9-i)*800,800)
print(api.to_df(data))
```

| open  | close | high  | low   | vol       | amount       | year | month | day | hour | minute | datetime         |
| ----- | ----- | ----- | ----- | --------- | ------------ | ---- | ----- | --- | ---- | ------ | ---------------- |
| 27.70 | 27.80 | 27.90 | 27.60 | 1270.0    | 3.530600e+06 | 1991 | 12    | 23  | 15   | 0      | 1991-12-23 15:00 |
| 27.90 | 29.05 | 29.30 | 27.00 | 1050.0    | 3.050250e+06 | 1991 | 12    | 24  | 15   | 0      | 1991-12-24 15:00 |
| 29.15 | 29.30 | 30.00 | 29.10 | 2269.0    | 6.648170e+06 | 1991 | 12    | 25  | 15   | 0      | 1991-12-25 15:00 |
| 29.30 | 28.00 | 29.30 | 28.00 | 1918.0    | 5.370400e+06 | 1991 | 12    | 26  | 15   | 0      | 1991-12-26 15:00 |
| 28.00 | 28.45 | 28.50 | 28.00 | 2105.0    | 5.988725e+06 | 1991 | 12    | 27  | 15   | 0      | 1991-12-27 15:00 |
| 28.40 | 29.25 | 29.30 | 28.40 | 1116.0    | 3.264300e+06 | 1991 | 12    | 28  | 15   | 0      | 1991-12-28 15:00 |
| 29.30 | 28.80 | 29.40 | 28.80 | 1059.0    | 3.049920e+06 | 1991 | 12    | 30  | 15   | 0      | 1991-12-30 15:00 |
| 29.15 | 29.15 | 29.40 | 29.00 | 1886.0    | 5.497690e+06 | 1992 | 1     | 2   | 15   | 0      | 1992-01-02 15:00 |
| 29.20 | 29.10 | 29.30 | 29.00 | 2212.0    | 6.436920e+06 | 1992 | 1     | 3   | 15   | 0      | 1992-01-03 15:00 |
| 29.10 | 29.70 | 29.80 | 29.05 | 2634.0    | 7.822980e+06 | 1992 | 1     | 6   | 15   | 0      | 1992-01-06 15:00 |
| 29.70 | 29.90 | 30.20 | 29.55 | 2931.0    | 8.763690e+06 | 1992 | 1     | 7   | 15   | 0      | 1992-01-07 15:00 |
| 29.80 | 29.65 | 30.20 | 29.55 | 1928.0    | 5.716520e+06 | 1992 | 1     | 8   | 15   | 0      | 1992-01-08 15:00 |
| 29.70 | 29.70 | 29.80 | 29.30 | 1535.0    | 4.558950e+06 | 1992 | 1     | 9   | 15   | 0      | 1992-01-09 15:00 |
| 29.65 | 29.80 | 29.80 | 29.50 | 1525.0    | 4.544500e+06 | 1992 | 1     | 10  | 15   | 0      | 1992-01-10 15:00 |
| 29.80 | 29.65 | 29.80 | 29.60 | 1353.0    | 4.011645e+06 | 1992 | 1     | 13  | 15   | 0      | 1992-01-13 15:00 |
| 29.65 | 29.20 | 29.65 | 29.00 | 1711.0    | 4.996120e+06 | 1992 | 1     | 14  | 15   | 0      | 1992-01-14 15:00 |
| 29.20 | 29.10 | 29.40 | 29.00 | 2205.0    | 6.416550e+06 | 1992 | 1     | 15  | 15   | 0      | 1992-01-15 15:00 |
| 29.00 | 28.90 | 29.00 | 28.55 | 1268.0    | 3.664520e+06 | 1992 | 1     | 16  | 15   | 0      | 1992-01-16 15:00 |
| 28.90 | 28.80 | 28.90 | 28.35 | 1143.0    | 3.291840e+06 | 1992 | 1     | 17  | 15   | 0      | 1992-01-17 15:00 |
| 28.80 | 29.45 | 29.50 | 28.80 | 1085.0    | 3.195325e+06 | 1992 | 1     | 20  | 15   | 0      | 1992-01-20 15:00 |
| 29.50 | 29.30 | 29.80 | 29.20 | 1576.0    | 4.617680e+06 | 1992 | 1     | 21  | 15   | 0      | 1992-01-21 15:00 |
| 29.25 | 28.95 | 29.30 | 28.80 | 1592.0    | 4.608840e+06 | 1992 | 1     | 22  | 15   | 0      | 1992-01-22 15:00 |
| 28.95 | 29.20 | 29.30 | 28.95 | 1477.0    | 4.312840e+06 | 1992 | 1     | 23  | 15   | 0      | 1992-01-23 15:00 |
| 29.25 | 29.05 | 29.70 | 29.05 | 2327.0    | 6.759935e+06 | 1992 | 1     | 24  | 15   | 0      | 1992-01-24 15:00 |
| 29.55 | 29.40 | 29.60 | 29.30 | 2571.0    | 7.558740e+06 | 1992 | 1     | 27  | 15   | 0      | 1992-01-27 15:00 |
| 29.40 | 29.50 | 29.50 | 29.35 | 2336.0    | 6.891200e+06 | 1992 | 1     | 28  | 15   | 0      | 1992-01-28 15:00 |
| 29.50 | 30.00 | 30.05 | 29.50 | 2127.0    | 6.381000e+06 | 1992 | 1     | 29  | 15   | 0      | 1992-01-29 15:00 |
| 29.95 | 30.20 | 30.35 | 29.95 | 1735.0    | 5.239700e+06 | 1992 | 1     | 30  | 15   | 0      | 1992-01-30 15:00 |
| 31.15 | 32.00 | 32.00 | 31.15 | 2228.0    | 7.129600e+06 | 1992 | 2     | 1   | 15   | 0      | 1992-02-01 15:00 |
| 32.00 | 32.32 | 32.70 | 31.90 | 1735.0    | 5.607520e+06 | 1992 | 2     | 2   | 15   | 0      | 1992-02-02 15:00 |
| ...   | ...   | ...   | ...   | ...       | ...          | ...  | ...   | ... | ...  | ...    | ...              |
| 9.30  | 9.36  | 9.39  | 9.27  | 546016.0  | 5.091620e+08 | 2017 | 6     | 27  | 15   | 0      | 2017-06-27 15:00 |
| 9.35  | 9.43  | 9.49  | 9.33  | 1168796.0 | 1.102438e+09 | 2017 | 6     | 28  | 15   | 0      | 2017-06-28 15:00 |
| 9.43  | 9.43  | 9.45  | 9.37  | 488804.0  | 4.598104e+08 | 2017 | 6     | 29  | 15   | 0      | 2017-06-29 15:00 |
| 9.40  | 9.39  | 9.43  | 9.31  | 499633.0  | 4.680035e+08 | 2017 | 6     | 30  | 15   | 0      | 2017-06-30 15:00 |
| 9.40  | 9.40  | 9.43  | 9.34  | 388349.0  | 3.644659e+08 | 2017 | 7     | 3   | 15   | 0      | 2017-07-03 15:00 |
| 9.40  | 9.34  | 9.41  | 9.30  | 488362.0  | 4.565770e+08 | 2017 | 7     | 4   | 15   | 0      | 2017-07-04 15:00 |
| 9.29  | 9.37  | 9.38  | 9.27  | 567720.0  | 5.292941e+08 | 2017 | 7     | 5   | 15   | 0      | 2017-07-05 15:00 |
| 9.36  | 9.40  | 9.41  | 9.31  | 738911.0  | 6.913872e+08 | 2017 | 7     | 6   | 15   | 0      | 2017-07-06 15:00 |
| 9.37  | 9.47  | 9.48  | 9.34  | 760369.0  | 7.170844e+08 | 2017 | 7     | 7   | 15   | 0      | 2017-07-07 15:00 |
| 9.45  | 9.59  | 9.66  | 9.44  | 1360815.0 | 1.303090e+09 | 2017 | 7     | 10  | 15   | 0      | 2017-07-10 15:00 |
| 9.61  | 10.25 | 10.46 | 9.61  | 3812086.0 | 3.842010e+09 | 2017 | 7     | 11  | 15   | 0      | 2017-07-11 15:00 |
| 10.27 | 10.34 | 10.58 | 10.20 | 2998844.0 | 3.113681e+09 | 2017 | 7     | 12  | 15   | 0      | 2017-07-12 15:00 |
| 10.30 | 10.90 | 10.90 | 10.24 | 2994534.0 | 3.180145e+09 | 2017 | 7     | 13  | 15   | 0      | 2017-07-13 15:00 |
| 10.81 | 10.90 | 10.94 | 10.66 | 1722570.0 | 1.864449e+09 | 2017 | 7     | 14  | 15   | 0      | 2017-07-14 15:00 |
| 10.95 | 10.81 | 11.33 | 10.72 | 3273123.0 | 3.608692e+09 | 2017 | 7     | 17  | 15   | 0      | 2017-07-17 15:00 |
| 10.75 | 11.05 | 11.14 | 10.62 | 2349431.0 | 2.558434e+09 | 2017 | 7     | 18  | 15   | 0      | 2017-07-18 15:00 |
| 10.99 | 11.09 | 11.19 | 10.88 | 1933075.0 | 2.131336e+09 | 2017 | 7     | 19  | 15   | 0      | 2017-07-19 15:00 |
| 11.08 | 10.97 | 11.22 | 10.91 | 1537338.0 | 1.695061e+09 | 2017 | 7     | 20  | 15   | 0      | 2017-07-20 15:00 |
| 10.83 | 10.89 | 10.95 | 10.69 | 1501020.0 | 1.625416e+09 | 2017 | 7     | 21  | 15   | 0      | 2017-07-21 15:00 |
| 10.82 | 10.95 | 11.06 | 10.73 | 1692664.0 | 1.846887e+09 | 2017 | 7     | 24  | 15   | 0      | 2017-07-24 15:00 |
| 10.98 | 11.00 | 11.27 | 10.95 | 1954768.0 | 2.172115e+09 | 2017 | 7     | 25  | 15   | 0      | 2017-07-25 15:00 |
| 10.92 | 10.74 | 11.18 | 10.66 | 1697412.0 | 1.846282e+09 | 2017 | 7     | 26  | 15   | 0      | 2017-07-26 15:00 |
| 10.72 | 10.59 | 10.77 | 10.53 | 1194490.0 | 1.273889e+09 | 2017 | 7     | 27  | 15   | 0      | 2017-07-27 15:00 |
| 10.61 | 10.74 | 10.81 | 10.58 | 819195.0  | 8.777693e+08 | 2017 | 7     | 28  | 15   | 0      | 2017-07-28 15:00 |
| 10.80 | 10.67 | 10.82 | 10.45 | 1575864.0 | 1.671814e+09 | 2017 | 7     | 31  | 15   | 0      | 2017-07-31 15:00 |
| 10.64 | 11.04 | 11.08 | 10.60 | 2035709.0 | 2.222888e+09 | 2017 | 8     | 1   | 15   | 0      | 2017-08-01 15:00 |
| 11.05 | 11.15 | 11.34 | 10.96 | 2062069.0 | 2.307727e+09 | 2017 | 8     | 2   | 15   | 0      | 2017-08-02 15:00 |
| 11.14 | 11.01 | 11.22 | 10.97 | 984219.0  | 1.090954e+09 | 2017 | 8     | 3   | 15   | 0      | 2017-08-03 15:00 |
| 11.00 | 11.17 | 11.29 | 10.93 | 1353951.0 | 1.511390e+09 | 2017 | 8     | 4   | 15   | 0      | 2017-08-04 15:00 |
| 11.06 | 11.00 | 11.17 | 10.90 | 860644.0  | 9.469757e+08 | 2017 | 8     | 7   | 15   | 0      | 2017-08-07 15:00 |

这么做的原因很简单,改变指针的位置

分别是

```
0-799

800-1599

1600-2399

....
```

依次

然后需要注意的是 0代表的是今天的指针 ,所以 指针获取方式要翻过来写 首先是 7200-7999的数据

最后才是0-799的数据

基本上 日线级别 8000条足够覆盖了

分钟线,小时线要长一点

封装成函数

```

from pytdx.hq import  TdxHq_API
api=TdxHq_API()


def get_all_day_data():
   with api.connect():
        data=[]

        for i in range(10):
              data+=api.get_security_bars(9,0,'000001',(9-i)*800,800)
    print(api.to_df(data))
```
