您的位置:首页 > 其它

【选股策略】--选择9个月来波动率最小的股票,观察近一个月的变化

2016-10-27 23:55 197 查看
我们在市场活跃起来后发现没有及时介入,要买的股票往往发现已经涨到半山腰了,如果作为长期投资者来说,这让人很纠结。做好能够发现前期波动很小,突然连续三天放量增长的股票,分析基本面和消息面确认没问题后,可以及时介入,我尝试以这样的思路来选股。

思路如下:选取20160101-20160930的股票数据,观察收盘价的波动,按升序排列,选择波动最小股票(要么平稳要么持续上升要么持续下降),通过软件查看波动最小的股票在20161007后至今的时间没有没有突然放量启动的迹象,分析基本面消息面可以及时介入。

pandas学习目标:

1.掌握groupby()函数和std()函数的使用;

2.df.set_index()函数使用

3.df.append(0函数使用

4.for 循环使用

代码如下:

第一步:选出sh所有的股票代码,sh共1173支股票

import pandas as pd
import os
code_list=[]
for root,dirnames,files in os.walk('overview-data-sh'):
if files:
for f in files:
if 'sh6' in f:
code_list.append(f)
len(code_list)


第二步:将所有sh股票数据加载到一个DataFrame中,用groupby()函数聚类,std()函数计算聚类后收盘价的标准差,将收盘价标准差按升序排列,选择前20查看;

data_all=pd.DataFrame()
for code in code_list:
data=pd.read_csv('overview-data-sh/' + code,encoding='gbk')
data=data[['股票代码','股票名称','新浪行业','交易日期','成交量','涨跌幅', '换手率', '流通市值','开盘价','收盘价','MA_20']]
data.交易日期=pd.to_datetime(data.交易日期)
data=data.set_index('交易日期')
data=data[data.index>=pd.to_datetime('20160101')]
data_all=data_all.append(data)

data_all=data_all[['股票代码','收盘价']].groupby(['股票代码']).std().sort('收盘价')[:20]
data_all


结论:

选出sh股票如下:

‘sh601288’, ‘sh601988’, ‘sh601398’, ‘sh600795’, ‘sh600010’, ‘sh600401’,

‘sh600221’, ‘sh600282’, ‘sh601818’, ‘sh600033’, ‘sh600567’, ‘sh601518’,

‘sh600022’, ‘sh600028’, ‘sh601258’, ‘sh600039’, ‘sh601588’, ‘sh600255’,

‘sh601333’, ‘sh601328’

不出意外,基本都是银行和基建或钢铁,半年股价基本没怎么动过;

其中600039-四川路桥,601333-广深铁路这两支可以关注,有启动上升的趋势,PE\PB比较低,如果不着急获利的话长期持有风险可控。

同样的原理,可以换成sz股票查看,结果如下:

‘sz000725’, ‘sz000630’, ‘sz000979’, ‘sz000425’, ‘sz000709’, ‘sz000100’,

‘sz000157’, ‘sz300111’, ‘sz002064’, ‘sz002342’, ‘sz000809’, ‘sz000883’,

‘sz000825’, ‘sz000949’, ‘sz000682’, ‘sz002542’, ‘sz000753’, ‘sz000422’,

‘sz000882’, ‘sz000916’

其中,000630-铜陵有色,000809-铁岭新城,000825-太钢不锈,000949新乡化纤,000916华北高速9月30号来有异动,尤其000949值得关注。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: