[Python] Histograms for analysis Daily return
A histogram is an accurate representation of the distribution of numerical data.

Y axis is the occurances, X axis is the % of daily return.
There are three things can meature histogram
1. Standard deviation
2. Mean
3. Kurtosis : In probability theory and statistics, kurtosis is a measure of the "tailedness" of the probability distribution of a real-valued random variable.

Plot a histogram:
import os
import pandas as pd
import matplotlib.pyplot as plt def compute_daily_return(df):
dr = df.copy()
dr = (df / df.shift(-1)) -1
return dr def histogram(df):
dr = compute_daily_return(df)
plot_data(dr, title="Daily returns", yLabel="Daily returns")
dr.hist(bins=20)
plt.show() if __name__ == '__main__':
df=test_run()
#rolling_mean(df)
histogram(df['SPY'])


Plot 'mean' and 'std', Get 'kurtosis' value as well:
def histogram(df):
dr = compute_daily_return(df)
plot_data(dr, title="Daily returns", yLabel="Daily returns")
dr.hist(bins=20) # Get mean and standard deviation
mean = dr.mean()
print("mean=", mean)
std = dr.std()
print("std=", std) plt.axvline(mean, color='w', linestyle='dashed', linewidth=2)
plt.axvline(std, color='r', linestyle='dashed', linewidth=2)
plt.axvline(-std, color='r', linestyle='dashed', linewidth=2)
plt.show() # Get kurtosis
print("kurtosis=", dr.kurtosis()) if __name__ == '__main__':
df=test_run()
histogram(df['SPY'])

Now, let see how to plot tow histgram in the same plot:
def histogram(df):
dr = compute_daily_return(df)
plot_data(dr, title="Daily returns", yLabel="Daily returns")
dr['SPY'].hist(bins=20, label="SPY")
dr['GLD'].hist(bins=20, label="GLD")
plt.legend(loc='upper right')
# Get mean and standard deviation
mean_spy = dr['SPY'].mean()
mean_gld = dr['GLD'].mean()
std_spy = dr['SPY'].std()
std_gld = dr['GLD'].std()
plt.axvline(mean_spy, color='w', linestyle='dashed', linewidth=2)
plt.axvline(std_spy, color='r', linestyle='dashed', linewidth=2)
plt.axvline(-std_spy, color='r', linestyle='dashed', linewidth=2)
plt.axvline(mean_gld, color='b', linestyle='dashed', linewidth=2)
plt.axvline(std_gld, color='g', linestyle='dashed', linewidth=2)
plt.axvline(-std_gld, color='g', linestyle='dashed', linewidth=2)
plt.show()
if __name__ == '__main__':
df=test_run()
histogram(df[['SPY', 'GLD']])

[Python] Histograms for analysis Daily return的更多相关文章
- [Python] Scatter Plot for daily return
Sploe = 2: means that SPY move up 1, ABC move up 2 Correlation: how close those dots close to the li ...
- 数据分析---《Python for Data Analysis》学习笔记【03】
<Python for Data Analysis>一书由Wes Mckinney所著,中文译名是<利用Python进行数据分析>.这里记录一下学习过程,其中有些方法和书中不同 ...
- 《python for data analysis》第九章,数据聚合与分组运算
# -*- coding:utf-8 -*-# <python for data analysis>第九章# 数据聚合与分组运算import pandas as pdimport nump ...
- 数据分析---《Python for Data Analysis》学习笔记【04】
<Python for Data Analysis>一书由Wes Mckinney所著,中文译名是<利用Python进行数据分析>.这里记录一下学习过程,其中有些方法和书中不同 ...
- 数据分析---《Python for Data Analysis》学习笔记【02】
<Python for Data Analysis>一书由Wes Mckinney所著,中文译名是<利用Python进行数据分析>.这里记录一下学习过程,其中有些方法和书中不同 ...
- 数据分析---《Python for Data Analysis》学习笔记【01】
<Python for Data Analysis>一书由Wes Mckinney所著,中文译名是<利用Python进行数据分析>.这里记录一下学习过程,其中有些方法和书中不同 ...
- 《python for data analysis》第十章,时间序列
< python for data analysis >一书的第十章例程, 主要介绍时间序列(time series)数据的处理.label:1. datetime object.time ...
- 《python for data analysis》第七章,数据规整化
<利用Python进行数据分析>第七章的代码. # -*- coding:utf-8 -*-# <python for data analysis>第七章, 数据规整化 imp ...
- 《python for data analysis》第五章,pandas的基本使用
<利用python进行数据分析>一书的第五章源码与读书笔记 直接上代码 # -*- coding:utf-8 -*-# <python for data analysis>第五 ...
随机推荐
- POJ 3273 Monthly Expense 【二分答案】
题意:给出n天的花费,需要将这n天的花费分成m组,使得每份的和尽量小,求出这个最小的和 看题目看了好久不懂题意,最后还是看了题解 二分答案,上界为这n天花费的总和,下界为这n天里面花费最多的那一天 如 ...
- React+Webpack+ES6环境搭建(自定义框架)
引言 目前React前端框架是今年最火的.而基于React的React Native也迅速发展.React有其独特的组件化功能与JSX的新语法,帮助前端设计有了更好的设计与便捷,而React Nati ...
- js上传文件获取文件流
上传文件获取文件流 <div> 上传文件 : <input type="file" name = "file" id = "file ...
- size(A,1)
在matlab中,size()用来返回数据序列的行数和列数.size(A,1)返回的是矩阵A所对应的行数.另外,(1)s=size(A), 当只有一个输出参数时,返回一个行向量,该行向量的第一个元素时 ...
- 上传canvas图片到服务器
canvas绘图后用 canvasDom.toDataURL()可以得到png格式图片的base64 dataURI 然后用ajax post给后台 ,后端程序把开头的data:image/png; ...
- FPGA静态时序分析——IO口时序(Input Delay /output Delay)
1.1 概述 在高速系统中FPGA时序约束不止包括内部时钟约束,还应包括完整的IO时序约束和时序例外约束才能实现PCB板级的时序收敛.因此,FPGA时序约束中IO口时序约束也是一个重点.只有约束正确 ...
- 安卓4.3以上版本已经完美支持BLE(英文版)
Android 4.3 (API Level 18) introduces built-in platform support for Bluetooth Low Energy in the cent ...
- zzulioj--1822--水水更健康(水题)
1822: 水水更健康 Time Limit: 1 Sec Memory Limit: 128 MB Submit: 49 Solved: 19 SubmitStatusWeb Board Des ...
- hpuoj--校赛--特殊的比赛日期(素数判断+模拟)
问题 B: 感恩节KK专场--特殊的比赛日期 时间限制: 1 Sec 内存限制: 128 MB 提交: 392 解决: 99 [提交][状态][讨论版] 题目描述 KK今天参加河南理工大学ACM程 ...
- BZOJ 4551 HEOI 2016 树 (并查集)
思路: 考虑时光倒流 这不就是并查集裸题了-----. //By SiriusRen #include <cstdio> #include <cstring> #include ...