Exclusive 22% OFF All Quantra by QuantInsti Courses for IBridgePy Users Master algorithmic trading from beginner to advanced — Python for trading, machine learning strategies, options trading, and more.
HUI22 Use HUI22 for 22% off
HUI7 Stack HUI7 for an additional 7% off
Browse Courses →
← Back to Blog

How to retrieve the whole option chains from IB using IBridgePy?

June 14, 2017

Retrieving option chains with IBridgePy is essential for options trading strategies. This guide shows how to use the IB API through IBridgePy to get complete option chain data including strikes, expiries, and contract details for any underlying security.

Retrieve option chains with IBridgePy Python code

As an example, the following code can be used to know the available futures of E-mini S&P 500. “xx” in the code represents the expiry of the futures.

Retrieve Option Chains IBridgePy Example

def initialize(context):
    request_data(contractDetails=[symbol('FUT,ES,USD,xx')])
    
def handle_data(context, data):
    print data.data[symbol('FUT,ES,USD,xx')].contractDetails
    exit()

Another example is provided to get the option chains of E-mini S&P 500 futures. “xx,xx,xx,xx” in the code represents expiry, strike price, right and multiplier, in this order. If you want to limit the returned option chains with only “Call”, “xx,xx,xx,xx” should be replaced by “xx,xx,C,xx”

def initialize(context):
    request_data(contractDetails=[symbol('OPT,ES,USD,xx,xx,xx,xx')])
    
def handle_data(context, data):
    print data.data[symbol('OPT,ES,USD,xx,xx,xx,xx')].contractDetails
    exit()

Best Practices

When requesting contract details, consider implementing rate limiting to avoid exceeding Interactive Brokers API request limits. Always test with paper trading accounts before live deployment.

Learn more from Interactive Brokers platform documentation.