最近一直想获得周线的数据,首先想到的是用history或者attribu_history函数,unit改成‘5d’,也就是以五天的数据为一个周期,后来发现这样执行下去完全不可靠。首先一周不一定有五天,比如在节假日的时候,一周的交易日到不了五天。再者,用这种方法,获得的数据并不是按周的节点进行分割,而是每五个交易日划分一个节点,如果恰好是在周五执行,那么能把一周五天的交易日分在一起。否则,就完全混乱了,跟主流交易软件的行情数据不一致。
然后,看社区里以及函数库里各位老师的文章,才想到可以用get_bars函数。
截了一张图,就是下面酱样子啦~
import pandas as pd
data = {}
#设置股票池,此处以次新股为例
stocks=get_concept_stocks('GN189')
for stock in stocks:
#获取5个单位长度为‘5d’的开高低收数据
array1 = attribute_history(stock,5,unit = '5d',fields = ['open','close','high','low'])
#获得一个字典,key为股票名称,value为df数据
data[stock] = array1
#根据data字典创建panel
p = pd.Panel(data)
p
<class 'pandas.core.panel.Panel'> Dimensions: 27 (items) x 11 (major_axis) x 4 (minor_axis) Items axis: 002932.XSHE to 603713.XSHG Major_axis axis: 2018-08-27 00:00:00 to 2018-09-25 00:00:00 Minor_axis axis: open to low
p['603713.XSHG']
open | close | high | low | |
---|---|---|---|---|
2018-08-27 | 42.58 | 42.95 | 46.50 | 38.70 |
2018-08-29 | NaN | NaN | NaN | NaN |
2018-08-31 | NaN | NaN | NaN | NaN |
2018-09-02 | NaN | NaN | NaN | NaN |
2018-09-03 | 43.08 | 48.05 | 49.22 | 42.54 |
2018-09-05 | NaN | NaN | NaN | NaN |
2018-09-07 | NaN | NaN | NaN | NaN |
2018-09-10 | 50.50 | 42.08 | 58.10 | 41.00 |
2018-09-12 | NaN | NaN | NaN | NaN |
2018-09-17 | 41.40 | 38.56 | 42.65 | 37.81 |
2018-09-25 | 38.49 | 39.51 | 41.36 | 37.89 |
for stock in stocks:
p[stock].dropna(inplace = True)
p['603713.XSHG']
open | close | high | low | |
---|---|---|---|---|
2018-08-27 | 42.58 | 42.95 | 46.50 | 38.70 |
2018-09-03 | 43.08 | 48.05 | 49.22 | 42.54 |
2018-09-10 | 50.50 | 42.08 | 58.10 | 41.00 |
2018-09-17 | 41.40 | 38.56 | 42.65 | 37.81 |
2018-09-25 | 38.49 | 39.51 | 41.36 | 37.89 |
frames =[]
for stock in stocks:
array1 = get_bars(stock,4,unit = '1w',fields = ['open','close','high','low'])
s = pd.DataFrame(array1, index=[stock]*len(array1), columns=['open', 'close', 'high', 'low'])
frames.append(s)
result = pd.concat(frames)
result
open | close | high | low | |
---|---|---|---|---|
002932.XSHE | 69.01 | 68.72 | 73.88 | 67.99 |
002932.XSHE | 67.53 | 63.38 | 67.71 | 61.94 |
002932.XSHE | 63.38 | 61.00 | 69.31 | 61.00 |
002932.XSHE | 58.09 | 57.60 | 60.24 | 56.94 |
002933.XSHE | 26.94 | 43.03 | 43.03 | 26.94 |
002933.XSHE | 47.33 | 69.30 | 69.30 | 47.33 |
002933.XSHE | 73.00 | 61.48 | 73.95 | 61.48 |
002933.XSHE | 58.81 | 59.03 | 62.40 | 56.03 |
002935.XSHE | 25.59 | 40.87 | 40.87 | 25.59 |
002935.XSHE | 44.96 | 59.16 | 65.84 | 44.96 |
002935.XSHE | 55.50 | 53.73 | 59.55 | 52.30 |
002938.XSHE | 19.28 | 26.17 | 30.00 | 19.28 |
300724.XSHE | 32.43 | 30.94 | 35.35 | 30.68 |
300724.XSHE | 31.69 | 34.47 | 34.80 | 30.11 |
300724.XSHE | 34.48 | 28.15 | 37.00 | 28.15 |
300724.XSHE | 27.38 | 26.30 | 28.09 | 25.82 |
300746.XSHE | 23.68 | 22.68 | 25.02 | 22.61 |
300746.XSHE | 22.00 | 23.79 | 24.80 | 20.95 |
300746.XSHE | 23.36 | 21.28 | 24.18 | 21.05 |
300746.XSHE | 20.97 | 20.93 | 21.97 | 20.00 |
300747.XSHE | 160.51 | 161.00 | 177.00 | 160.51 |
300747.XSHE | 160.11 | 169.50 | 175.50 | 156.22 |
300747.XSHE | 168.00 | 151.87 | 174.95 | 151.87 |
300747.XSHE | 146.13 | 154.63 | 156.30 | 144.00 |
300750.XSHE | 68.58 | 65.50 | 74.32 | 65.01 |
300750.XSHE | 64.80 | 63.32 | 64.88 | 60.32 |
300750.XSHE | 63.56 | 65.90 | 69.00 | 61.00 |
300750.XSHE | 64.57 | 69.19 | 69.90 | 62.99 |
601066.XSHG | 8.31 | 8.16 | 8.63 | 8.12 |
601066.XSHG | 8.15 | 8.29 | 8.57 | 8.08 |
... | ... | ... | ... | ... |
603587.XSHG | 26.43 | 25.87 | 27.38 | 25.82 |
603587.XSHG | 25.50 | 25.43 | 25.54 | 24.71 |
603590.XSHG | 35.05 | 51.33 | 51.33 | 35.05 |
603590.XSHG | 56.46 | 51.74 | 56.46 | 51.00 |
603590.XSHG | 50.92 | 45.00 | 52.42 | 44.66 |
603590.XSHG | 44.01 | 43.01 | 45.00 | 42.30 |
603650.XSHG | 30.90 | 29.13 | 32.43 | 29.00 |
603650.XSHG | 28.70 | 28.31 | 29.35 | 26.66 |
603650.XSHG | 28.50 | 27.37 | 31.00 | 27.00 |
603650.XSHG | 26.88 | 26.45 | 27.18 | 25.67 |
603657.XSHG | 52.44 | 47.42 | 61.98 | 46.52 |
603657.XSHG | 46.98 | 44.57 | 48.98 | 43.38 |
603657.XSHG | 46.00 | 38.30 | 46.80 | 37.61 |
603657.XSHG | 37.68 | 37.40 | 41.62 | 36.44 |
603666.XSHG | 91.02 | 83.58 | 94.35 | 83.58 |
603666.XSHG | 82.67 | 87.60 | 90.60 | 80.83 |
603666.XSHG | 86.80 | 83.00 | 90.88 | 82.00 |
603666.XSHG | 81.98 | 83.21 | 83.97 | 78.50 |
603693.XSHG | 19.59 | 18.11 | 19.96 | 17.84 |
603693.XSHG | 18.31 | 19.78 | 20.43 | 17.70 |
603693.XSHG | 19.78 | 18.51 | 22.35 | 18.42 |
603693.XSHG | 17.79 | 16.96 | 17.79 | 16.66 |
603706.XSHG | 40.51 | 36.88 | 41.63 | 36.59 |
603706.XSHG | 37.00 | 37.85 | 40.70 | 34.10 |
603706.XSHG | 37.75 | 35.56 | 41.64 | 35.52 |
603706.XSHG | 34.19 | 32.88 | 36.35 | 32.25 |
603713.XSHG | 41.11 | 43.68 | 49.22 | 41.03 |
603713.XSHG | 44.70 | 42.01 | 58.10 | 41.00 |
603713.XSHG | 41.70 | 39.22 | 42.80 | 38.05 |
603713.XSHG | 38.08 | 38.75 | 41.36 | 37.81 |
102 rows × 4 columns
#输入一个股票池,获取其get_bars数据,并返回一个DataFrame
def get_stocklist_bars(stocklist1,count1,unit1 = '1w',fields1 = ['date','open','high','low','close'],include_now1 = False,end_dt1=None, fq_ref_date1=None):
frames =[]
for stock in stocklist1:
array1 = get_bars(stock,count=count1,unit=unit1,fields=fields1 ,include_now =include_now1,end_dt=end_dt1, fq_ref_date=fq_ref_date1)
s = pd.DataFrame(array1, index=[stock]*len(array1), columns=fields1)
frames.append(s)
result = pd.concat(frames)
return result
get_stocklist_bars(stocks,4,unit1 ='1w',fields1 = ['date','open','high','low','close'])
date | open | high | low | close | |
---|---|---|---|---|---|
002932.XSHE | 2018-08-31 | 69.49 | 74.40 | 68.47 | 69.20 |
002932.XSHE | 2018-09-07 | 68.00 | 68.18 | 62.37 | 63.82 |
002932.XSHE | 2018-09-14 | 63.82 | 69.80 | 61.43 | 61.43 |
002932.XSHE | 2018-09-21 | 58.50 | 60.66 | 57.00 | 57.60 |
002933.XSHE | 2018-08-31 | 26.94 | 43.03 | 26.94 | 43.03 |
002933.XSHE | 2018-09-07 | 47.33 | 69.30 | 47.33 | 69.30 |
002933.XSHE | 2018-09-14 | 73.00 | 73.95 | 61.48 | 61.48 |
002933.XSHE | 2018-09-21 | 58.81 | 62.40 | 56.03 | 59.03 |
002935.XSHE | 2018-09-07 | 25.59 | 40.87 | 25.59 | 40.87 |
002935.XSHE | 2018-09-14 | 44.96 | 65.84 | 44.96 | 59.16 |
002935.XSHE | 2018-09-21 | 55.50 | 59.55 | 52.30 | 53.73 |
002938.XSHE | 2018-09-21 | 19.28 | 30.00 | 19.28 | 26.17 |
300724.XSHE | 2018-08-31 | 32.43 | 35.35 | 30.68 | 30.94 |
300724.XSHE | 2018-09-07 | 31.69 | 34.80 | 30.11 | 34.47 |
300724.XSHE | 2018-09-14 | 34.48 | 37.00 | 28.15 | 28.15 |
300724.XSHE | 2018-09-21 | 27.38 | 28.09 | 25.82 | 26.30 |
300746.XSHE | 2018-08-31 | 23.68 | 25.02 | 22.61 | 22.68 |
300746.XSHE | 2018-09-07 | 22.00 | 24.80 | 20.95 | 23.79 |
300746.XSHE | 2018-09-14 | 23.36 | 24.18 | 21.05 | 21.28 |
300746.XSHE | 2018-09-21 | 20.97 | 21.97 | 20.00 | 20.93 |
300747.XSHE | 2018-08-31 | 160.51 | 177.00 | 160.51 | 161.00 |
300747.XSHE | 2018-09-07 | 160.11 | 175.50 | 156.22 | 169.50 |
300747.XSHE | 2018-09-14 | 168.00 | 174.95 | 151.87 | 151.87 |
300747.XSHE | 2018-09-21 | 146.13 | 156.30 | 144.00 | 154.63 |
300750.XSHE | 2018-08-31 | 68.58 | 74.32 | 65.01 | 65.50 |
300750.XSHE | 2018-09-07 | 64.80 | 64.88 | 60.32 | 63.32 |
300750.XSHE | 2018-09-14 | 63.56 | 69.00 | 61.00 | 65.90 |
300750.XSHE | 2018-09-21 | 64.57 | 69.90 | 62.99 | 69.19 |
601066.XSHG | 2018-08-31 | 8.31 | 8.63 | 8.12 | 8.16 |
601066.XSHG | 2018-09-07 | 8.15 | 8.57 | 8.08 | 8.29 |
... | ... | ... | ... | ... | ... |
603587.XSHG | 2018-09-14 | 26.43 | 27.38 | 25.82 | 25.87 |
603587.XSHG | 2018-09-21 | 25.50 | 25.54 | 24.71 | 25.43 |
603590.XSHG | 2018-08-31 | 35.05 | 51.33 | 35.05 | 51.33 |
603590.XSHG | 2018-09-07 | 56.46 | 56.46 | 51.00 | 51.74 |
603590.XSHG | 2018-09-14 | 50.92 | 52.42 | 44.66 | 45.00 |
603590.XSHG | 2018-09-21 | 44.01 | 45.00 | 42.30 | 43.01 |
603650.XSHG | 2018-08-31 | 30.90 | 32.43 | 29.00 | 29.13 |
603650.XSHG | 2018-09-07 | 28.70 | 29.35 | 26.66 | 28.31 |
603650.XSHG | 2018-09-14 | 28.50 | 31.00 | 27.00 | 27.37 |
603650.XSHG | 2018-09-21 | 26.88 | 27.18 | 25.67 | 26.45 |
603657.XSHG | 2018-08-31 | 52.44 | 61.98 | 46.52 | 47.42 |
603657.XSHG | 2018-09-07 | 46.98 | 48.98 | 43.38 | 44.57 |
603657.XSHG | 2018-09-14 | 46.00 | 46.80 | 37.61 | 38.30 |
603657.XSHG | 2018-09-21 | 37.68 | 41.62 | 36.44 | 37.40 |
603666.XSHG | 2018-08-31 | 91.02 | 94.35 | 83.58 | 83.58 |
603666.XSHG | 2018-09-07 | 82.67 | 90.60 | 80.83 | 87.60 |
603666.XSHG | 2018-09-14 | 86.80 | 90.88 | 82.00 | 83.00 |
603666.XSHG | 2018-09-21 | 81.98 | 83.97 | 78.50 | 83.21 |
603693.XSHG | 2018-08-31 | 19.59 | 19.96 | 17.84 | 18.11 |
603693.XSHG | 2018-09-07 | 18.31 | 20.43 | 17.70 | 19.78 |
603693.XSHG | 2018-09-14 | 19.78 | 22.35 | 18.42 | 18.51 |
603693.XSHG | 2018-09-21 | 17.79 | 17.79 | 16.66 | 16.96 |
603706.XSHG | 2018-08-31 | 40.51 | 41.63 | 36.59 | 36.88 |
603706.XSHG | 2018-09-07 | 37.00 | 40.70 | 34.10 | 37.85 |
603706.XSHG | 2018-09-14 | 37.75 | 41.64 | 35.52 | 35.56 |
603706.XSHG | 2018-09-21 | 34.19 | 36.35 | 32.25 | 32.88 |
603713.XSHG | 2018-08-31 | 41.11 | 49.22 | 41.03 | 43.68 |
603713.XSHG | 2018-09-07 | 44.70 | 58.10 | 41.00 | 42.01 |
603713.XSHG | 2018-09-14 | 41.70 | 42.80 | 38.05 | 39.22 |
603713.XSHG | 2018-09-21 | 38.08 | 41.36 | 37.81 | 38.75 |
102 rows × 5 columns
本社区仅针对特定人员开放
查看需注册登录并通过风险意识测评
5秒后跳转登录页面...
移动端课程