我需要在交易平台中获得执行佣金。 我通过python的ib_insync库连接到它们。
我这样做:
ib = IB()
ib.connect('127.0.0.1', 7497, 1)
ib.placeOrder(contract, order)
for e in ib.executions():
print(e)
问题是-此处决的佣金在哪里飞?我怎样才能抓住他们?
答案 0 :(得分:1)
好,我找到了解决方法:
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。
答案 1 :(得分:-1)
您应该在https://groups.io/g/insync询问详细信息,我怀疑这里有人使用该库。
执行中不返回佣金,而是在CommissionReport中返回佣金。 http://interactivebrokers.github.io/tws-api/classIBApi_1_1CommissionReport.html
请注意,该ID是与ID匹配的执行中的ID。