这个问题可能有一个简单的原因,但我现在没有看到,也许其他人会遇到类似的问题。
一旦该计划开始运作,它将进行美国期权定价。 这就是谜题:
option_price = numpy.zeros(shape = (time_steps, time_steps))
stock_price = ... #computed earlier, as a matrix with the same dimensions as option_price
if (putcall =='Put'):
'''see if the option at that final price should have been executed or not'''
option_price[time_steps-1, time_steps-1] = max([ (strike - stock_price[time_steps-1, time_steps-1]), 0])
option_price[time_steps-1, time_steps-2] = max([ (strike - stock_price[time_steps-1, time_steps-2]), 0])
'''recursively determine if the option at that time and price should have been executed or not'''
当我用time_steps = 8调用此方法时,我得到的错误消息是:
option_price[time_steps-1, time_steps-1] = max([ (strike - stock_price[time_steps-1, time_steps-1]), 0])
IndexError: index (7) out of range (0<=index<7) in dimension 0
在此消息之后,我会尝试修复索引 - 如果我能看到当前索引的错误。是否禁止从具有相同尺寸的矩阵计算矩阵的条目?还是有其他问题只能通过这种方式表现出来吗?
非常感谢您提前!我非常感谢,如果不是贬低,你可以具体说出你不喜欢这个问题。
答案 0 :(得分:1)
如果索引范围为0&lt; = index&lt; 7,则表示该范围的维度为7,而不是8.检查当时矩阵的形状实际是什么,并确保它没有错误创造得太小。
答案 1 :(得分:0)
数组以0开头。所以你的第一个元素1是数组[0]。第8个元素假设索引超出范围。因为8的元素假设数组[7]抱歉,如果这没有意义。但是数组7元素不存在,数组中的最后一个元素只是数组[6] ......
答案 2 :(得分:0)
错误非常自我解释
IndexError: index (7) out of range (0<=index<7) in dimension 0
您询问了元素7,但范围是0到6。