def test_connector_builder_robustness(): pytest.importorskip("ibapi") from algotradepy.connectors.ib_connector import build_and_start_connector conn0 = build_and_start_connector() conn1 = build_and_start_connector() conn2 = build_and_start_connector() assert conn0.client_id != conn1.client_id assert conn0.client_id != conn2.client_id assert conn1.client_id != conn2.client_id conn0.managed_disconnect() conn1.managed_disconnect() conn2.managed_disconnect()
def test_connector_builder_robustness(): pytest.importorskip("ib_insync") from algotradepy.connectors.ib_connector import build_and_start_connector conn0 = build_and_start_connector() conn1 = build_and_start_connector() conn2 = build_and_start_connector() assert conn0.isConnected() assert conn0.isConnected() assert conn1.isConnected() conn0.disconnect() conn1.disconnect() conn2.disconnect()
def test_connection(): pytest.importorskip("ib_insync") from algotradepy.connectors.ib_connector import build_and_start_connector connector = build_and_start_connector() assert connector.isConnected()
def monitor(): conn = build_and_start_connector(client_id=0) broker = IBBroker(ib_connector=conn) broker.subscribe_to_new_orders(func=open_orders_printout) broker.subscribe_to_order_updates(func=order_status_printout) print(f"exiting with {input('Press Enter to exit.')}")
def get_streamer(client_id: int): pytest.importorskip("ib_insync") from algotradepy.connectors.ib_connector import build_and_start_connector from algotradepy.streamers.ib_streamer import IBDataStreamer conn = build_and_start_connector(client_id=client_id) streamer = IBDataStreamer(ib_connector=conn) return streamer
def connector(): pytest.importorskip("ib_insync") from algotradepy.connectors.ib_connector import build_and_start_connector conn = build_and_start_connector() yield conn conn.disconnect()
def __init__( self, simulation: bool = True, ib_connector: Optional[IBConnector] = None, ): if ib_connector is None: if simulation: trading_mode = "paper" else: trading_mode = "live" self._ib_conn = build_and_start_connector( trading_mode=trading_mode ) else: self._ib_conn = ib_connector
def test_get_position_non_master_id_raises(): pytest.importorskip("ibapi") from algotradepy.connectors.ib_connector import ( build_and_start_connector, MASTER_CLIENT_ID, ) from algotradepy.brokers.ib_broker import IBBroker conn = build_and_start_connector(client_id=MASTER_CLIENT_ID + 1) broker = IBBroker(ib_connector=conn) with pytest.raises(AttributeError): broker.get_position(symbol="SPY") conn.managed_disconnect()
def test_ib_insync_events(): pytest.importorskip("ib_insync") from algotradepy.connectors.ib_connector import build_and_start_connector event_received = False def event_callback(): nonlocal event_received event_received = True conn = build_and_start_connector() conn.disconnectedEvent += event_callback conn.disconnect() assert event_received
def test_get_zero_position(): pytest.importorskip("ibapi") from algotradepy.connectors.ib_connector import ( build_and_start_connector, MASTER_CLIENT_ID, ) from algotradepy.brokers.ib_broker import IBBroker conn = build_and_start_connector(client_id=MASTER_CLIENT_ID) broker = IBBroker(ib_connector=conn) spy_position = broker.get_position(symbol="SPY") broker.__del__() assert spy_position == 0
def __init__( self, simulation: bool = True, ib_connector: Optional[IBConnector] = None, ): super().__init__(simulation=simulation) if ib_connector is None: if simulation: trading_mode = "paper" else: trading_mode = "live" self._ib_conn = build_and_start_connector( trading_mode=trading_mode) else: self._ib_conn = ib_connector self._req_id: Optional[int] = None self._positions: Optional[Dict] = None self._positions_lock = Lock()