TWS API (Interactive Brokers) - как поймать событие и разместить заказ - PullRequest
1 голос
/ 26 сентября 2019

Возникла такая проблема: я изучаю TWS API (Interactive Brokers), понимаю методы, классы и т. Д. Я зарегистрировал логический блок управления для размещения заказов и на данном этапе не могу понять - как размещать заказыв терминале при разных условиях цена получена от терминала?Вероятно, эта проблема решается с помощью многопоточности, но, увы, я не могу полностью понять, как это реализовать.Я прошу вас помочь.Ниже приведен код, принимающий данные с терминала, в блоке main () - код для размещения заказа.Я не могу понять, как прикрепить к размещению заказа - условия запуска.Заранее благодарим за любую помощь и информацию.

    from ibapi.client import EClient
    from ibapi.wrapper import EWrapper
    from ibapi.contract import Contract
    from ibapi.order import *

class TestApp(EWrapper,EClient):
    def __init__(self):
        EClient.__init__(self,self)
    def error(self,reqId,errorCode,errorString):
        print("Error:  ",reqId,"  ",errorCode,"  ",errorString)
    def updateMktDepth(self, reqId, position: int, operation: int,side: int, price: float, size: int):
        print(price)
def main():
    app = TestApp()
    app.connect("127.0.0.1", 7497, 0)
    es = Contract()
    es.localSymbol = "ESZ9"
    es.symbol = "ES"
    es.secType = "FUT"
    es.exchange = "GLOBEX"
    es.currency = "USD"
    app.reqMarketDataType(4)
    app.reqMktDepth(1, es, 2, False, [])
    app.reqPositions()
    app.reqAllOpenOrders()
# QUESTION -  how  to place order, using any conditions with price? (for example: if price > 3000)
    order = Order()
    order.account = "DU1656058"
    order.action = "SELL"
    order.totalQuantity = 1
    order.orderType = "LMT"
    order.lmtPrice = 3055
    app.placeOrder(11000, es, order)
    app.run()
    app.disconnect()
if __name__ == "__main__":
    main()

1 Ответ

1 голос
/ 26 сентября 2019

TWS API позволяет устанавливать критерии подачи заявок, такие как ценовые условия и объемные условия.Официальная документация здесь .Например, если Order имеет TimeCondition, он будет отправлен только до или после определенного времени.

Книга Алгоритмическая торговля с интерактивными брокерами предоставляет код, демонстрирующий, какусловия заказа могут быть установлены.

...