使用jupyter-Python进行模拟股票分析

  • tushare财经数据接口包
    • pip install tushare
    • 作用:提供相关指定的财经数据

需求:股票分析

  • 使用tushare包获取某股票的历史行情数据

  • 输出该股票所有收盘比开盘上涨3%以上的日期

  • 输出该股票所有开盘比前日收盘跌幅超过2%的日期

  • 假如我从2015年1月1日开始,每月第一个交易日买入1手股票,每年最后一个交易日卖出所有股票,到今天为止,我的收益如何?

  • 使用tushare包获取某股票的历史行情数据

import pandas as pd
import numpy as np
import tushare as ts

#获取某只股票的历史交易数据
data = ts.get_k_data(code=‘600519’,start=‘2015-01’)
data
在这里插入图片描述

#将获取的股票数据持久化存储到本地文件中
data.to_csv(‘maotai.csv’)

#可以将文件中的数据读取到df
df = pd.read_csv(‘maotai.csv’).drop(columns=‘Unnamed: 0’)
df
在这里插入图片描述

  • 数据预处理
    • 目的:为了便于后期相关需求的分析处理

#将date转换成时间类型
df[‘date’] = pd.to_datetime(df[‘date’])

#将date列作为df的索引
df = df.set_index(‘date’)
df
在这里插入图片描述

  • 输出该股票所有收盘比开盘上涨3%以上的日期
    • (收盘价-开盘价)/ 开盘价 > 0.03

ex = (df[‘close’] - df[‘open’]) / df[‘open’] > 0.03
ret = ex[ex] #获取了ex这个Series中True对应的数据
date = ret.index
date
在这里插入图片描述

  • 输出该股票所有开盘比前日收盘跌幅超过2%的日期
    • (开盘-前日收盘)/ 前日收盘 < -0.02

df[‘close’].shift(1) #shift(1)表示让Series中的元素整体向下移动一位
在这里插入图片描述

ex = (df[‘open’] - df[‘close’].shift(1))/df[‘close’].shift(1) < -0.02
ex #ex表示一个Series
在这里插入图片描述

#取出ex中True对应的数据
ret = ex[ex] #[ex]中的ex表示ex这个Series中存储的数据
ret.index
在这里插入图片描述

  • 输出该股票所有收盘比开盘上涨3%以上的日期
    • (收盘价-开盘价)/ 开盘价 > 0.03

ex = (df[‘close’]-df[‘open’]) / df[‘open’] > 0.03
ex
在这里插入图片描述

#在DataFrame中也是可以使用布尔值充当索引的
ret = df.loc[ex] #将ex中的布尔值作为df的行索引,就可以取出ex中True对应的df的行数据
#在df中提取出来了满足(收盘比开盘上涨3%以上)条件的行数据
ret
在这里插入图片描述

ret.index
在这里插入图片描述

  • 假如张三从2020年1月1日开始,每月第一个交易日买入1手股票,每年最后一个交易日卖出所有股票,到今天为止,张三的收益如何?
    • 规则:基于当天的收盘价售卖股票,当天的开盘价购买股票
    • 一个完整的年需要买入多少次股票呢?
      • 12次,一共购买1200只,单价:当天的开盘价
    • 一个完整的年需要卖出几次股票呢?
      • 1次,一次性卖出1200只股票,单价:当天的收盘价
    • 特殊情况:
      • 最终计算总收益的时候,需要将手里剩余股票的价值计算到总收益中
        • 剩余股票的价值:
          • 剩余股票的数量 * 最后一天的收盘价

new_df = df[‘2020’:] #单独提取出了2020至今的股票数据

#买入股票
#取出每个月第一个交易日对应的行数据
monthly = new_df.resample(‘M’).first() #resample可以根据时间为条件对数据进行取样
#first()表示取出每一个样本的第一行数据
monthly
在这里插入图片描述
在这里插入图片描述

#买入股票的总花费
total_cost = monthly[‘open’].sum() * 100
total_cost
在这里插入图片描述

#卖出股票
yearsly = new_df.resample(‘Y’).last()[0:-1] #取出了每年最后一个交易日对应的行数据
yearsly
在这里插入图片描述

recv = yearsly[‘close’].sum() * 1200
recv
在这里插入图片描述

#注意:2023年没有到卖出股票的时机,因此张三手中会有剩余股票。因此需要将剩余股票的价值也计算到总收益中
#可以使用最近一天的收盘价作为剩余股票的单价
last_price = new_df[‘close’][-1]
last_money = last_price * 600

#计算总收益
last_money + recv - total_cost
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/480581.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Ubuntu 22.04安装Python3.10.13

Ubuntu最好设置为英文&#xff0c;我之前用中文在make的test的时候&#xff0c;总是会有fail。 查了下有人怀疑是language的问题&#xff0c;保险起见都用英文&#xff0c;个人实践也证明改为英文就不报错了。 issue 44031: test_embed and test_tabnanny fails if the curre…

【算法刷题 | 二叉树 02】3.21 二叉树的层序遍历01(5题:二叉树的层序遍历、层序遍历||、右视图、层平均值,以及N叉树的层序遍历)

文章目录 5.二叉树的层序遍历5.1 102_二叉树的层序遍历5.1.1问题5.1.2解法&#xff1a;队列 5.2 107_二叉树的层序遍历||5.2.1问题5.2.2解法&#xff1a;队列 5.3 199_二叉树的右视图5.3.1问题5.3.2解决&#xff1a;队列 5.4 637_二叉树的层平均值5.4.1问题5.4.2解决&#xff1…

Dell戴尔XPS 12 9250二合一笔记本电脑原装出厂Windows10系统包下载

链接&#xff1a;https://pan.baidu.com/s/1rqUEM_q5DznF0om6eevcwg?pwdvij0 提取码&#xff1a;vij0 戴尔原厂WIN10系统自带所有驱动、出厂主题壁纸、系统属性专属联机支持标志、系统属性专属LOGO标志、Office办公软件、MyDell等预装程序 文件格式&#xff1a;esd/wim/sw…

API调试管理工具Postman下载及操作介绍

1.下载安装postman地址&#xff1a;https://www.getpostman.com/downloads/ 2.创建项目 3.创建请求API 然后点击save保存api 4.用一个变量保存主域名&#xff0c;方便后续操作 就类似下面的baseurl 5.创建新环境 6.添加变量&#xff08;如添加本地测试环境url——ba…

Qt如何直接处理系统事件(比如鼠标事件),而不是post事件

#include <QtGui/5.15.2/QtGui/qpa/qwindowsysteminterface.h> // 方便调试事件 QWindowSystemInterface::setSynchronousWindowSystemEvents(true); 直接再 qWindowsWndProc函数中处理 通常情况: 事件被放到一个队列中

Leetcode 101. 对称二叉树

心路历程&#xff1a; 这道题没有想象中那么简单。其最难的地方就在于如何判断两个子树相等这件事上&#xff0c;无法直接left right&#xff0c;因为毕竟只是指针。 本道题思考了三种解法&#xff0c;其中一种很可惜没有完全AC。 注意的点&#xff1a; 1、root.left root…

浙江IGM机器人K5控制柜维修需要注意哪些问题?

IGM机器人K5控制柜常见故障及维修方法 1、电源故障&#xff1a; 表现为IGM机器人K5控制柜不能开机或突然断电。 检查&#xff1a;检查电源线是否连接良好&#xff0c;有无破损&#xff1b;检查电源模块的输出电压是否正常&#xff1b; 维修方法&#xff1a;如电源模块损坏&…

【并查集专题】【蓝桥杯备考训练】:网络分析、奶酪、合并集合、连通块中点的数量、格子游戏【已更新完成】

目录 1、网络分析&#xff08;第十一届蓝桥杯省赛第一场C A组/B组&#xff09; 2、奶酪&#xff08;NOIP2017提高组&#xff09; 3、合并集合&#xff08;模板&#xff09; 4、连通块中点的数量&#xff08;模板&#xff09; 5、格子游戏&#xff08;《信息学奥赛一本通》…

DashVector - 阿里云向量检索服务

DashVector 文章目录 DashVector一、关于 DashVector二、使用 DashVector 前提准备1、创建Cluster&#xff1a;2、获得API-KEY3、安装最新版SDK 三、快速使用 DashVector1. 创建Client2. 创建Collection3、插入Doc4、相似性检索5、删除Doc6. 查看Collection统计信息7. 删除Coll…

jeect-boot queryFieldBySql接口RCE漏洞(CVE-2023-4450)复现

jeect-boot积木报表由于未授权的 API /jmreport/queryFieldBySql 使用了 freemarker 解析 SQL 语句从而导致了 RCE 漏洞的产生。 1.漏洞级别 高危 2.漏洞搜索 fofa app"Jeecg-Boot 企业级快速开发平台"3.影响范围 JimuReport < 1.6.14.漏洞复现 这个漏洞的…

(done) 机器学习中的方差 variance 和 偏差 bias 怎么理解?

来源&#xff1a;https://blog.csdn.net/weixin_41479678/article/details/116230631 情况1属于&#xff1a;低 bias&#xff0c;高 variance (和 human performance 相近&#xff0c;但和 验证集dev set 相远) 通常意味着模型训练轮数太多 情况2属于&#xff1a;高 bias&#…

uniapp自定义导航栏左中右内容和图标,以及点击事件

uniapp自定义导航栏左中右内容和图标&#xff0c;以及点击事件 效果&#xff1a; 页面&#xff1a; <view class"navigation-bar"><view class"navigation-bar-left" click"navigateBack"><u-icon name"arrow-left"…

StarRocks-2.5.13部署安装

1、安装jdk11 tar xf jdk-11.0.16.1_linux-x64_bin.tar.gz mv jdk-11.0.16.1 /data/soft/jdk-11 # 配置在/etc/profile中 export JAVA_HOME/data/soft/jdk-11 export CLASSPATH.:/data/soft/jdk-11/lib export PATH/data/soft/jdk-11/bin:$PATH # 验证jdk [rootdb-public-03 s…

就业班 第二阶段 2401--3.19 day4 主从复制

一、MySQL-Replication&#xff08;主从复制&#xff09; 1.1、MySQL Replication 主从复制&#xff08;也称 AB 复制&#xff09;允许将来自一个MySQL数据库服务器&#xff08;主服务器&#xff09;的数据复制到一个或多个MySQL数据库服务器&#xff08;从服务器&#xff09;…

open3d | ubuntu源码编译open3d

# clone源码 git clone https://github.com/isl-org/Open3D# 安装依赖 cd Open3D util/install_deps_ubuntu.sh# 安装anaconda3&#xff0c;略过~ conda create -n open3d_py39 python3.9 conda activate open3d_py39# 查看一下python路径 which pythonmkdir build cd build# c…

Linus进程控制

进程创建 fork 函数 在linux中fork函数时非常重要的函数&#xff0c;它从已存在进程中创建一个新进程。新进程为子进程&#xff0c;而原进程为父进程。 #include <unistd.h> pid_t fork(void); 返回值&#xff1a;子进程中返回0&#xff0c;父进程返回子进程id&#x…

GraphPad Prism 10:一站式数据分析解决方案

GraphPad Prism 10是一款功能强大的数据分析和可视化软件&#xff0c;广泛应用于生命科学研究、医学、生物、化学等多个领域。以下是对其详细功能的介绍&#xff1a; 首先&#xff0c;GraphPad Prism 10具有出色的数据可视化功能。它支持各种类型的图表和图形&#xff0c;包括…

C语言预编译#pragma宏的作用

在嵌入式编程中&#xff0c;#pragma 指令具有非常重要的作用&#xff0c;因为它允许开发者在不同的编译器之间传达特定的编译指令。由于嵌入式编程通常与硬件紧密相关&#xff0c;且资源有限&#xff0c;这些指令可以帮助开发者更有效地利用可用资源&#xff0c;优化程序&#…

【UVM_event_pool RAL TLM_2024.03.18】

event pool uvm_event 用于同步或者通信&#xff0c;由object派生 ->:trigger event :wait eventwait_trigger();//相同时间触发与等待&#xff0c;不一定能等到该事件 wait_ptrigger();//一定能等到该事件&#xff0c;在while循环中会造成一直触发uvm_pool 共享的内存空…

Github多账号切换

在开发阶段&#xff0c;如果同时拥有多个开源代码托管平台的账户&#xff0c;在代码的管理上非常麻烦。那么&#xff0c;如果同一台机器上需要配置多个账户&#xff0c;怎样才能确保不冲突&#xff0c;不同账户独立下载独立提交呢&#xff1f; 我们以两个github账号进行演示 …
最新文章