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 statisticskurtosis 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的更多相关文章

  1. [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 ...

  2. 数据分析---《Python for Data Analysis》学习笔记【03】

    <Python for Data Analysis>一书由Wes Mckinney所著,中文译名是<利用Python进行数据分析>.这里记录一下学习过程,其中有些方法和书中不同 ...

  3. 《python for data analysis》第九章,数据聚合与分组运算

    # -*- coding:utf-8 -*-# <python for data analysis>第九章# 数据聚合与分组运算import pandas as pdimport nump ...

  4. 数据分析---《Python for Data Analysis》学习笔记【04】

    <Python for Data Analysis>一书由Wes Mckinney所著,中文译名是<利用Python进行数据分析>.这里记录一下学习过程,其中有些方法和书中不同 ...

  5. 数据分析---《Python for Data Analysis》学习笔记【02】

    <Python for Data Analysis>一书由Wes Mckinney所著,中文译名是<利用Python进行数据分析>.这里记录一下学习过程,其中有些方法和书中不同 ...

  6. 数据分析---《Python for Data Analysis》学习笔记【01】

    <Python for Data Analysis>一书由Wes Mckinney所著,中文译名是<利用Python进行数据分析>.这里记录一下学习过程,其中有些方法和书中不同 ...

  7. 《python for data analysis》第十章,时间序列

    < python for data analysis >一书的第十章例程, 主要介绍时间序列(time series)数据的处理.label:1. datetime object.time ...

  8. 《python for data analysis》第七章,数据规整化

    <利用Python进行数据分析>第七章的代码. # -*- coding:utf-8 -*-# <python for data analysis>第七章, 数据规整化 imp ...

  9. 《python for data analysis》第五章,pandas的基本使用

    <利用python进行数据分析>一书的第五章源码与读书笔记 直接上代码 # -*- coding:utf-8 -*-# <python for data analysis>第五 ...

随机推荐

  1. 关于Vue中父子组件相互传值

    Header为子组件,Home为父组件,通过子组件调用父组件 运行结果如下 下面是父组件调用子组件的案例 通过button按钮的click事件 图一是父组件Home中的run方法,图二是msg和fun ...

  2. C#获取实例运行时间StopWatch类

    在程序运行时有时需要获取某一步骤的操作时间,C#提供的StopWatch类可以很方便的实现这一目的. StopWatch sw=new StopWatch(); sw.Start(); //Do So ...

  3. 经典C语言编程注意点

    C/C++程序员应聘试题剖析 分中的2分.读者可从本文看到strcpy函数从2分到10分解答的例子,看看自己属于什么样的层次.此外,还有一些面试题考查面试者敏捷的思维能力. 分析这些面试题,本身包含很 ...

  4. POJ——T3259 Wormholes

    http://poj.org/problem?id=3259 Time Limit: 2000MS   Memory Limit: 65536K Total Submissions: 50692   ...

  5. hadoop1.1.0的伪分布搭建步骤

    watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvbWFuYnVyZW4wMQ==/font/5a6L5L2T/fontsize/400/fill/I0JBQk ...

  6. 使用具体解释及源代码解析Android中的Adapter、BaseAdapter、ArrayAdapter、SimpleAdapter和SimpleCursorAdapter

    Adapter相当于一个数据源,能够给AdapterView提供数据.并依据数据创建相应的UI.能够通过调用AdapterView的setAdapter方法使得AdapterView将Adapter作 ...

  7. iOS_第3方类库_側滑选项卡SlideSwitchView

    终于效果: 用法: 1.在主控制器中创建一个[SlideSwitchView]的对象实例,并用成员变量记住,如_slideSwitchView,并加入到self.view 2.设置[_slideSwi ...

  8. Git(三):加入与提交

     在这一节.接着使用上一节的代码样例往下讲,http://blog.csdn.net/troy__/article/details/39806245. 加入文件到暂存区      加入新文件和改动版本 ...

  9. [转]GLTF-3D图形界的JPEG

    GLTF简介 1.glTF(GL TransmissionFormat),即图形语言交换格式,它是一种3D内容的格式标准,由Khronos Group管理(Khronos Group还管理着OpenG ...

  10. MyEclipse常见错误汇总,中英注释版(长期更新)

    No.1 当一条语句漏写分号时错误描述如下 Syntax error, insert ";" to complete Statement(语法错误:插入分号完成语句描述) No.2 ...