python涨停分析 -股票量化

关键词:涨停分析, 量化

开发环境

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

Tushare

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

python涨停分析 -股票量化_第1张图片

涨停分析

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

分析脚本设计

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

 

测试和总结

运行结果

python涨停分析 -股票量化_第2张图片

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

python涨停分析 -股票量化_第3张图片

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

 

你可能感兴趣的:(算法,网络)