繁簡切換您正在訪問的是FX168財經網,本網站所提供的內容及信息均遵守中華人民共和國香港特別行政區當地法律法規。

FX168财经网>人物频道>帖子

通过JQData获取申万行业指数,计算指数的价格相对强

作者/44444 2019-09-08 00:00 0 来源: FX168财经网人物频道

      价格相对强度(PRS)也称为相对强度(RS),是衡量在一段时间区间(通常为12个月)内一个股票价格相对于整体股票的强度,它的值在1至99之间,值越大,相对强度越高。PRS在国际投资界被广泛使用。


 

       通常的计算方法:在同一段时间区间内,计算每一只个股的涨幅,按降序排列(rank),根据排名打分,第一名99分,最后一名1分,以此类推。(IPO未满一年的股票,以及长期停牌的股票一般要剔除。)

      长期的大牛股的PRS值一般都大于85。趋势投资或动量投资建议不要买RS值小于60的股票。成长股的RS值一般在80或85以上。

      由于整体股票市场的体量较大,以A股为例, 3680多家的股票, RS值在80以上的个股也有730多家,这对我们选股也是有难度的。

      而从行业分布着手,事情变得相对容易,再者,行业分析也更适合产业政策和实体经济。

      聚宽的JQData提供了被广泛使用的申万行业一级指数的历史数据(finance.SW1_DAILY_PRICE)以及估值数据(finance.SW1_DAILY_VALUATION)。

其具体的api可以参照:


      我们对申万28个一级行业,通过jqdata的获取申万行业一级指数的历史数据(finance.SW1_DAILY_PRICE),按照PRS的计算方法可以得到不同时间区间的PRS的值。

而行业指数RS值在80以上的只有5至6个行业,这给我们分析阶段市场资金的流向以及行业前景的预期很有帮助。

      jqdata的申万一级行业估值数据(finance.SW1_DAILY_VALUATION)则已经直接计算出了28个行业的每日的换手率,PE,PB和分红比率。这给我们分析不同行业的估值水平(PE,PB)和市场偏好(PB)以及市场热点(换手率)提供了有用的数据。

 

      具体的分析方法可以查看我的研究代码。

      通过价格相对强度(RS)研究数据我们可以看到:近3个月来,电子,计算机,国防军工,食品饮料,医药生物的RS值排名最高,这给我们选股指明了方向。

以上这些只是初步的分析,提供一种思路。通过JQdata提供的申万行业的指数的数据,我们还可以进一步计算各个行业的PRS值的曲线,分析变化趋势。还可以计算行业的历史估值区间的数据,来判断当前估值水平在历史估值中的位置。欢迎大家一起讨论!

研究

收起          

*研究          

0          

您需要登录后才能查看源码 ,点击登录

# 申万行业指数import pandas as pdfrom jqdata import *import datetime
lastTD = get_trade_days(count=2)[-1] # 最近一个交易日print(f'最近一个交易日: {str(lastTD)}')beforeLastTD = get_trade_days(count=3)[-2] # 前一个交易日print(f'前一个交易日: {str(beforeLastTD)}')
最近一个交易日: 2019-09-06
前一个交易日: 2019-09-05
class Industry():""" 通过计算阶段时间的申万一级行业指数的涨幅,发现指数的价格相对强度(PRS);        通过获取申万一级行业的换手率, 发现市场热点,估值水平则分应投资者对不同行业的喜好程度。    """def __init__(self, industry_type='sw_l1', Date=lastTD):self.industry_type = industry_typeself.Date = Datedef industry_name(self): # 行业代码和名称'''Q:为什么有些申万行业代码没有成分股?            A:申万的行业代码在14年2月21有一次比较大改动,新增了11个行业代码:            ['801710','801720','801730','801740','801750','801760','801770',            '801780','801790','801880','801890'],弃用了6个行业代码:['801060',            '801070','801090','801100','801190','801220']            所以新增行业代码在2014-02-21之前没有成分股,弃用的行业代码在2014-02-21之后没有成分股。        '''industry_name = get_industries(self.industry_type)inds = []for i in industry_name.index.tolist():if len(get_industry_stocks(i)):inds.append(i)df_inds = industry_name[industry_name.index.isin(inds)]df_inds = df_inds[['name']]return df_inds#     def __str__(self):#         return f'sw_l1 industry_code list: {self.industry_name()}'def RS_industry_swl1(self): # 申万一级行业指数的价格相对强度(PRS)RS = pd.DataFrame()for periods in [20, 60, 120]: # 这里的交易时间间隔可以根据需要自定义start_date = get_trade_days(count=periods)[0]print(start_date)df = finance.run_query(query(finance.SW1_DAILY_PRICE ).filter(finance.SW1_DAILY_PRICE.code.in_(self.industry_name().index.tolist()),  finance.SW1_DAILY_PRICE.date >= start_date,  ).order_by(finance.SW1_DAILY_PRICE.date.desc()))df = df.set_index('code')print(len(df))# df.dropna()df = df[['name', 'change_pct']]rt = df.groupby(by='code').sum()rt['rank'] = rt['change_pct'].rank(ascending=False)rt['rs'] = round(100*(1 - rt['rank']/len(rt)), 2)rt = rt.rename(columns={'change_pct': f'rt_{str(periods)}'})rt = rt.rename(columns={'rs': f'rs_{str(periods)}'})RS = pd.concat([RS, rt, self.industry_name()['name']], axis=1, sort=True)RS = RS.sort_values(by='rs_20', ascending=False)#RS = pd.concat([RS, self.industry_name()['name']], axis=1, sort=True),return RSdef industry_swl1_valuation(self): # 申万一级行业的估值""" 这里的时间通过while循环直到取得数据为止,不然数据为空!!!        """tradedate = datetime.date.today()     #print(tradedate)i = 0while True:df = finance.run_query(query(finance.SW1_DAILY_VALUATION ).filter(finance.SW1_DAILY_VALUATION.code.in_(self.industry_name().index.tolist()),  finance.SW1_DAILY_VALUATION.date == tradedate ,  ).order_by(finance.SW1_DAILY_VALUATION.date.desc()))df = df[['date', 'code', 'name', 'turnover_ratio', 'pe', 'pb', 'dividend_ratio']]df = df.set_index('code')df = df.sort_values(by='turnover_ratio', ascending=False)if len(df) != 0:breakelse:i += 1           # print(i)tradedate = get_trade_days(count=5)[-i]print(tradedate)return df# if __name__ == '__main__':#     inds = Industry('sw_l1')#     indus_name =inds.industry_name()#     print(f'申万一级行业代码及名称, 一共有{str(len(indus_name))}个:')#     print(indus_name)#     print('申万一级行业的估值,换手率等:')#     val_inds = inds.industry_swl1_valuation()#     print(val_inds)#     # 可以将数据保存为csv文件,方便进一步分析查看#     print('申万一级行业指数的价格相对强度(PRS):')#     RS_inds = inds.RS_industry_swl1()#     print(RS_inds)#     # 可以将数据保存为csv文件,方便进一步分析查看
inds = Industry('sw_l1')indus_name =inds.industry_name()print(f'申万一级行业代码及名称, 一共有{str(len(indus_name))}个:')indus_name
申万一级行业代码及名称, 一共有28个:

.dataframe tbody tr th:only-of-type {        vertical-align: middle;    }    .dataframe tbody tr th {        vertical-align: top;    }    .dataframe thead th {        text-align: right;    }


name
801740国防军工I
801020采掘I
801110家用电器I
801160公用事业I
801770通信I
801010农林牧渔I
801120食品饮料I
801750计算机I
801050有色金属I
801890机械设备I
801170交通运输I
801710建筑材料I
801780银行I
801040钢铁I
801130纺织服装I
801880汽车I
801180房地产I
801230综合I
801760传媒I
801200商业贸易I
801140轻工制造I
801720建筑装饰I
801080电子I
801790非银金融I
801030化工I
801210休闲服务I
801730电气设备I
801150医药生物I
print('申万一级行业的估值,换手率等:')val_inds = inds.industry_swl1_valuation()val_inds# 可以将数据保存为csv文件,方便进一步分析查看
申万一级行业的估值,换手率等:
2019-09-06

.dataframe tbody tr th:only-of-type {        vertical-align: middle;    }    .dataframe tbody tr th {        vertical-align: top;    }    .dataframe thead th {        text-align: right;    }


datenameturnover_ratiopepbdividend_ratio
code





8017702019-09-06通信4.204139.842.760.45
8017502019-09-06计算机3.679357.513.920.36
8010802019-09-06电子3.587437.943.140.65
8010102019-09-06农林牧渔2.295940.173.880.92
8017402019-09-06国防军工2.209363.942.740.28
8017602019-09-06传媒1.781437.102.230.79
8010502019-09-06有色金属1.743438.482.080.71
8018902019-09-06机械设备1.552426.612.061.03
8011502019-09-06医药生物1.471935.593.340.76
8011402019-09-06轻工制造1.348022.621.691.12
8017302019-09-06电气设备1.317232.632.140.83
8017902019-09-06非银金融1.306917.221.971.75
8011102019-09-06家用电器1.277416.123.232.52
8011202019-09-06食品饮料1.271432.856.781.33
8012302019-09-06综合1.226627.941.670.35
8018802019-09-06汽车1.156818.241.572.16
8012102019-09-06休闲服务1.139434.273.840.67
8012002019-09-06商业贸易1.058117.961.471.46
8010302019-09-06化工1.042419.481.831.84
8017102019-09-06建筑材料0.957811.411.712.45
8011302019-09-06纺织服装0.908723.551.801.77
8011802019-09-06房地产0.73359.191.303.06
8011602019-09-06公用事业0.642320.221.521.85
8011702019-09-06交通运输0.623217.981.501.61
8017202019-09-06建筑装饰0.584710.071.031.77
8010202019-09-06采掘0.373213.601.192.07
8010402019-09-06钢铁0.35127.320.934.31
8017802019-09-06银行0.14786.660.793.73
print('申万一级行业指数的价格相对强度(PRS):')RS_inds = inds.RS_industry_swl1()#可以将数据保存为csv文件,方便进一步分析查看RS_inds
申万一级行业指数的价格相对强度(PRS):
2019-08-12
560
2019-06-17
1680
2019-03-18
3360

.dataframe tbody tr th:only-of-type {        vertical-align: middle;    }    .dataframe tbody tr th {        vertical-align: top;    }    .dataframe thead th {        text-align: right;    }


rt_20rankrs_20namert_60rankrs_60namert_120rankrs_120name
80108020.341.096.43电子I26.891.096.43电子I13.053.089.29电子I
80175020.212.092.86计算机I16.043.089.29计算机I7.238.071.43计算机I
80174016.103.089.29国防军工I17.682.092.86国防军工I12.524.085.71国防军工I
80177014.954.085.71通信I4.6712.057.14通信I-3.4914.050.00通信I
80176014.045.082.14传媒I6.709.067.86传媒I-12.1826.07.14传媒I
80112012.706.078.57食品饮料I14.115.082.14食品饮料I30.261.096.43食品饮料I
80115011.677.075.00医药生物I14.254.085.71医药生物I6.929.067.86医药生物I
80111010.648.071.43家用电器I8.258.071.43家用电器I9.685.082.14家用电器I
8017309.849.067.86电气设备I5.5010.064.29电气设备I-7.8720.028.57电气设备I
8017909.7110.064.29非银金融I11.077.075.00非银金融I7.717.075.00非银金融I
8017109.6211.060.71建筑材料I2.7817.039.29建筑材料I1.4410.064.29建筑材料I
8018809.3712.057.14汽车I4.1014.050.00汽车I-4.2016.042.86汽车I
8010309.1913.053.57化工I5.4911.060.71化工I-3.5115.046.43化工I
8012308.6314.050.00综合I1.5120.028.57综合I-9.0123.017.86综合I
8018908.3815.046.43机械设备I4.4713.053.57机械设备I-4.8517.039.29机械设备I
8011708.1716.042.86交通运输I3.7215.046.43交通运输I0.2012.057.14交通运输I
8011408.1317.039.29轻工制造I2.3618.035.71轻工制造I-8.2722.021.43轻工制造I
8012108.0218.035.71休闲服务I11.756.078.57休闲服务I15.852.092.86休闲服务I
8011307.1919.032.14纺织服装I0.7721.025.00纺织服装I-10.0825.010.71纺织服装I
8012006.9720.028.57商业贸易I0.1022.021.43商业贸易I-7.8821.025.00商业贸易I
8017206.6921.025.00建筑装饰I-1.6325.010.71建筑装饰I-13.0027.03.57建筑装饰I
8010206.5222.021.43采掘I-1.7326.07.14采掘I-6.2319.032.14采掘I
8010404.9523.017.86钢铁I-5.9128.00.00钢铁I-21.1528.00.00钢铁I
8011604.8524.014.29公用事业I1.5419.032.14公用事业I-5.7518.035.71公用事业I
8011804.5225.010.71房地产I-3.6627.03.57房地产I-9.8624.014.29房地产I
8010504.2226.07.14有色金属I-0.3223.017.86有色金属I-3.1113.053.57有色金属I
8010103.1127.03.57农林牧渔I3.2216.042.86农林牧渔I7.936.078.57农林牧渔I
8017801.9728.00.00银行I-0.7324.014.29银行I0.7211.060.71银行I
分享到:
举报财经168客户端下载

全部回复

0/140

投稿 您想发表你的观点和看法?

更多人气分析师

  • 张亦巧

    人气2184文章4145粉丝45

    暂无个人简介信息

  • 梁孟梵

    人气2176文章3177粉丝39

    qq:2294906466 了解群指导添加微信mfmacd

  • 指导老师

    人气1864文章4423粉丝52

    暂无个人简介信息

  • 李冉晴

    人气2320文章3821粉丝34

    李冉晴,专业现贷实盘分析师。

  • 王启蒙现货黄金

    人气296文章3137粉丝8

    本人做分析师以来,并专注于贵金属投资市场,尤其是在现货黄金...

  • 张迎妤

    人气1896文章3305粉丝34

    个人专注于行情技术分析,消息面解读剖析,给予您第一时间方向...

  • 金泰铬J

    人气2328文章3925粉丝51

    投资问答解咨询金泰铬V/信tgtg67即可获取每日的实时资讯、行情...

  • 金算盘

    人气2696文章7761粉丝125

    高级分析师,混过名校,厮杀于股市和期货、证券市场多年,专注...

  • 金帝财神

    人气4760文章8329粉丝119

    本文由资深分析师金帝财神微信:934295330,指导黄金,白银,...

FX168财经

FX168财经学院

FX168财经

FX168北美