赞
踩
关键词:涨停分析, 量化
开发环境
编程语言: Python 3.6
必要包:tushare, pandas
Tushare(www.tushare.org/)是一个免费、开源的python财经数据接口包。主要实现对股票等金融数据从数据采集、清洗加工 到 数据存储的过程,能够为金融分析人员提供快速、整洁、和多样的便于分析的数据,为他们在数据获取方面极大地减轻工作量,使他们更加专注于策略和模型的研究与实现上。
股市中涨停板包含了很多市场信息, 例如市场的热点, 投资偏好,多空情绪等 。
分析脚本设计
1. 设置脚本工作目录
2. 从网络获取股市行情数据,并保存到excel文件
3. 把excel行情数据文件读到内存。
4.清洗数据,提取涨停板的股票数据。
5.涨停板分析,统计:价格区间,换手率,市净率,行业热点,波动振幅 。
获得行情数据并保存到文件
- import tushare as ts
- import pandas as pd
- import time
- import os
- import platform
-
-
- # 从tushare获取
- def get_today_all_ts(date):
-
- date_now = date
-
- # 先获得所有股票的收盘数据
- df_close = ts.get_today_all()
-
- # 获得所有股票的基本信息
- df_basics = ts.get_stock_basics()
- df_all = pd.merge(left=df_close, right=df_basics, on='name', how='outer')
-
- df_all['code'] = df_all['code'].astype(str) + ' '
-
- # 保存数据
- df_all.to_csv(str(date_now) + '_ts.csv', index=False, encoding='gbk')
- print(' \n %s is downloaded.' % (str(date_now)))
- #print(df_all)
- return df_all
读取excel行情数据
- # 读取TDX的每日股票数据
- csvdata_file = abs_dir + os.sep + date_now + '_ts.csv'
- print('\n excel file is %s ' %(csvdata_file) )
- df = pd.read_csv(csvdata_file, encoding='gbk')
- df.fillna(0, inplace=True)
- df.replace('nan ', 0, inplace=True)
- df['timeToMarket'] = pd.to_datetime(df['timeToMarket'])
-
- df[['changepercent', 'pe', 'mktcap', 'nmc']] = df[['changepercent', 'pe', 'mktcap', 'nmc']].astype(float)
-
- df['code'] = df['code'].astype(str) # 转化成str后,NAN也变成nan str格式
- df['pb_x'] = df['pb_x'].astype(float)
- df[['high', 'low', 'settlement']] = df[['high', 'low', 'settlement']].astype(float)
-
- # 找出涨停的股票
- limit_up = df[df['changepercent'] >= 9.70]
- limit_down = df[df['changepercent'] <= -9.70]
-
- print(' \n 涨停数量:%d 个 ' % (limit_up.shape[0]))
涨停分析
-
- def analyze_turnoverratio(market_ups):
- print('\n换手率: %s ' %(limit_up.columns.values[9] ))
-
- labels_turnover = ["0 -1%", "1 -3%", "3 -7%", "7 -10%", "10 -15%", "15% --" ]
- #print(labels_turnover)
-
- turnoverArr_counter = [0]*6
- lines = market_ups.shape[0]
- for i in range(lines):
- if market_ups.iloc[i, 9] >= 15:
- turnoverArr_counter[5] +=1
- continue
- if market_ups.iloc[i, 9] >= 10:
- turnoverArr_counter[4] +=1
- continue
- if market_ups.iloc[i, 9] >= 7:
- turnoverArr_counter[3] +=1
- continue
- if market_ups.iloc[i, 9] >= 3:
- turnoverArr_counter[2] +=1
- continue
- if market_ups.iloc[i, 9] >= 1:
- turnoverArr_counter[1] +=1
- else:
- turnoverArr_counter[0] +=1
-
- #pprint.pprint(dict(zip(labels_turnover, turnoverArr_counter)), width=1)
- for (k,v) in dict(zip(labels_turnover, turnoverArr_counter)).items():
- print("%s :\t %d" %(k, v))
- return 0
运行结果
总结:通过对20190412行情数据分析,涨停股票价格主要集中在6 ~20元, 换手率集中在3 -7%和10 -15%,主力在后面强力推动。市净率集中在2 ~5区间,市净率特别在评估高风险企业,企业资产大量为实物资产的企业时受到重视。振幅在6 ~9%之间非常少,6 ~9%是过渡区间,要么冲高回落,要么冲击成功。一字板涨停的也要重点关注,再复盘一下他们的k线。
stockeverydcheck.py脚本下载路径:https://share.weiyun.com/5DDYOZK
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。