一个成熟市场,前50%市值的股票成交量占比总的成交量是4%。
2016年是45%,A股目前(2020.12)是19%,预测这个数字会越来越低,用python计算了当日成交占比。
import pandas as pd
import tushare as ts
import time
import datetime
import os
import csv
import numpy as np
def cmp(elem):
return elem[1]
todate = datetime.date.today()
path = r'D:\stock\data\all_stock\\' + str(todate.strftime('%Y-%m-%d')) + '.csv'
if os.path.exists(path):
stock_all = pd.read_csv(path)
# print(stock_all.shape)
else:
stock_all = ts.get_today_all()
stock_all.to_csv(path)
# get stocks code
all_stock_code = stock_all.iloc[:, 1].tolist()
# get stocks mktcap 总市值
all_stock_mktcap = stock_all.iloc[:, -2].tolist()
# get stocks nmc 流通市值
all_stock_nmc = stock_all.iloc[:, -1].tolist()
# get stocks amount
all_stock_amount = stock_all.iloc[:, -5].tolist()
# dict_stock_mktcap = dict(zip(all_stock_code, all_stock_mktcap))
list_stock_nmc_amount = list(zip(all_stock_code, all_stock_nmc, all_stock_amount))
# print(list_stock_mktcap_amount)
list_stock_nmc_amount.sort(key=cmp, reverse=True)
# print(list_stock_nmc_amount)
list_stock_mktcap_amount_np = np.array(list_stock_nmc_amount)
# print(list_stock_mktcap_amount_np)
# print(list_stock_mktcap_amount_np.shape[0])
sum_50 = np.sum(list_stock_mktcap_amount_np[0:int(list_stock_mktcap_amount_np.shape[0] / 2)], axis=0)[2]
sum_all = np.sum(list_stock_mktcap_amount_np, axis=0)[2]
print("日期:{}".format(str(todate.strftime('%Y-%m-%d'))))
print("流通市值前50%的股票成交总量为{}亿元\n总成交量为{}亿元".format(round(sum_50 / 100000000, 2), round(sum_all / 100000000, 2)))
print("流通市值前50%的股票成交总量占比为{}%".format(100 * round(sum_50 / sum_all, 3)))
print("流通市值后50%的股票成交总量占比为{}%".format(100 * (1 - round(sum_50 / sum_all, 3))))
目前才12.4%,a股还会继续成熟,漂亮300,漂亮50,加油!