当我运行以下代码时,它返回错误:“error.Id:1 Code:200 Msg:No security definition for the request”
我知道股票“ASRL”没有期权链。因此,API返回上述错误并在那里停止。然而,我想捕获这个错误,并继续检索下一张票据的选项链。在本例中,我希望程序继续运行,以获得“TSLA”的选项链。你能帮忙吗
from ibapi.client import EClient
from ibapi.wrapper import EWrapper
from ibapi.contract import Contract
#
class MyWrapper(EWrapper):
def contractDetails(self, reqId, contractDetails):
print(reqId, contractDetails.contract)
def contractDetailsEnd(self, reqId):
print("ContractDetailsEnd. ", reqId)
app.disconnect()
def error(self, reqId, errorCode, errorString):
print("Error. Id: " , reqId, " Code: " , errorCode , " Msg: " , errorString)
z = 1
while z < 3:
wrapper = MyWrapper()
app = EClient(wrapper)
app.connect("127.0.0.1", 7497, clientId=123)
print("z = ", z)
if z == 1:
wsStock = "ASRL"
else:
wsStock = "TSLA"
contract = Contract()
contract.symbol = wsStock
contract.lastTradeDateOrContractMonth = 20210416
contract.secType = "OPT"
contract.exchange = "SMART"
contract.currency = "USD"
contract.right = "P"
app.reqContractDetails(z, contract)
try:
app.run()
except:
continue
z += 1
目前没有回答
相关问题 更多 >
编程相关推荐