根据北上资金操作上证50指数基金

1. 上证50指数

上证50指数是根据科学客观的方法,挑选上海证券市场规模大、流动性好的最具代表性的50只股票组成样本股,以综合反映上海证券市场最具市场影响力的一批优质大盘企业的整体状况。上证50指数,指数简称为上证50。

2. 北上资金

在中国股市中,一般“北”指的是沪深两市的股票,“南”指的是指香港股票,因此,北上资金就是指从香港股票中流入大陆股市的资金,同时内地的股票也有流入香港股市的资金,而这个资金被称为南下资金。

3. 获取上证50指数数据

3.1. 从tushare获取数据(tushare地址)

import tushare as ts
import pandas as pd
ts.set_token('...')
pro = ts.pro_api()
def get_index_50(start, end):
    index_df = pro.index_daily(ts_code='000016.SH', start_date=start, end_date=end)
    index_df.index = pd.to_datetime(index_df.trade_date)
    index_df = index_df.sort_index()
    return index_df
index_50 = get_index_50(start = '20141117', end = '20200814')
print(index_50.tail(10))```

在这里插入图片描述

3.2 50指数的累计收益

all_ret = index_data / index_data.shift(1) - 1  # 将价格数据转为收益率
all_data = all_ret.join(north_money['north_money'], how='inner')
all_data.dropna(inplace=True)
corr = all_data.corr()

在这里插入图片描述

从图中可以就看出,现在50指数的点位,基本上已经和15年的牛市点位基本相同。

4.获取北上资金

import tushare as ts
import pandas as pd
ts.set_token('...')
pro = ts.pro_api()

def get_north_money(start, end):
    """
    获取北上资金
    """
    # 获取交易日历
    cal_date = pro.trade_cal(exchange='', start_date=start, end_date=end)
    cal_date = cal_date[cal_date.is_open == 1]
    dates = cal_date.cal_date.values
    
    # tushare限制流量,每次只能获取300条记录
    df = pro.moneyflow_hsgt(start_date=start, end_date=end)
    # 拆分时间进行拼接,再删除重复项
    for i in range(0, len(dates) - 300, 300):
        d0 = pro.moneyflow_hsgt(start_date=dates[i], end_date=dates[i + 300])
        df = pd.concat([d0, df])
        # 删除重复项
        df = df.drop_duplicates()
        df.index = pd.to_datetime(df.trade_date)
        df = df.sort_index()
    return df

north_money = get_north_money(start = '20141117', end = '20200814')
print(north_money.tail(10))

在这里插入图片描述

5. 50指数和北上资金的相关性分析

5.1.获取相关系数

all_ret = index_data / index_data.shift(1) - 1  # 将价格数据转为收益率
all_data = all_ret.join(north_money['north_money'], how='inner')
all_data.dropna(inplace=True)
corr = all_data.corr()
print(corr)

在这里插入图片描述

从分析的数据可以看出,北上资金与50指数有一定的正相关关系,为0.27。因为北上资金的体量不大,所以,相关性比较小。所以,我们需要对北上资金做一下积分。

5.2.获取积分后的相关系数

# 我们获取120日的北上资金做积分
all_data.rolling(120).corr().tail(9)

在这里插入图片描述

从图中可以看出,相关性达到0.7,有一定实际的参考意义。

5.3. 线性拟合

对北上资金和50指数的散点图进行回归线拟合。图形再次支持了北上资金与50指数的正相关性。

import seaborn as sns
plt.figure(figsize=(10, 6))
sns.regplot(x=list(all_data["north_money"][-120:]),y=list(all_data["50"][-120:]))
plt.title('50 vs North',size=15)
plt.xlabel('North',size=12)
plt.ylabel('50 Rate',size=12)
plt.show()

在这里插入图片描述

5.4.北上资金与50指数的收益率相关性

final_data=all_data[['50','north_money']].dropna()
cors=final_data.rolling(120).corr()
cors=cors.dropna().iloc[1::2,0]
cors=cors.reset_index()
cors=cors.set_index('trade_date')
cors['50'].describe()

在这里插入图片描述

数据显示,2014年至2020年8月期间,二者相关系数均值为0.29,最大值为0.7。图形显示,二者的相关性近年来逐渐走高。
在这里插入图片描述

5.5.策略

策略思路如下:

1、当该日北向资金流入规模 > 过去 252 个交易日的北向资金均值 + 1.5 倍标准差, 则全仓买入50指数;

2、当该日北向资金流入规模 < 过去 252 个交易日的北向资金均值 - 1.5 倍标准差, 则清仓卖出50指数;

3、以第二天开盘价买入(研报是以收盘价来计量)。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值