deephaven_ib¶
- class BarDataType(value)[source]¶
Bases:
EnumBar data type.
- ADJUSTED_LAST = 6¶
Bid/Ask prices.
- AGGTRADES = 15¶
Aggregate trade prices.
- ASK = 4¶
Ask prices.
- BID = 3¶
Bid prices.
- BID_ASK = 5¶
Bid/Ask prices.
- FEE_RATE = 10¶
Fee rate.
- HISTORICAL_VOLATILITY = 7¶
Historical volatility.
- MIDPOINT = 2¶
Midpoint prices.
- OPTION_IMPLIED_VOLATILITY = 8¶
Option implied volatility.
- REBATE_RATE = 9¶
Rebate rate.
- TRADES = 1¶
Trade prices.
- YIELD_ASK = 12¶
Ask yield.
- YIELD_BID = 11¶
Bid yield.
- YIELD_BID_ASK = 13¶
Bid/Ask yield.
- YIELD_LAST = 14¶
Last yield.
- class BarSize(value)[source]¶
Bases:
EnumBar data sizes.
- DAY_1 = '1 day'¶
1 day bar.
- HOUR_1 = '1 hour'¶
1 hour bar.
- HOUR_2 = '2 hour'¶
2 hour bar.
- HOUR_3 = '3 hour'¶
3 hour bar.
- HOUR_4 = '4 hour'¶
4 hour bar.
- HOUR_8 = '8 hour'¶
8 hour bar.
- MIN_1 = '1 min'¶
1 minute bar.
- MIN_10 = '10 mins'¶
10 minute bar.
- MIN_15 = '15 mins'¶
15 minute bar.
- MIN_2 = '2 mins'¶
2 minute bar.
- MIN_20 = '20 mins'¶
20 minute bar.
- MIN_3 = '3 mins'¶
3 minute bar.
- MIN_30 = '30 mins'¶
30 minute bar.
- MIN_5 = '5 mins'¶
5 minute bar.
- MONTH_1 = '1M'¶
1 month bar.
- SEC_1 = '1 sec'¶
1 second bar.
- SEC_10 = '10 secs'¶
10 second bar.
- SEC_15 = '15 secs'¶
15 second bar.
- SEC_30 = '30 secs'¶
30 second bar.
- SEC_5 = '5 secs'¶
5 second bar.
- WEEK_1 = '1W'¶
1 week bar.
- class Duration(value)[source]¶
Bases:
objectTime period to request data for.
- static days(value)[source]¶
Create a duration of a specified number of days.
- Parameters:
value (int) – number of days
- Return type:
- Returns:
A duration.
- static months(value)[source]¶
Create a duration of a specified number of months.
- Parameters:
value (int) – number of months
- Return type:
- Returns:
A duration.
- static seconds(value)[source]¶
Create a duration of a specified number of seconds.
- Parameters:
value (int) – number of seconds
- Return type:
- Returns:
A duration.
- class IbSessionTws(host='', port=7497, client_id=0, download_short_rates=True, order_id_strategy=OrderIdStrategy.INCREMENT, read_only=True, is_fa=False)[source]¶
Bases:
objectIB TWS session.
NOTE: Some tables are data specific to the current client_id (e.g. orders_submitted). A client_id of 0 includes data manually entered into the TWS session. For example, orders entered by hand.
- Parameters:
host (str) – The host name or IP address of the machine where TWS is running. Leave blank to connect to the local host. When run inside docker, you probably want
host.docker.internal.port (int) – TWS port, specified in TWS on the
Configure->API->Socket Portfield. By default production trading uses port 7496 and paper trading uses port 7497.client_id (int) –
A number used to identify this client connection. All orders placed/modified from this client will be associated with this client identifier.
NOTE: Each client MUST connect with a unique clientId.
download_short_rates (bool) – True to download a short rates table.
order_id_strategy (OrderIdStrategy) – strategy for obtaining new order ids.
read_only (bool) – True to create a read only client that can not trade; false to create a read-write client that can trade. Default is true.
is_fa (bool) – True for financial advisor accounts; false otherwise. Default is false.
- Tables:
errors: an error log.
requests: requests to IB.
contract_details: details describing contracts of interest. Automatically populated.
contracts_matching: contracts matching query strings provided to
request_contracts_matching.market_rules: market rules indicating the price increment a contract can trade in. Automatically populated.
short_rates: interest rates for shorting securities. Automatically populated if
download_short_rates=True.
accounts_managed: accounts managed by the TWS session login. Automatically populated.
accounts_family_codes: account family. Automatically populated.
accounts_groups: account groups. Automatically populated.
accounts_allocation_profiles: allocation profiles for accounts. Automatically populated.
accounts_value: account values. Automatically populated.
accounts_overview: overview of account details. Automatically populated.
accounts_summary: account summary. Automatically populated.
accounts_positions: account positions. Automatically populated.
accounts_pnl: account PNL. Automatically populated.
accounts_pnl_single: single PNL. populated by calling request_single_pnl() on a specific contract.
news_providers: currently subscribed news sources. Automatically populated.
news_bulletins: news bulletins. Automatically populated.
news_articles: the content of news articles requested via
request_news_article.news_historical: historical news headlines requested via
request_news_historical.
ticks_price: real-time tick market data of price values requested via
request_market_data.ticks_size: real-time tick market data of size values requested via
request_market_data.ticks_string: real-time tick market data of string values requested via
request_market_data.ticks_efp: real-time tick market data of exchange for physical (EFP) values requested via
request_market_data.ticks_generic: real-time tick market data of generic floating point values requested via
request_market_data.ticks_option_computation: real-time tick market data of option computations requested via
request_market_data.ticks_trade: real-time tick market data of trade prices requested via
request_tick_data_historicalorrequest_tick_data_realtime.ticks_bid_ask: real-time tick market data of bid and ask prices requested via
request_tick_data_historicalorrequest_tick_data_realtime.ticks_mid_point: real-time tick market data of mid-point prices requested via
request_tick_data_historicalorrequest_tick_data_realtime.bars_historical: historical price bars requested via
request_bars_historical. Real-time bars change as new data arrives.bars_realtime: real-time price bars requested via
request_bars_realtime.
orders_submitted: submitted orders FOR THE THE CLIENT ID. A client ID of 0 contains manually entered orders. Automatically populated.
orders_status: order statuses. Automatically populated.
orders_completed: completed orders. Automatically populated.
orders_exec_details: order execution details. Automatically populated.
orders_exec_commission_report: order execution commission report. Automatically populated.
- property client_id¶
Client ID.
- Returns:
Client ID.
- connect()[source]¶
Connect to an IB TWS session. Raises an exception if already connected.
- Return type:
None- Returns:
None
- Raises:
Exception – problem executing action.
- get_registered_contract(contract)[source]¶
Gets a contract that has been registered in the framework. The registered contract is confirmed to exist in the IB system and contains a complete description of the contract.
- Parameters:
contract (Contract) – contract to search for
- Return type:
- Returns:
A contract that has been registered with deephaven-ib.
- Raises:
Exception – problem executing action.
- property host¶
Client host.
- Returns:
Client host.
- is_connected()[source]¶
Is there a connection with TWS?
- Return type:
bool- Returns:
an indication if the client is connected to TWS.
- order_cancel(order_id)[source]¶
Cancels an order.
- Parameters:
order_id (int) – order ID
- Return type:
None- Returns:
None
- Raises:
Exception – problem executing action.
- order_cancel_all()[source]¶
Cancel all open orders.
- Return type:
None- Returns:
None
- Raises:
Exception – problem executing action.
- order_place(contract, order)[source]¶
Places an order.
- Parameters:
contract (RegisteredContract) – contract to place an order on
order (Order) – order to place
- Return type:
- Returns:
A Request.
- Raises:
Exception – problem executing action.
- property port¶
Client port.
- Returns:
Client port.
- property read_only¶
Is the client read only?
- Returns:
a boolean indicating if the client is read only.
- request_account_overview(account, model_code='')[source]¶
Request portfolio overview updates. Results are returned in the
accounts_overviewtable.- Parameters:
account (str) – Account to request an overview for. “All” requests for all accounts.
model_code (str) – Model portfolio code to request an overview for.
- Return type:
- Returns:
A Request.
- Raises:
Exception – problem executing action.
- request_account_pnl(account='All', model_code='')[source]¶
Request PNL updates. Results are returned in the
accounts_pnltable.- Parameters:
account (str) – Account to request PNL for. “All” requests for all accounts.
model_code (str) – Model portfolio code to request PNL for.
- Return type:
- Returns:
A Request.
- Raises:
Exception – problem executing action.
- request_account_positions(account, model_code='')[source]¶
Request portfolio position updates. Results are returned in the
accounts_positionstable.- Parameters:
account (str) – Account to request positions for. “All” requests for all accounts.
model_code (str) – Model portfolio code to request positions for.
- Return type:
- Returns:
A Request.
- Raises:
Exception – problem executing action.
- request_bars_historical(contract, duration, bar_size, bar_type, end=None, market_data_type=MarketDataType.FROZEN, keep_up_to_date=True)[source]¶
Requests historical bars for a contract. Results are returned in the
bars_historicaltable.Registered contracts that are associated with multiple contract details produce multiple requests.
- Parameters:
contract (RegisteredContract) – contract data is requested for
end (Union[None, Instant, int, str, datetime.datetime, numpy.datetime64, pandas.Timestamp]) – Ending timestamp of the requested data. See https://deephaven.io/core/pydoc/code/deephaven.time.html#deephaven.time.to_j_instant for supported inputs.
duration (Duration) – Duration of data being requested by the query.
bar_size (BarSize) – Size of the bars that will be returned.
bar_type (BarDataType) – Type of bars that will be returned.
market_data_type (MarketDataType) – Type of market data to return after the close.
keep_up_to_date (bool) – True to continuously update bars
- Return type:
List[Request]- Returns:
All of the requests created by this action.
- Raises:
Exception – problem executing action.
- request_bars_realtime(contract, bar_type, bar_size=5, market_data_type=MarketDataType.FROZEN)[source]¶
Requests real time bars for a contract. Results are returned in the
bars_realtimetable.Registered contracts that are associated with multiple contract details produce multiple requests.
- Parameters:
contract (RegisteredContract) – contract data is requested for
bar_type (BarDataType) – Type of bars that will be returned.
bar_size (int) – Bar size in seconds.
market_data_type (MarketDataType) – Type of market data to return after the close.
- Return type:
List[Request]- Returns:
All of the requests created by this action.
- Raises:
Exception – problem executing action.
- request_contracts_matching(pattern)[source]¶
Request contracts matching a pattern. Results are returned in the
contracts_matchingtable.- Parameters:
pattern (str) – pattern to search for. Can include part of a ticker or part of the company name.
- Return type:
- Returns:
A Request.
- Raises:
Exception – problem executing action.
- request_market_data(contract, generic_tick_types=[], snapshot=False, regulatory_snapshot=False)[source]¶
Request market data for a contract. Results are returned in the
ticks_price,ticks_size,ticks_string,ticks_efp,ticks_generic, andticks_option_computationtables.Registered contracts that are associated with multiple contract details produce multiple requests.
- Parameters:
contract (RegisteredContract) – contract data is requested for
generic_tick_types (List[GenericTickType]) – generic tick types being requested
snapshot (bool) – True to return a single snapshot of Market data and have the market data subscription cancel. Do not enter any genericTicklist values if you use snapshots.
regulatory_snapshot (bool) – True to get a regulatory snapshot. Requires the US Value Snapshot Bundle for stocks.
- Return type:
List[Request]- Returns:
A Request.
- Raises:
Exception – problem executing action.
- request_news_article(provider_code, article_id)[source]¶
Request the text of a news article. Results are returned in the
news_articlestable.- Parameters:
provider_code (str) – short code indicating news provider, e.g. FLY
article_id (str) – id of the specific article
- Return type:
- Returns:
A Request.
- Raises:
Exception – problem executing action.
- request_news_historical(contract, start, end, provider_codes=None, total_results=100)[source]¶
Request historical news for a contract. Results are returned in the
news_historicaltable.Registered contracts that are associated with multiple contract details produce multiple requests.
- Parameters:
contract (RegisteredContract) – contract data is requested for
provider_codes (List[str]) – a list of provider codes. By default, all subscribed codes are used.
start (Union[None, Instant, int, str, datetime.datetime, numpy.datetime64, pandas.Timestamp]) – marks the (exclusive) start of the date range. See https://deephaven.io/core/pydoc/code/deephaven.time.html#deephaven.time.to_j_instant for supported inputs.
end (Union[None, Instant, int, str, datetime.datetime, numpy.datetime64, pandas.Timestamp]) – marks the (inclusive) end of the date range. See https://deephaven.io/core/pydoc/code/deephaven.time.html#deephaven.time.to_j_instant for supported inputs.
total_results (int) – the maximum number of headlines to fetch (1 - 300)
- Return type:
List[Request]- Returns:
All of the requests created by the action.
- Raises:
Exception – problem executing action.
- request_single_pnl(contract, account, model_code='')[source]¶
Request PNL updates for a single position. Results are returned in the
accounts_pnl_singletable.- Parameters:
contract (RegisteredContract) – contract data is requested for.
account (str) – Account to request PNL for.
model_code (str) – Model portfolio code to request PNL for.
- Return type:
- Returns:
A Request.
- Raises:
Exception – problem executing action.
- request_tick_data_historical(contract, tick_type, number_of_ticks, start=None, end=None, market_data_type=MarketDataType.FROZEN, ignore_size=False)[source]¶
Requests historical tick-by-tick data. Results are returned in the
ticks_trade,ticks_bid_ask, andticks_mid_pointtables.Registered contracts that are associated with multiple contract details produce multiple requests.
- Parameters:
contract (RegisteredContract) – contract data is requested for
start (Union[None, Instant, int, str, datetime.datetime, numpy.datetime64, pandas.Timestamp]) – marks the (exclusive) start of the date range. See https://deephaven.io/core/pydoc/code/deephaven.time.html#deephaven.time.to_j_instant for supported inputs.
end (Union[None, Instant, int, str, datetime.datetime, numpy.datetime64, pandas.Timestamp]) – marks the (inclusive) end of the date range. See https://deephaven.io/core/pydoc/code/deephaven.time.html#deephaven.time.to_j_instant for supported inputs.
tick_type (TickDataType) – Type of market data to return.
number_of_ticks (int) – Number of historical ticks to request.
market_data_type (MarketDataType) – Type of market data to return after the close.
ignore_size (bool) – should size values be ignored.
- Return type:
List[Request]- Returns:
All of the requests created by this action.
- Raises:
Exception – problem executing action.
- request_tick_data_realtime(contract, tick_type, number_of_ticks=0, ignore_size=False)[source]¶
Requests real-time tick-by-tick data. Results are returned in the
ticks_trade,ticks_bid_ask, andticks_mid_pointtables.Registered contracts that are associated with multiple contract details produce multiple requests.
- Parameters:
contract (RegisteredContract) – contract data is requested for
tick_type (TickDataType) – Type of market data to return.
number_of_ticks (int) – Number of historical ticks to request.
ignore_size (bool) – should size values be ignored.
- Return type:
List[Request]- Returns:
All of the requests created by this action.
- Raises:
Exception – problem executing action.
- set_market_data_type(market_data_type)[source]¶
Sets the default type of market data.
- Parameters:
market_data_type (MarketDataType) – market data type
- Return type:
None- Returns:
None
- Raises:
Exception – problem executing action.
- property tables¶
Gets a dictionary of all data tables.
- Returns:
Dictionary of all data tables.
- property tables_raw¶
Gets a dictionary of all raw data tables. Raw tables are just as the data comes from IB.
- Returns:
Dictionary of all raw data tables.
- class MarketDataType(value)[source]¶
Bases:
EnumType of market data to use.
- DELAYED = 3¶
Delayed market data.
- FROZEN = 2¶
Real-time market data during regular trading hours, and frozen prices after the close.
- REAL_TIME = 1¶
Real-time market data.
- class OrderIdStrategy(value)[source]¶
Bases:
EnumStrategy used to obtain order IDs.
- BASIC = (False, True)¶
Request a new order ID from TWS every time one is needed.
- INCREMENT = (False, False)¶
Use the initial order ID and increment the value upon every call. This is fast, but it may fail for multiple, concurrent sessions.
- RETRY = (True, True)¶
Request a new order ID from TWS every time one is needed. Retry if TWS does not respond quickly. TWS seems to have a bug where it does not always respond.
- class RegisteredContract(query_contract, contract_details)[source]¶
Bases:
objectDetails describing a financial instrument that has been registered in the framework. This can be a stock, bond, option, etc.
When some contracts are registered, details on multiple contracts are returned.