轻松入门Python量化交易(中)

用Python进行量化投资的入门介绍。

微信搜索关注《Python学研大本营》,加入读者群,分享更多精彩

图片

直方图

直方图是数据集中值的分布图形表示,显示这些值的频率。

每日收益率的直方图有助于帮助投资者识别模式,例如某个资产在一定期间内的每日收益率范围,表明其稳定性和波动性水平。

再次使用Quantstats绘制所分析资产的直方图。

# 绘制直方图
print('\nApple Daily Returns Histogram')
qs.plots.histogram(aapl, resample = 'D')
 
print('\nTesla Inc. Daily Returns Histogram')
qs.plots.histogram(tsla, resample = 'D')
 
print('\nThe Walt Disney Company Daily Returns Histogram')
qs.plots.histogram(dis, resample = 'D')
 
print('\nAdvances Micro Devices, Inc. Daily Returns Histogram')
qs.plots.histogram(amd, resample = 'D')

图片

图片

图片

图片

通过对直方图的分析,我们可以观察到大多数每日收益率在分布的中心接近于零。但是,很容易看到一些远离均值的极端值,这就是AMD的情况,每的日收益率约为50%,表明在分布的正值范围存在离群值。相反,在负值范围内,似乎有一个约为-20%的限制。

迪士尼的股票似乎显示出更平衡的收益率,其价值范围在-15%到15%之间,而大部分收益率更接近于平均值。

使用直方图,我们可以提取一些有价值的统计数据,例如峰度和偏度。

峰度

每日收益率的高峰度值可能表明价格的频繁波动明显偏离该投资的平均收益率,这可能导致该股票的波动性和风险增加。

峰度值超过3.0的分布称为尖峰分布,其特征是离群值和更多远离平均值的值,这会在直方图中表现为水平轴的拉伸。具有尖峰分布的股票通常与更高的风险水平相关,但也因为过去发生的大幅价格变动而具有更高的回报潜力。

在下面的图像中,可以看到左边是负峰度,右边是正峰度。左边的分布显示极端值的概率较低,平均值附近的数值集中度也较低,而右边的分布显示平均值附近的数值集中度较高,但也存在极端值,因此发生的概率也较高。

图片

峰度

峰度测量了分布尾部观测值与中心观测值的集中程度。在金融领域,高水平的过度峰度,或“尾部风险”,代表了因罕见事件而发生损失的可能性。这种风险对于投资者在做出投资决策时考虑是非常重要的,因为它可能会影响特定股票的潜在回报和稳定性。

同样,我们使用quantstats来测量所分析股票的峰度。

# 使用quantstats来测量峰度
print("Apple's kurtosis: ", qs.stats.kurtosis(aapl).round(2))
print("Tesla's kurtosis: ", qs.stats.kurtosis(tsla).round(2))
print("Walt Disney's kurtosis: ", qs.stats.kurtosis(dis).round(3))
print("Advances Micro Devices' kurtosis: ", qs.stats.kurtosis(amd).round(3))
Apple's kurtosis:  5.26
Tesla's kurtosis:  5.04
Walt Disney's kurtosis:  11.033
Advances Micro Devices' kurtosis:  17.125

上述峰度值显示,苹果、特斯拉、华特迪士尼和超威半导体这四只股票都具有很高的峰度水平,这表明它们的每日收益分布观测值集中在尾部,表明这四只股票面临很高的波动率和风险,价格波动明显偏离平均收益。

然而,超威半导体的峰度最高,为17.125,表明超威半导体面临极高的尾部风险,有大量的极端价格波动。另一方面,迪士尼的峰度为11.033,仍高于正态分布的典型值,但不像超威半导体那么极端。

偏度

偏度是量化收益不对称性的指标。它反映了分布的形状,并确定它是否对称、左偏或右偏。

下面,可以看到两个不同的不对称分布。左边是一个正偏分布的例子,有一个长长的右尾,表明极端正收益的概率比正态分布更大。另一方面,负偏分布可能类似于右边的分布,有一个长尾,表示负回报离群值的频率更高。

图片

偏度

当偏度等于零时,表示分布对称,两个尾部大小相同,值在平均值两侧分布均匀。

使用quantstats和Python可以计算偏度,如下所示:

# 使用quantstats测量偏度
print("Apple's skewness: ", qs.stats.skew(aapl).round(2))
print("Tesla's skewness: ", qs.stats.skew(tsla).round(2))
print("Walt Disney's skewness: ", qs.stats.skew(dis).round(3))
print("Advances Micro Devices' skewness: ", qs.stats.skew(amd).round(3))
Apple's skewness:  -0.07
Tesla's skewness:  0.33
Walt Disney's skewness:  0.199
Advances Micro Devices' skewness:  1.043

通常,-0.5到0.5之间的值表示轻微的偏斜,而小于-1和大于1的值则表示强烈的不对称。

苹果、特斯拉和迪士尼的偏度值略有偏斜,迪士尼的轻微偏斜可以通过观察其直方图的x轴范围,在-15%和15%之间平衡来看出。

超威半导体的偏度值强烈正偏,这也可以很容易地通过观察其直方图范围在-20%到50%之间来确认。超威半导体在正尾有很多离群值,这对于购买其股票的人来说可能是好事,但也表现出更高的波动率和风险。

标准差

标准差是广泛使用的统计指标,用于量化数据集的变异性。当应用于股票的每日收益时,它可以指示与投资特定股票相关的风险水平。具有高的每日收益波动性(高标准差)的股票被认为比每日收益波动性较低(低标准差)的股票更具风险。

标准差使投资者能够评估风险水平,比较不同股票的波动性。例如,如果两个资产具有相似的平均回报,但一个的标准差更高,通常被认为是更具风险的投资。因此,标准差是帮助投资者在投资选择和投资组合管理方面做出明智决策的有用工具。

以下是如何使用Python获取数据集的标准差:

# 使用quantstats测量标准差
print("Apple's Standard Deviation from 2010 to 2023: ", aapl.std().round(3))
print("\nTesla's Standard Deviation from 2010 to 2023: ", tsla.std().round(3))
print("\nDisney's Standard Deviation from 2010 to 2023: ", dis.std().round(3))
print("\nAMD's Standard Deviation from 2010 to 2023: ", amd.std().round(3))
Apple's Standard Deviation from 2010 to 2023:  0.018
 
Tesla's Standard Deviation from 2010 to 2023:  0.036
 
Disney's Standard Deviation from 2010 to 2023:  0.016
 
AMD's Standard Deviation from 2010 to 2023:  0.036

根据上述数值,我们可以说,苹果和迪士尼的波动性比特斯拉和AMD小,这表明苹果和迪士尼是更安全的投资选择,在市场上表现出更小的价格波动。

推荐书单

IT BOOK 多得(点击查看5折活动书单)icon-default.png?t=N7T8https://u.jd.com/psx2y1M

《Python从入门到精通(微课精编版)》

《Python从入门到精通(微课精编版)》使用通俗易懂的语言、丰富的案例,详细介绍了Python语言的编程知识和应用技巧。全书共24章,内容包括Python开发环境、变量和数据类型、表达式、程序结构、序列、字典和集合、字符串、正则表达式、函数、类、模块、异常处理和程序调试、进程和线程、文件操作、数据库操作、图形界面编程、网络编程、Web编程、网络爬虫、数据处理等,还详细介绍了多个综合实战项目。其中,第24章为扩展项目在线开发,是一章纯线上内容。全书结构完整,知识点与示例相结合,并配有案例实战,可操作性强,示例源代码大都给出详细注释,读者可轻松学习,快速上手。本书采用O2O教学模式,线下与线上协同,以纸质内容为基础,同时拓展更多超值的线上内容,读者使用手机微信扫一扫即可快速阅读,拓展知识,开阔视野,获取超额实战体验。
《Python从入门到精通(微课精编版)》icon-default.png?t=N7T8https://item.jd.com/13524355.html

图片

精彩回顾

《使用Python和Spacy进行命名实体识别》

《使用GeoPandas进行地理空间数据可视化》

《用6个步骤实现Python发送电子邮件》

《4个在Pandas DataFrame中进行元素比较的函数》

《Python开发者必看,使用ReactPy和Python进行前端网页开发》

《从R到Python,借助ChatGPT完成代码转换》

微信搜索关注《Python学研大本营》,加入读者群

访问【IT今日热榜】,发现每日技术热点

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值