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

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))