我需要在TWS中获得执行佣金。我通过python的ib_insync库连接到它们。
我做abt:
ib = IB()
ib.connect('127.0.0.1', 7497, 1)
ib.placeOrder(contract, order)
for e in ib.executions():
print(e)
问题是,执行死刑的委员会在哪里?我怎样才能把它们都抓起来?
好的,我找到了一个解决方案:
from ib_insync import IB
class MyTrader:
def __init__(self):
self.ib = IB()
self.ib.setCallback('commissionReport', self.commissionCallback)
def commissionCallback(self, *args):
print(args[-1]) # CommissionReport object will be printed when order is filed
def trulala(self):
self.ib.connect('127.0.0.1', 7498, 1)
contract = Contract(...)
order = Order(...)
self.ib.placeOrder(contract, order)
最后还有一个更简单的方法(如果你需要访问对象,它很有用(,它是:
self.ib.fills()
将返回一个Fill对象列表,其中包含所有必要对象的元组,如Contract、Order、Execution和CommissionReport。
您应该在https://groups.io/g/insync我怀疑这里是否有人使用那个图书馆。
佣金不会在执行中返回,而是在佣金报告中返回。http://interactivebrokers.github.io/tws-api/classIBApi_1_1CommissionReport.html
请注意,id是与佣金报告匹配的执行中的执行id。