如何投资是现代企业、个人投资者所面临的实际问题,投资的目标是收益尽可能大,但是投资往往伴随着风险,如果在保证收益最大化的情况下,风险最小;或是风险相同的情况下,如何实现收益的最大化;通过本实训,可以使学生了解投资收益的来源,如何去识别、区分风险类型,通过模型测算投资组合的风险和收益大小,从而灵活调整投资组合,制定并实施投资决策。

项目开发流程分以下四步:

数据收集 (爬取证券市场数据)

数据清洗(得到训练数据)

模型使用(得到推荐结果)

结果评估(推荐结果评估)

具体描述如下:

  1. 使用python爬取新浪财经等网站中的股票交易数据。数据包括了交易日期、开盘价、最高价、最低价、收盘价、调整后的收盘价以及成交量。其中调整后的收盘价最为重要,它对股票分割、股息和其他公司行为进行了标准化,能真实地反映股票随时间的回报。
  2. 将爬取的数据进行清洗,得到结构化的数据,并存储到MySQL中。

收益计算:

3. 使用pandas的.pct_change()方法来计算收益率。绘制股票历史每日收益随时间变化的图。

  1. 使用numpy包中的mean()函数计算股票历史收益的均值(日平均收益)。
  2. 根据日平均收益计算平均年化收益。
  3. 使用matplotlib绘图包中的hist()函数绘制收益直方图,了解收益分布情况及收益中的异常值。

风险计算:

7. 使用numpy包中的std()函数计算收益的方差,并转为年化方差。投资回报中较高的标准差意味着较高的风险。

  1. 使用scipy.stats提供的skew()函数计算收益分布的偏度。在金融领域,人们更倾向于正的偏度,因为这意味着高盈利的概率更大。

  2. 使用scipy.stats提供的 kurtosis() 函数计算收益分布的超值峰度。大部分金融收益都具有正的超值峰度。

  3. 使用scipy.stats提供的shapiro()函数判断收益分布的正态性。

如何使用Python进行投资收益和风险分析的更多相关文章

  1. 目前比较流行的Python量化开源框架汇总(交易+风险分析工具)

     注:点击框架名称通往Github talib talib的简称是Technical Analysis Library,主要功能是计算行情数据的技术分析指标 numpy 介绍:一个用python实现的 ...

  2. 注册会计师带你用Python进行探索性风险分析(一)

    https://blog.csdn.net/BF02jgtRS00XKtCx/article/details/78519378

  3. Python数据分析入门与实践 ✌✌

    Python数据分析入门与实践 (一个人学习或许会很枯燥,但是寻找更多志同道合的朋友一起,学习将会变得更加有意义✌✌) 这是一个数据驱动的时代,想要从事机器学习.人工智能.数据挖掘等前沿技术,都离不开 ...

  4. 《自动化平台测试开发-Python测试开发实战》新书出版了

    首先 第一本书,当初在百度阅读初步写了个电子版,刚一上线不久即收到了数百位读者朋友阅读收藏购买,于是顺利成章就出版了纸质书. <软件自动化测试开发>认真看过的读者应该都知道,介绍的主要是自 ...

  5. 数据科学中的常见的6种概率分布(Python实现)

    作者:Pier Paolo Ippolito@南安普敦大学 编译:机器学习算法与Python实战(微信公众号:tjxj666) 原文:https://towardsdatascience.com/pr ...

  6. python中文语料分词处理,按字或者词cut_sentence

    cut_sentence.py import string import jieba import jieba.posseg as psg import logging #关闭jieba日制 jieb ...

  7. Python小白的数学建模课-05.0-1规划

    0-1 规划不仅是数模竞赛中的常见题型,也具有重要的现实意义. 双十一促销中网购平台要求二选一,就是互斥的决策问题,可以用 0-1规划建模. 小白学习 0-1 规划,首先要学会识别 0-1规划,学习将 ...

  8. Python 常用笔记

    记录 http://blog.sina.com.cn/s/blog_73b339390102yoio.html PE:市盈率 = 股价 / 每股盈利 PEG:(市盈率相对盈利增长比率/市盈增长比率) ...

  9. Python基于粒子群优化的投资组合优化研究|附代码数据

    全文链接:http://tecdat.cn/?p=6811 最近我们被客户要求撰写关于粒子群优化的研究报告,包括一些图形和统计输出. 我今年的研究课题是使用粒子群优化(PSO)的货币进位交易组合优化. ...

  10. Python中的多进程与多线程(一)

    一.背景 最近在Azkaban的测试工作中,需要在测试环境下模拟线上的调度场景进行稳定性测试.故而重操python旧业,通过python编写脚本来构造类似线上的调度场景.在脚本编写过程中,碰到这样一个 ...

随机推荐

  1. 向量数据库Pinecone,治疗ChatGPT幻觉的药方?

    大白话了解新鲜事,今天讲讲以Pinecone为代表的向量数据库.向量数据库Pinecone一夜爆火,4月27日B轮拿到了1亿美元的融资,估值达到7.5亿美元,一个2021年刚刚推出的数据库产品,火爆背 ...

  2. ENVI指定像元数量(行数与列数)裁剪栅格图像

      本文介绍基于ENVI软件,实现栅格遥感影像按照像元行列号与个数进行指定矩形区域裁剪的方法.   一般的,如果我们需要裁剪某个具体的行政区域,按照对应区域的矢量图层裁剪即可:如果需要裁剪某个大致的区 ...

  3. 测序数据学习笔记:bcl2fastq 安装

    相比二进制的 bcl2fastq2,基于 Perl 语言的 bcl2fastq-1.8.4 或许是从源码层面学习了解 Illumina 测序数据处理一个不错的选择.源码版本的 bcl2fastq-1. ...

  4. GTX.Zip:一款可以替代 gzip 的基因大数据压缩软件

    今天给大家推荐一款基因大数据压缩的大杀器:GTX.Zip. GTX.Zip 这款软件是由曾在 2016 年 GCTA 风云挑战赛中的那匹黑马--人和未来生物科技有限公司开发的,而当时他们也是打破了基因 ...

  5. LeetCode 双周赛 106(2023/06/10)两道思维题

    本文已收录到 AndroidFamily,技术和职场问题,请关注公众号 [彭旭锐] 加入知识星球提问. 往期回顾:LeetCode 单周赛第 348 场 · 数位 DP 模版学会了吗? 双周赛 106 ...

  6. JVM、JRE和JDK的理解

    JVM JVM,全称为Java Virtual Machine,中文的意思是:Java虚拟机.   在理解Java虚拟机这个定义之前,我们先讲讲为何叫虚拟机呢?称为虚拟机,顾名思义,它应该不是真实存在 ...

  7. Python与TensorFlow:如何高效地构建和训练机器学习模型

    目录 标题:<Python 与 TensorFlow:如何高效地构建和训练机器学习模型> 一.引言 随着人工智能的快速发展,机器学习作为其中的一个重要分支,受到了越来越多的关注和应用.而P ...

  8. 记一次字符串末尾空白丢失的排查 → MySQL 是会玩的!

    开心一刻 今天答应准时回家和老婆一起吃晚饭,但临时有事加了会班,回家晚了点 回到家,本以为老婆会很生气,但老婆却立即从厨房端出了热着的饭菜 老婆:还没吃饭吧,去洗下,来吃饭吧 我洗好,坐下吃饭,内心感 ...

  9. 深度Q网络:DQN项目实战CartPole-v0

    摘要:相比于Q learning,DQN本质上是为了适应更为复杂的环境,并且经过不断的改良迭代,到了Nature DQN(即Volodymyr Mnih发表的Nature论文)这里才算是基本完善. 本 ...

  10. 【Oracle】使用PL/SQL实现冒泡排序

    [Oracle]使用PL/SQL实现冒泡排序 一般来说,SQL要排序的话直接使用order by即可 不一般来说,就是瞎搞,正好也可以巩固自己的数据结构基础 存储包内容如下 规范: create or ...