【選股策略】--選擇9個月來波動率最小的股票,觀察近一個月的變化

咱們在市場活躍起來後發現沒有及時介入,要買的股票每每發現已經漲到半山腰了,若是做爲長期投資者來講,這讓人很糾結。作好可以發現前期波動很小,忽然連續三天放量增加的股票,分析基本面和消息面確認沒問題後,能夠及時介入,我嘗試以這樣的思路來選股。web

思路以下:選取20160101-20160930的股票數據,觀察收盤價的波動,按升序排列,選擇波動最小股票(要麼平穩要麼持續上升要麼持續降低),經過軟件查看波動最小的股票在20161007後至今的時間沒有沒有忽然放量啓動的跡象,分析基本面消息面能夠及時介入。app

pandas學習目標:
1.掌握groupby()函數和std()函數的使用;
2.df.set_index()函數使用
3.df.append(0函數使用
4.for 循環使用svg

代碼以下:函數

第一步:選出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查看;ui

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比較低,若是不着急獲利的話長期持有風險可控。lua

一樣的原理,能夠換成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值得關注。spa