利用Python分析一下最近的股票市场

作者:川川 时间:2023-06-14 23:46:03 

一、数据获取

数据获取范围为2022年一月一日到2022年2月25日,获取的数据为俄罗斯黄金,白银,石油,银行,天然气:

# 导入模块
import numpy as np
import pandas as pd
import yfinance as yf

# GC=F黄金,SI=F白银,ROSN.ME俄罗斯石油,SBER.ME俄罗斯银行,天然气
tickerSymbols = ['GC=F', 'SI=F', 'ROSN.ME', 'SBER.ME','NG=F']

# 获取这些代码的数据
MSFT = yf.Ticker(tickerSymbols[0])
TSLA = yf.Ticker(tickerSymbols[1])
AAPL = yf.Ticker(tickerSymbols[2])
AMZN = yf.Ticker(tickerSymbols[3])
GOOG = yf.Ticker(tickerSymbols[4])

# 获取代码的历史价格
MSFT_df = MSFT.history(period='1d', start='2022-1-1', end='2022-2-25')
TSLA_df = TSLA.history(period='1d', start='2022-1-1', end='2022-1-25')
AAPL_df = AAPL.history(period='1d', start='2022-1-1', end='2022-1-25')
AMZN_df = AMZN.history(period='1d', start='2022-1-1', end='2022-1-25')
GOOG_df = GOOG.history(period='1d', start='2022-1-1', end='2022-1-25')

# 比如天然气
GOOG_df.head()

如下:

利用Python分析一下最近的股票市场

二、合并数据

# 将每只股票的收盘列保存到新变量中
MSFT = MSFT_df['Close']
TSLA = TSLA_df['Close']
AAPL = AAPL_df['Close']
AMZN = AMZN_df['Close']
GOOG = GOOG_df['Close']

# Concatenate all stocks close columns into one data frame
stocks_df = pd.concat([MSFT, TSLA, AAPL, AMZN, GOOG], axis='columns', join='inner')

# Rename the data frame columns with their corresponding tickers symbols
stocks_df.columns = ['gold', 'silver', 'oil', 'bank', 'gas']

# Visualize the new data frame
stocks_df.head()

如下:

利用Python分析一下最近的股票市场

三、绘制股票每日百分比变化

# 接下来,让我们计算股票每日百分比变化并绘制它们以直观地分析它们在过去一个多月中的变化行为。
# 获取每日百分比变化
stocks_df = stocks_df.pct_change().dropna()

# 可视化新数据框
stocks_df.head()

# 绘制每日百分比变化
stocks_df.plot(figsize=(20, 10), title="Daily Returns");

如下:

利用Python分析一下最近的股票市场

从图也可以看出哪个变动大,哪个稳定)自己用眼睛看

四、箱线图

上面的图确实不好看,所以我们画一个箱线图更加直观:

# 箱线图
# 计算累积回报
cumulative_returns = (1 + stocks_df).cumprod()

# 绘制累积回报
cumulative_returns.plot(figsize=(20, 10), title="Cumulative Returns");

# 箱线图直观地显示风险
stocks_df.plot.box(figsize=(20, 10), title="Portfolio Risk");

累计回报图:

利用Python分析一下最近的股票市场

箱线图:

利用Python分析一下最近的股票市场

显然是天然气收益最高;盒子越宽,晶须越长,股票的波动性就越大。石油最稳定,天然气波动大了点

五、计算月化夏普比率

#计算月化夏普比率
sharpe_ratios = (stocks_df.mean() * 30) / (stocks_df.std() * np.sqrt(30))
sharpe_ratios = sharpe_ratios.sort_values(ascending=False)
sharpe_ratios

如下:

利用Python分析一下最近的股票市场

#将夏普比率可视化为条形图
sharpe_ratios.plot(figsize=(20, 10), kind="bar", title="Sharpe Ratios");

如下:

利用Python分析一下最近的股票市场

六、结论

根据以上结果,建议购买黄金,其次为白银,天然气,俄罗斯银行和石油不建议购买。注意:以上分析数据为2022年1月1日到2022年2月5日分析图。没有写预测部分,我觉得动荡太多,没必要预测了,买稳定的吧,预测已经没有意义。

来源:https://mp.weixin.qq.com/s/AABr1FJ8CUxvIoLQ1QIU4w

标签:Python,分析,股票
0
投稿

猜你喜欢

  • 细数JavaScript 一个等号,两个等号,三个等号的区别

    2023-08-25 08:22:09
  • Python简单实现区域生长方式

    2023-08-08 12:07:38
  • MySQL的 DDL和DML和DQL的基本语法详解

    2024-01-15 06:40:43
  • 一文详解go mod依赖管理详情

    2023-07-13 04:35:06
  • python中defaultdict字典功能特性介绍

    2022-06-07 23:27:45
  • python实现两张图片拼接为一张图片并保存

    2023-01-26 17:56:52
  • 详解pandas绘制矩阵散点图(scatter_matrix)的方法

    2022-06-09 18:52:34
  • Python脚本实现Web漏洞扫描工具

    2023-05-01 04:18:50
  • 在MySQL中使用Sphinx实现多线程搜索的方法

    2024-01-22 17:25:45
  • 利用pandas向一个csv文件追加写入数据的实现示例

    2022-04-09 14:51:56
  • jupyter notebook 写代码自动补全的实现

    2023-04-14 03:04:00
  • 由prototype_1.3.1进入javascript殿堂-类的初探

    2008-05-22 12:44:00
  • 页面制作的重要性

    2007-10-30 13:14:00
  • python读取指定字节长度的文本方法

    2022-04-17 10:42:45
  • PDO取Oracle lob大字段,当数据量太大无法取出的问题的解决办法

    2024-01-15 00:47:43
  • python实现可视化动态CPU性能监控

    2023-08-08 10:23:52
  • Python selenium模拟网页点击爬虫交管12123违章数据

    2023-09-26 18:30:37
  • PHP基于非递归算法实现先序、中序及后序遍历二叉树操作示例

    2023-08-16 04:46:47
  • 关于xmlhttp乱码的解决方法

    2008-09-24 17:20:00
  • 游戏的用户体验营销小札

    2009-08-30 15:13:00
  • asp之家 网络编程 m.aspxhome.com