广告位联系
返回顶部
分享到

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

python 来源:互联网 作者:秩名 发布时间:2022-02-27 19:54:20 人浏览
摘要

一、数据获取 数据获取范围为2022年一月一日到2022年2月25日,获取的数据为俄罗斯黄金,白银,石油,银行,天然气: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 #导入模块 import

一、数据获取

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

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

# 导入模块

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()

如下:

 

二、合并数据

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

# 将每只股票的收盘列保存到新变量中

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()

如下:

 

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

1

2

3

4

5

6

7

8

9

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

# 获取每日百分比变化

stocks_df = stocks_df.pct_change().dropna()

 

# 可视化新数据框

stocks_df.head()

 

# 绘制每日百分比变化

stocks_df.plot(figsize=(20, 10), title="Daily Returns");

如下:

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

 

四、箱线图

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

1

2

3

4

5

6

7

8

9

# 箱线图

# 计算累积回报

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");

累计回报图:

箱线图:

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

 

五、计算月化夏普比率

1

2

3

4

#计算月化夏普比率

sharpe_ratios = (stocks_df.mean() * 30) / (stocks_df.std() * np.sqrt(30))

sharpe_ratios = sharpe_ratios.sort_values(ascending=False)

sharpe_ratios

如下:

1

2

#将夏普比率可视化为条形图

sharpe_ratios.plot(figsize=(20, 10), kind="bar", title="Sharpe Ratios");

如下:

 

六、结论

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


版权声明 : 本文内容来源于互联网或用户自行发布贡献,该文观点仅代表原作者本人。本站仅提供信息存储空间服务和不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权, 违法违规的内容, 请发送邮件至2530232025#qq.cn(#换@)举报,一经查实,本站将立刻删除。
原文链接 : https://mp.weixin.qq.com/s/AABr1FJ8CUxvIoLQ1QIU4w
相关文章
  • Python Django教程之实现新闻应用程序

    Python Django教程之实现新闻应用程序
    Django是一个用Python编写的高级框架,它允许我们创建服务器端Web应用程序。在本文中,我们将了解如何使用Django创建新闻应用程序。 我们将
  • 书写Python代码的一种更优雅方式(推荐!)

    书写Python代码的一种更优雅方式(推荐!)
    一些比较熟悉pandas的读者朋友应该经常会使用query()、eval()、pipe()、assign()等pandas的常用方法,书写可读性很高的「链式」数据分析处理代码
  • Python灰度变换中伽马变换分析实现

    Python灰度变换中伽马变换分析实现
    1. 介绍 伽马变换主要目的是对比度拉伸,将图像灰度较低的部分进行修正 伽马变换针对的是对单个像素点的变换,也就是点对点的映射 形
  • 使用OpenCV实现迷宫解密的全过程

    使用OpenCV实现迷宫解密的全过程
    一、你能自己走出迷宫吗? 如下图所示,可以看到是一张较为复杂的迷宫图,相信也有人尝试过自己一点一点的找出口,但我们肉眼来解谜
  • Python中的数据精度问题的介绍

    Python中的数据精度问题的介绍
    一、python运算时精度问题 1.运行时精度问题 在Python中(其他语言中也存在这个问题,这是计算机采用二进制导致的),有时候由于二进制和
  • Python随机值生成的常用方法

    Python随机值生成的常用方法
    一、随机整数 1.包含上下限:[a, b] 1 2 3 4 import random #1、随机整数:包含上下限:[a, b] for i in range(10): print(random.randint(0,5),end= | ) 查看运行结
  • Python字典高级用法深入分析讲解
    一、 collections 中 defaultdict 的使用 1.字典的键映射多个值 将下面的列表转成字典 l = [(a,2),(b,3),(a,1),(b,4),(a,3),(a,1),(b,3)] 一个字典就是一个键对
  • Python浅析多态与鸭子类型使用实例
    什么多态:同一事物有多种形态 为何要有多态=》多态会带来什么样的特性,多态性 多态性指的是可以在不考虑对象具体类型的情况下而直
  • Python字典高级用法深入分析介绍
    一、 collections 中 defaultdict 的使用 1.字典的键映射多个值 将下面的列表转成字典 l = [(a,2),(b,3),(a,1),(b,4),(a,3),(a,1),(b,3)] 一个字典就是一个键对
  • Python淘宝或京东等秒杀抢购脚本实现(秒杀脚本

    Python淘宝或京东等秒杀抢购脚本实现(秒杀脚本
    我们的目标是秒杀淘宝或京东等的订单,这里面有几个关键点,首先需要登录淘宝或京东,其次你需要准备好订单,最后要在指定时间快速
  • 本站所有内容来源于互联网或用户自行发布,本站仅提供信息存储空间服务,不拥有版权,不承担法律责任。如有侵犯您的权益,请您联系站长处理!
  • Copyright © 2017-2022 F11.CN All Rights Reserved. F11站长开发者网 版权所有 | 苏ICP备2022031554号-1 | 51LA统计