在python中使用for循环生成多个图形

2024-05-15 02:37:13 发布

您现在位置:Python中文网/ 问答频道 /正文

我想为10家不同的公司创建多个蒙特卡罗分析。MC函数有3个参数,根据公司的不同而变化,其代码如下所示:

import numpy as np


def monte_carlo(start_price, days, mu, sigma):
    price = np.zeros(days)
    price[0]= start_price
    shock = np.zeros(days)
    drift = np.zeros(days)

    for x in range (1,days):
        shock[x] = np.random.normal(loc = mu *dt, scale = sigma * np.sqrt(dt) )

        drift[x] = mu*dt

        price[x] = price[x-1] + (price[x-1] * (drift[x] + shock[x]) )
    return price

然后,该函数由for循环绘制100次:

for run in range(100):
        plt.plot(monte_carlo(start_price,days,mu,sigma))
        plt.xlabel('Days')
        plt.ylabel('Price')
        plt.title('MCA for ')

这一切都适用于一组起始价格、mu、sigma的值,但我希望它能循环通过10个不同的集合

我有一些东西看起来像这样:

for stock in start_price, sigma, mu:
    for run in range(100):
        plt.plot(monte_carlo(start_price[stock],days,mu[stock],sigma[stock]))
        plt.xlabel('Days')
        plt.ylabel('Price')
        plt.title('MCA for %' %stock)

但这根本不起作用,我得到了一个“只能通过布尔值的数据帧”错误

我希望这是有道理的,我是一个彻头彻尾的傻瓜,所以任何帮助都是感激的


Tags: inforstocknpzerospltdaysstart

热门问题