当前位置:  开发笔记 > 编程语言 > 正文

随机行走熊猫

如何解决《随机行走熊猫》经验,为你挑选了1个好方法。

我正在尝试在熊猫中快速创建模拟随机游走系列.

import pandas as pd
import numpy as np
dates = pd.date_range('2012-01-01', '2013-02-22')
y2 = np.random.randn(len(dates))/365
Y2 = pd.Series(y2, index=dates)
start_price = 100

我想在开始日期从start_price开始构建另一个日期系列,并以随机增长率增长.伪代码:

P0 = 100
P1 = 100 * exp(Y2)
P2 = P1 * exp(Y2)

在excel中很容易做到,但我不能想到这样做的方式而不用pandas迭代数据帧/系列,我也碰到了这样做.

试过:

p = Y2.apply(np.exp)-1
y = p.cumsum(p)
y.plot()

这应该从开始以来给出累积的复合回报



1> unutbu..:
import matplotlib.pyplot as plt
import numpy as np
import pandas as pd

def geometric_brownian_motion(T = 1, N = 100, mu = 0.1, sigma = 0.01, S0 = 20):        
    dt = float(T)/N
    t = np.linspace(0, T, N)
    W = np.random.standard_normal(size = N) 
    W = np.cumsum(W)*np.sqrt(dt) ### standard brownian motion ###
    X = (mu-0.5*sigma**2)*t + sigma*W 
    S = S0*np.exp(X) ### geometric brownian motion ###
    return S

dates = pd.date_range('2012-01-01', '2013-02-22')
T = (dates.max()-dates.min()).days / 365
N = dates.size
start_price = 100
y = pd.Series(
    geometric_brownian_motion(T, N, sigma=0.1, S0=start_price), index=dates)
y.plot()
plt.show()

在此输入图像描述

推荐阅读
Gbom2402851125
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有