当前位置:   article > 正文

python涨停分析 -股票量化_python涨停板复盘

python涨停板复盘

关键词:涨停分析, 量化

开发环境

编程语言: Python 3.6
必要包:tushare, pandas

Tushare

Tushare(www.tushare.org/)是一个免费、开源的python财经数据接口包。主要实现对股票等金融数据从数据采集清洗加工 到 数据存储的过程,能够为金融分析人员提供快速、整洁、和多样的便于分析的数据,为他们在数据获取方面极大地减轻工作量,使他们更加专注于策略和模型的研究与实现上。

涨停分析

股市中涨停板包含了很多市场信息, 例如市场的热点, 投资偏好,多空情绪等 。

分析脚本设计

1. 设置脚本工作目录

2. 从网络获取股市行情数据,并保存到excel文件

3. 把excel行情数据文件读到内存。

4.清洗数据,提取涨停板的股票数据。

5.涨停板分析,统计:价格区间,换手率,市净率,行业热点,波动振幅 。

模块实现

获得行情数据并保存到文件

  1. import tushare as ts
  2. import pandas as pd
  3. import time
  4. import os
  5. import platform
  6. # 从tushare获取
  7. def get_today_all_ts(date):
  8. date_now = date
  9. # 先获得所有股票的收盘数据
  10. df_close = ts.get_today_all()
  11. # 获得所有股票的基本信息
  12. df_basics = ts.get_stock_basics()
  13. df_all = pd.merge(left=df_close, right=df_basics, on='name', how='outer')
  14. df_all['code'] = df_all['code'].astype(str) + ' '
  15. # 保存数据
  16. df_all.to_csv(str(date_now) + '_ts.csv', index=False, encoding='gbk')
  17. print(' \n %s is downloaded.' % (str(date_now)))
  18. #print(df_all)
  19. return df_all

读取excel行情数据

  1. # 读取TDX的每日股票数据
  2. csvdata_file = abs_dir + os.sep + date_now + '_ts.csv'
  3. print('\n excel file is %s ' %(csvdata_file) )
  4. df = pd.read_csv(csvdata_file, encoding='gbk')
  5. df.fillna(0, inplace=True)
  6. df.replace('nan ', 0, inplace=True)
  7. df['timeToMarket'] = pd.to_datetime(df['timeToMarket'])
  8. df[['changepercent', 'pe', 'mktcap', 'nmc']] = df[['changepercent', 'pe', 'mktcap', 'nmc']].astype(float)
  9. df['code'] = df['code'].astype(str) # 转化成str后,NAN也变成nan str格式
  10. df['pb_x'] = df['pb_x'].astype(float)
  11. df[['high', 'low', 'settlement']] = df[['high', 'low', 'settlement']].astype(float)
  12. # 找出涨停的股票
  13. limit_up = df[df['changepercent'] >= 9.70]
  14. limit_down = df[df['changepercent'] <= -9.70]
  15. print(' \n 涨停数量:%d 个 ' % (limit_up.shape[0]))

涨停分析

  1. def analyze_turnoverratio(market_ups):
  2. print('\n换手率: %s ' %(limit_up.columns.values[9] ))
  3. labels_turnover = ["0 -1%", "1 -3%", "3 -7%", "7 -10%", "10 -15%", "15% --" ]
  4. #print(labels_turnover)
  5. turnoverArr_counter = [0]*6
  6. lines = market_ups.shape[0]
  7. for i in range(lines):
  8. if market_ups.iloc[i, 9] >= 15:
  9. turnoverArr_counter[5] +=1
  10. continue
  11. if market_ups.iloc[i, 9] >= 10:
  12. turnoverArr_counter[4] +=1
  13. continue
  14. if market_ups.iloc[i, 9] >= 7:
  15. turnoverArr_counter[3] +=1
  16. continue
  17. if market_ups.iloc[i, 9] >= 3:
  18. turnoverArr_counter[2] +=1
  19. continue
  20. if market_ups.iloc[i, 9] >= 1:
  21. turnoverArr_counter[1] +=1
  22. else:
  23. turnoverArr_counter[0] +=1
  24. #pprint.pprint(dict(zip(labels_turnover, turnoverArr_counter)), width=1)
  25. for (k,v) in dict(zip(labels_turnover, turnoverArr_counter)).items():
  26. print("%s :\t %d" %(k, v))
  27. return 0

 

测试和总结

运行结果

总结:通过对20190412行情数据分析,涨停股票价格主要集中在6 ~20元, 换手率集中在3 -7%和10 -15%,主力在后面强力推动。市净率集中在2 ~5区间,市净率特别在评估高风险企业,企业资产大量为实物资产的企业时受到重视。振幅在6 ~9%之间非常少,6 ~9%是过渡区间,要么冲高回落,要么冲击成功。一字板涨停的也要重点关注,再复盘一下他们的k线。

stockeverydcheck.py脚本下载路径:https://share.weiyun.com/5DDYOZK

 

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/2023面试高手/article/detail/78627
推荐阅读
相关标签
  

闽ICP备14008679号