Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/136.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 运行时错误:根目录未括起来_Python_C++_Quantlib - Fatal编程技术网

Python 运行时错误:根目录未括起来

Python 运行时错误:根目录未括起来,python,c++,quantlib,Python,C++,Quantlib,我得到一个运行时错误: from options import ComputeIV PUT = -1 Call = 1 evalDate = "03/01/2017" expiration = "07/07/2017"; quoteTime = "20170103T210000" forwardBid = 84.19 forwardAsk = 84.20 riskFree = .015 strike = 45.0 oBid = 0.10 oAsk = 0.17 oType = PUT

我得到一个运行时错误:

from options import ComputeIV

PUT = -1
Call = 1

evalDate = "03/01/2017"
expiration = "07/07/2017";
quoteTime = "20170103T210000"
forwardBid = 84.19 
forwardAsk = 84.20  
riskFree = .015 
strike = 45.0
oBid = 0.10
oAsk = 0.17
oType = PUT

sigma = ComputeIV.pTest(evalDate, expiration, quoteTime, oType, forwardBid, forwardAsk, riskFree, strike, oBid, oAsk)

print "from python sigma = %f" % sigma
回溯(最近一次呼叫最后一次):
文件“cboelivedata.py”,第575行,在
main()
文件“cboelivedata.py”,第400行,主
sigma=计算时间(评估日期、到期日、报价时间、oType、转发出价、转发任务、无风险、罢工、oBid、oAsk)
运行时错误:根未括起来:f[0.05,0.4]->[-1.350000e-01,-2.434993e-02]
[idf@node3python]$

这里有什么我做得不对吗?您使用的是黑色公式。在Black-Scholes欧式期权框架下,期权价格是波动率的递增函数

您的平分波动率的最小和最大范围是
0.05
0.40
。它们够好吗?您的看跌期权资金不足,因此需要高波动性

让我们检查一下你的射程。转到,然后输入信息,如我所做的:

您的解算器可以为您提供的最大看跌期权价格约为0.0797,但您的报价为0.135。因此,没有解决方案,您的对分根解算器告诉您这一点是正确的

您需要增加波动范围。尝试:

Traceback (most recent call last):
  File "cboelivedata.py", line 575, in <module>
    main()
  File "cboelivedata.py", line 400, in main
    sigma = ComputeIV.pTest(evalDate, expiration, quoteTime, oType, forwardBid, forwardAsk, riskFree, strike, oBid, oAsk)
RuntimeError: root not bracketed: f[0.05,0.4] -> [-1.350000e-01,-2.434993e-02]
[idf@node3 python]$
您可能不需要1.00(这太大了),但您得到了这个想法-您将需要调整您的根解算范围


试试看,你会得到你的隐含波动率。

谢谢你的建议。是否有正确的方法根据选项的bis/ask动态更改范围,还是最好只保留一个范围来处理所有问题?@Ivan将其保留为固定范围,并在必要时进行调整。
Traceback (most recent call last):
  File "cboelivedata.py", line 575, in <module>
    main()
  File "cboelivedata.py", line 400, in main
    sigma = ComputeIV.pTest(evalDate, expiration, quoteTime, oType, forwardBid, forwardAsk, riskFree, strike, oBid, oAsk)
RuntimeError: root not bracketed: f[0.05,0.4] -> [-1.350000e-01,-2.434993e-02]
[idf@node3 python]$
Real min = .05, max = 1.00;