Python量化交易基础讲堂-可视化随机漫步轨迹

栏目: Python · 发布时间: 5年前

内容简介:在《这里我们结合小册中Numpy、Matplotlib库的使用,用Python的方式来介绍下如何绘制随机漫步轨迹,以及如何从统计学的角度去预测随机漫步的股价。早在1990年,巴黎一位博士生路易斯·巴舍利耶(1887—1946)跟踪当时巴黎股市起伏,期望用数学工具来描述股价变动过程。在他的论文《投机理论》中指出,股票价格的日常变动从根本上说是不可预知的,类似于”布朗运动”那样属于随机游走,没有任何规律可循。就好比一个人购买一只股票后立即将其卖掉,那么他输赢的概率是相等的。

在《 Python实战-构建基于股票的量化交易系统 》小册子的《前置基础:由例程快速入门常用数据分析工具》小节我们用到了一副插图:

Python量化交易基础讲堂-可视化随机漫步轨迹

这里我们结合小册中Numpy、Matplotlib库的使用,用 Python 的方式来介绍下如何绘制随机漫步轨迹,以及如何从统计学的角度去预测随机漫步的股价。

早在1990年,巴黎一位博士生路易斯·巴舍利耶(1887—1946)跟踪当时巴黎股市起伏,期望用数学 工具 来描述股价变动过程。在他的论文《投机理论》中指出,股票价格的日常变动从根本上说是不可预知的,类似于”布朗运动”那样属于随机游走,没有任何规律可循。就好比一个人购买一只股票后立即将其卖掉,那么他输赢的概率是相等的。

数学的奇妙之处就在于,我们可以把股票的不可预知性变为可预知。最经典的例子即是模拟醉汉的随机漫步:假设一名醉汉喝醉了酒,从一个路灯下开始漫无目的地行走。每一步即可能前进也可能后退也可能拐弯。那么经过一定时间之后,这名醉汉的位置在哪里呢?

我们使用 numpy.random.randint(low, high=None, size=None, dtype=’l’) 函数产生随机数。

  • 返回随机整数,范围区间为[low,high),包含low,不包含high
  • 参数:low为最小值,high为最大值,size为数组维度大小,dtype为数据类型,默认的数据类型是np.int
  • high没有填写时,默认生成随机数的范围是[0,low]
print("np.random.randint:\n {}".format(np.random.randint(1,size=5)))# 返回[0,1)之间的整数,所以只有0
"""
np.random.randint:
 [0 0 0 0 0]
"""
print("np.random.randint:\n {}".format(np.random.randint(1,5)))# 返回1个[1,5)时间的随机整数
"""
np.random.randint:
 2
"""
print("np.random.randint:\n {}".format(np.random.randint(-5,5,size=(2,2))))
"""
np.random.randint:
 [[-5 -3]
 [ 2 -3]]
"""
复制代码

为了便于理解,我们将醉汉的移动简化为一维的移动,规定他只能在一条直线上随机前进或者后退。计算得到醉汉随机游走轨迹的代码如下所示:

draws = np.random.randint(0, 2, size=nsteps)
steps = np.where(draws > 0, 1, -1)
walk = steps.cumsum()
复制代码

我们用matplotlib.pyplot.plot()函数绘制出醉汉从0轴开始随机游走2000步的模拟轨迹图形,如下所示:

Python量化交易基础讲堂-可视化随机漫步轨迹

由于醉汉的每一步都是完全随机的,因此他最终准确位置是不可能被算出来的,就像每天的股票价格变动一样是不可预知的。但是,从统计学的角度来看,这名醉汉最终的位置的概率分布却是可以计算出来的。接下来,我们用1000次随机漫步来看下结果,我们把随机漫步轨迹的计算封装为函数random_walk(),如下所示:

_ = [plt.plot(np.arange(2000), random_walk(nsteps=2000), c='b', alpha=0.05) for _ in np.arange(0,1000)]
复制代码

模拟醉汉从0轴开始1000次随机游走2000步的模拟轨迹图形,如下所示:

Python量化交易基础讲堂-可视化随机漫步轨迹

图中我们直观地观察出随机游走的发展情况,每一条淡淡的蓝线就是一次模拟,横轴为行走的步数,纵轴表示离开起始点的位置。蓝色越深,就表示醉汉在对应行走了对应的步数之后,出现在此位置的概率越大,可见随着醉汉可能出现的位置的范围不断变大,但是距离起始点越远的位置概率越小。

真实的概率分布用数学公式来精确计算,这就是量化交易的精髓所在。量化交易的鼻祖级大神爱德华·索普就是利用这种随机游走模型的思想,推算出认股权证在合约兑现的那一天相对应的股票的价格的概率分布,从而计算出当前认股权证的价格是过高还是过低,然后再利用凯利公式,进行买卖。

关于完整代码可以加入小册交流群获取。更多的量化交易内容欢迎大家订阅小册阅读!!


以上所述就是小编给大家介绍的《Python量化交易基础讲堂-可视化随机漫步轨迹》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

深入理解C指针

深入理解C指针

[美] Richard Reese / 陈晓亮 / 人民邮电出版社 / 2014-2 / 45.00

深入理解C指针和内存管理,提升编程效率!这是一本实战型图书,通过它,读者可以掌握指针动态操控内存的机制、对数据结构的增强支持,以及访问硬件等技术。本书详细阐述了如何在数组、字符串、结构体和函数中使用指针,同时演示了相应的内存模型及其对指针使用的影响。 指针为C语言带来了强大的功能和灵活性,却也是C语言中最难啃的一块“骨头”。本书旨在帮读者透彻理解指针,解决这个老大难问题。不论是初学者还是经验......一起来看看 《深入理解C指针》 这本书的介绍吧!

图片转BASE64编码
图片转BASE64编码

在线图片转Base64编码工具

HEX CMYK 转换工具
HEX CMYK 转换工具

HEX CMYK 互转工具

HEX HSV 转换工具
HEX HSV 转换工具

HEX HSV 互换工具