create_new_connections: Create New Connections to Interactive Brokers

View source: R/create_new_connections.R

create_new_connectionsR Documentation

Create New Connections to Interactive Brokers

Description

Creates a specified number of persistent async socket connections to Interactive Brokers. Returns them in a list, initialized and ready to send and receive data.

Usage

create_new_connections(
  number_of_new_socks = 1,
  include_master = FALSE,
  include_tws = FALSE,
  host = active_itr_option("host"),
  port = active_itr_option("port")
)

Arguments

number_of_new_socks

Integer, default = 1. Total number of new connections to open, including Master and TWS (if requested). Interactive Brokers allows a maximum of 32 connections open at a time, per username.

include_master

Boolean, default = FALSE. If TRUE, then a connection using the master_client_idMaster Client ID will be opened and assigned the name "master".

include_tws

Boolean, default = FALSE. If TRUE, then a connection using client_id_0Client ID 0 will be included in the result and assigned the name "tws".

host

Character vector of length 1 giving the hostname for the session of IB Gateway or TWS to which the connection(s) should be made. Usually is "localhost" because most users connect to an instance of TWS/IBG that is running on the same computer as InteractiveTradeR.

port

Character vector length 1 or numeric giving the port number for the session of IB Gateway or TWS to which the connection(s) should be made.

Details

Client IDs In InteractiveTradeR, Client IDs are not assigned by the user; instead, they are tracked internally. The user may assign subscriptions and requests to the Master Client, the TWS Client, (Client ID = 0) or a generic async socket.

Value

NULL. This function is called for its side effects: opening sockets and storing pointers that refer to them within InteractiveTradeR.

See Also

disconnect

Other utilities: active_connection_parameters(), clean_slate(), disconnect(), read_sock_drawer(), socks(), start_api(), sync_timeout()

Examples

# Creating and Disconnecting IB Sockets
# The following example walks you through creating and disconnecting the three
# kinds of async socks: Master, TWS, and general. After each step, socks() is 
# called to view the current connected sockets so that you can observe what's
# been created / disconnected. 

# As you go through this example yourself, remember that it's helpful to use the
# "connections" window in the Interactive Brokers apps. In IB Gateway, you can
# easily see connections from the default window; in TWS, it can be accessed by
# clicking on the "DATA" text in the upper right-hand corner of the user
# interface window of the app.

# Disconnect all sockets that might exist so that we start with a clean slate.
disconnect()

# Create five (5) new socket connections. Include a Master and a TWS Socket.
create_new_connections(5, include_master = TRUE, include_tws = TRUE)

# Print the socket connections you created
socks()

# Remove two general-purpose (i.e., not TWS or Master) sockets:
disconnect(2)

# See that two general-purpose connections are now gone
socks()

# Create two more, view with socks()
create_new_connections(2)
socks()

# Disconnect only the TWS and the Master, view with socks()
disconnect(
  number_to_disconnect = 2,
  disconnect_master    = TRUE, 
  disconnect_tws       = TRUE
)
socks()

# Re-connect TWS and Master, view with socks()
create_new_connections(
  number_of_new_socks = 2, 
  include_master      = TRUE, 
  include_tws         = TRUE
)
socks()

# Disconnect ALL socks, view with socks()
disconnect()
socks()

JakeVestal/InteractiveTradeR documentation built on June 5, 2024, 2:21 p.m.