When calling reqSecDefOptParams() on ES futures, it's possible to see it inexplicably hang.
Given the call:
- reqSecDefOptParamsAsync(**{'underlyingSymbol': 'ES', 'futFopExchange': 'GLOBEX', 'underlyingSecType': 'FUT', 'underlyingConId': 371749798})
Where the conId is for ESU0, the call will hang, however given the call:
- reqSecDefOptParamsAsync(**{'underlyingSymbol': 'ES', 'futFopExchange': 'GLOBEX', 'underlyingSecType': 'FUT', 'underlyingConId': 383974339})
Where the conId is for ESZ0, the call returns data as expected.
I'm using ib_insync, but this doesn't appear to be a bug with that library
Additionally when calling it for ESZ0, only some expiries are not being returned. I can see dates in the TWS option chain that do not show up in the API response.
Has anyone played with this before?
I know about the reqContractDetails() approach, but that is good for 1 option chain call seemingly per minute. For ES it returns 11000 rows