Provide the ability to subscribe to market data updates in an event loop

This commit is contained in:
moshferatu 2023-12-05 05:47:22 -08:00
parent 2f710a83fa
commit c94919916f
2 changed files with 18 additions and 1 deletions

View File

@ -112,4 +112,7 @@ class Client:
stop_loss_order.auxPrice = stop_loss_price stop_loss_order.auxPrice = stop_loss_price
stop_loss_order.totalQuantity = trade.order.totalQuantity stop_loss_order.totalQuantity = trade.order.totalQuantity
stop_loss_order.transmit = True stop_loss_order.transmit = True
return self.ib.placeOrder(trade.contract, stop_loss_order) return self.ib.placeOrder(trade.contract, stop_loss_order)
def run_event_loop(self):
self.ib.run()

View File

@ -0,0 +1,14 @@
from datetime import datetime
from ib_insync import Option
from ibkr.client import Client
from ibkr.exchange import SMART
client = Client(host = '127.0.0.1', port = 7497)
expiration = datetime.now().strftime('%Y%m%d')
contract = Option('SPX', expiration, 4550.0, 'P', exchange = SMART, currency = 'USD')
contract.tradingClass = 'SPXW'
market_data = client.get_market_data(contract, streaming = True)
market_data.updateEvent += lambda _: print(market_data.last)
client.run_event_loop()