本文通过AKShare库获取南北向资金的相关信息。不知道AKShare的读者,可以通过之前的使用Python获取股票单日成交数据 文章了解相关用法。
沪港通股票交易2014年11月17日开始。深港通股票交易2016年12月5日启动。
大陆居民通过沪、深港通买港股,叫做南向资金。
香港居民通过沪、深港通买A股,叫做北向资金。
北向资金的每日额度为各520亿元人民币。南向资金的每日额度为各420亿元人民币。
样例代码只输出了今日的数据,通过原始接口可以拿到所有日期的数据。
import akshare as ak
import matplotlib.pyplot as plt
def get_today_south_info():
stock_em_hsgt_south_net_flow_in_df = ak.stock_em_hsgt_south_net_flow_in(indicator="沪股通") # 南向净流入
stock_em_hsgt_south_cash_df = ak.stock_em_hsgt_south_cash(indicator="沪股通") # 南向资金余额
stock_em_hsgt_south_acc_flow_in_df = ak.stock_em_hsgt_south_acc_flow_in(indicator="沪股通") # 南向累计净流入
net_flow = stock_em_hsgt_south_net_flow_in_df.values[-1][1]
cash = stock_em_hsgt_south_cash_df.values[-1][1]
acc_flow = stock_em_hsgt_south_acc_flow_in_df.values[-1][1]
return float(net_flow)/10000, float(cash)/10000, float(acc_flow)/10000
def get_today_north_info():
stock_em_hsgt_north_net_flow_in_df = ak.stock_em_hsgt_north_net_flow_in(indicator="沪股通") # 北向净流入
stock_em_hsgt_north_cash_df = ak.stock_em_hsgt_north_cash(indicator="沪股通") # 北向资金余额
stock_em_hsgt_north_acc_flow_in_df = ak.stock_em_hsgt_north_acc_flow_in(indicator="沪股通") # 北向累计净流入
net_flow = stock_em_hsgt_north_net_flow_in_df.values[-1][1]
cash = stock_em_hsgt_north_cash_df.values[-1][1]
acc_flow = stock_em_hsgt_north_acc_flow_in_df.values[-1][1]
return float(net_flow)/10000, float(cash)/10000, float(acc_flow)/10000
if __name__ == '__main__':
s_nf, s_c, s_af = get_today_south_info()
n_nf, n_c, n_af = get_today_north_info()
print('南向净流入:{} 南向资金余额:{} 南向累计净流入{}'.format(s_nf, s_c, s_af))
print('北向净流入:{} 北向资金余额:{} 北向累计净流入{}'.format(n_nf, n_c, n_af))
labels = ['南向-净流入{}'.format(s_nf), '北向-净流入{}'.format(n_nf)]
sizes = [s_nf, n_nf]
plt.pie(sizes, labels=labels)
plt.title("今日南、北向资金净流入比例(亿元)")
plt.show()
输出:
南向净流入:19.432092 南向资金余额:400.567908 南向累计净流入18167.567113
北向净流入:101.486375 北向资金余额:418.513625 北向累计净流入15845.182006000001