我想在Python中模拟股票价格的运动,持续3年,总共300步,有5条路径。股价可以上涨或下跌,上涨概率=q,下跌概率=1-q。
如果它增加,则周期价格t=周期价格t-1×u,如果它减少,则周期价格t=周期价格t-1×d
我对如何用随机数回答这个问题有点困惑。虽然我这样做,它可以显示结果,但我不确定是否比较随机数和q是正确的方法。
#m = time step
#T = year
#sigma = volatility
#S0 = price period 0
#r = riskfree
def price_path(m,T,sigma,s0,r):
prices = np.zeros(m)
prices[0] = s0
u = np.exp(sigma*np.sqrt(T/m))
d = 1/u
q = (np.exp(sigma*T/m) - d) / (u-d)
for i in range(m-1):
rand_var = np.random.rand()
if(rand_var < q):
prices[i+1] = prices[i] * u
else:
prices[i+1] = prices[i] * d
return prices
np.random.seed(3912)
fig, ax =plt.subplots()
for i in range(5):
rd_walk = price_path(m=300,T=3,sigma=0.25,s0=50,r=0.05)`
plt.plot(rd_walk)
你做对了,因为它只是一个伯努利分布。
通过使用numpy
,可以更简洁地编写price_path
:
def price_path(m,T,sigma,s0,r):
u = np.exp(sigma*np.sqrt(T/m))
d = 1/u
q = (np.exp(sigma*T/m) - d) / (u-d)
up_or_down = np.where(np.random.rand(m)<q,u,d)
up_or_down[0] = 1.
prices = s0 * np.cumprod(up_or_down)
return prices
本文向大家介绍如何在R中创建具有随机值的矩阵?,包括了如何在R中创建具有随机值的矩阵?的使用技巧和注意事项,需要的朋友参考一下 通常,使用给定值创建矩阵,但是如果我们要创建具有随机值的矩阵,则将对矩阵函数使用常规方法。R中的随机选择可以根据我们的目标以多种方式完成,例如,如果要从正态分布中随机选择值,则将使用rnorm函数并将其存储在矩阵中,然后将其传递到矩阵函数中。 示例 输出结果 示例 输出结
问题内容: 我对使用 Python 编程很 陌生 。 我想制作一个将从Google Finance 获取股票价格* 的应用程序。一个示例是CSCO (思科系统) 。然后,我将使用该数据 在库存达到一定值时向用户发出警告 。它还需要 每30秒刷新一次 。 __ *** 问题是我不知道如何获取数据! 谁有想法? 问题答案: 该模块由CoreyGoldberg提供。 程序: 用法示例: 更新 :更改了正
如何在Chrome中创建随机user_agent?我在用假用户代理。这里是图书馆。打印输出是工作的,但当它似乎没有加载到Chrome。
问题内容: 我想知道在特定范围内生成随机数的最佳方法(例如在Java中)是什么,而每个范围内的每个数字都有一定的发生概率? 例如 从[1; 3]内产生随机整数,并具有以下概率: P(1)= 0.2 P(2)= 0.3 P(3)= 0.5 现在,我正在考虑在[0; 100]内生成随机整数并执行以下操作的方法: 如果它在[0; 20]之内->我得到我的随机数1。 如果它在[21; 50]之内->我得到
问题内容: 如果我定义一个小python程序为 我收到回溯错误 我要弄清楚的是,如何在不实例化对象的情况下动态地将类方法设置为类? 编辑: 这个问题的答案是 返回以下输出 问题答案: 您可以通过简单地分配给类对象或通过对类对象的setattr动态地将类方法添加到类中。在这里,我使用python约定,即类以大写字母开头,以减少混乱:
问题内容: 假设我需要一个3位数的电话号码,因此它类似于: 问题答案: 要获得一个随机的3位数字: (假设您实际上是指三位数,而不是“最多三位数”。) 要使用任意数量的数字: 输出: