Python数据分析:股价相关性

好久没发博客了,今天来发一篇分析股价相关度的。╮()

为什么要分析股价相关度呢,我们来引入一个概念——配对交易

 

所谓的配对交易,是基于统计套利的配对交易策略是一种市场中性策略,具体的说,是指从市场上找出历史股价走势相近的股票进行配对,当配对的股票价格差偏离历史均值时,则做空股价较高的股票同时买进股价较低的股票,等待他们回归到长期均衡关系,由此赚取两股票价格收敛的报酬。

 

接下来开始我们的股价相关度分析,首先我们选两个股票~





感觉全聚德和光明乳业都很好吃的样子,我们就选它们了吧!= ̄ω ̄=


1、导入数据包

简单介绍一下要用到的数据包

matplotlib.pyplot:绘图库,其中pyplot子包提供一个类MATLAB的绘图框架

### 使用 Python 进行股价相关性分析 #### 导入库并获取数据 为了进行股价相关性分析,首先需要导入必要的库,并通过 `Tushare` 获取所需的数据。 ```python import matplotlib.pyplot as plt import numpy as np import pandas as pd import tushare as ts pro = ts.pro_api('your_token_here') df_stock_1 = pro.daily(ts_code='000001.SZ', start_date='20230101', end_date='20231231') df_stock_2 = pro.daily(ts_code='000002.SZ', start_date='20230101', end_date='20231231') ``` #### 数据预处理 接下来对获取到的数据进行清洗整理,确保两支股票的时间戳一致以便后续计算其间的关联度。 ```python # 将日期设置为索引 df_stock_1.index = pd.to_datetime(df_stock_1['trade_date']) df_stock_2.index = pd.to_datetime(df_stock_2['trade_date']) # 只保留收盘价列用于计算相关性 close_price_1 = df_stock_1[['close']] close_price_2 = df_stock_2[['close']] # 合并两个DataFrame对象,基于相同的日期进行连接 merged_df = pd.merge(close_price_1, close_price_2, left_index=True, right_index=True) # 去除缺失值 cleaned_data = merged_df.dropna() ``` #### 计算Pearson相关系数 利用 Pandas 提供的方法来计算两只股票之间的 Pearson 相关系数。 ```python correlation_matrix = cleaned_data.corr(method='pearson', min_periods=1)[^2] print(f"Pearson Correlation Coefficient between two stocks is {correlation_matrix.iloc[0, 1]}") ``` #### 结果可视化 最后可以绘制图表直观地查看两者间的关系趋势。 ```python plt.figure(figsize=(14,7)) plt.plot(cleaned_data) plt.legend(['Stock A Close Price', 'Stock B Close Price']) plt.title('Comparison of Two Stocks\' Closing Prices Over Time') plt.xlabel('Date') plt.ylabel('Price (CNY)') plt.grid(True) plt.show() def show(df): normalized_returns = (df / df.iloc[0]) - 1 plt.figure(figsize=(14,7)) plt.plot(normalized_returns) plt.title('Normalized Returns Comparison Between Two Stocks') plt.xlabel('Time') plt.ylabel('Returns Rate') plt.grid(True) plt.show() show(cleaned_data) ```
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值