Include
require 'ib-api' c = IB::Connection.new host: 'localhost:4002'in your scripts.
IB::Connection
IB::Connection.new instantiates a new connection to the TWS-Server.
Without active plugins the Connection-object is just able to connect to the TWS
and to disconnect the socket afterwards.
ib = IB::Connection.new
ib.try_connect!
ib.ready? => true
ib.disconnect!
ib.disconnected? => true
ib.ready? => false
The Connection-instance provides several states that specify its status and behavior.
Plugin ConnectionTools
In a WAN-World many things can go terribly wrong.
Even a super stable cable connection can suddenly vanish. Then a reconnection may be necessary.
ib-api implements the basics to connect to the TWS-Server.
This is performed through try_connection, simply by opening a port
self.socket = IBSocket.open(@host, @port)
IBSocket is in fact a specialized TCPSocket. It inherits its complete error-handling repertoire.
If the connection cannot be established, Errno::ECONNREFUSED is fired. Its up to the user
to handle this error.
require 'ib-api'
ib = IB::Connection.new
ib.activate_plugin :connection_tools
ib.try_connection!
ib.ready? => true
The plugin covers Errno::ECONNREFUSED, Errno::EHOSTUNREACH and the unspecified SocketError. It’s designed to manage uncertain and often interrupted connections via DSL, WLAN or even GSM.
If the Host is not reached, it tries to reconnect for at least one hour.
IB::Connection.current.check_connection: Method to ensure a valid connection to the Interactive Brokers Data Centers.
Its safe to call IB::Gateway#CheckConnection prior to every critical message, as order-placement or contract-verification. It delays the process by approx. 7 ms.