问题描述
这是我的代码:
class TestApp(EWrapper,EClient):
def __init__(self):
EClient.__init__(self,self)
self.nextOrderID = 0 # if this is init code put it in init
def Error(self,reqID,errorCode,errorString):
print('Error :','',errorString)
def contractDetails(self,contractDetails):
print('Contract Details :',contractDetails)
def nextValidId(self,orderId):
self.nextOrderID = orderId
self.start()
def orderStatus(self,orderId,status,filled,remaining,avgFillPrice,permId,parentId,lastFillPrice,clientId,whyHeld,mktCapPrice):
print('Orderstatus Id. ','Status: ','Filled: ','Remaining: ','Last Fill Price: ',lastFillPrice)
if remaining == 0.0:
self.stop()
def execDetails(self,reqId,contract,execution):
print('Exec Details. ',contract.symbol,contract.secType,contract.currency,execution.execId,execution.orderId,execution.shares,execution.lastLiquidity)
def accountSummary(self,account,tag,value,currency):
self.reqAccountSummary(reqId,value )
print('Account Summary. ',currency)
def start(self):
contract = Contract()
contract.symbol = 'NFLX'
contract.secType = 'STK'
contract.exchange = 'SMART'
contract.currency = 'USD'
order = Order()
order.action = 'BUY'
order.totalQuantity = 1
order.orderType = 'MKT'
#order.lmtPrice = 523.5
self.placeOrder(self.nextOrderID,order)
self.nextOrderID += 1 # always increment after use
def stop(self):
if self.isConnected():
print("disconnecting")
self.disconnect()
def main():
app = TestApp()
app.connect('127.0.0.1',7497,0)
app.run()
main()
唯一打印的是 orderStatus 函数。我从IBKR github页面复制了账户摘要的确切代码。我究竟做错了什么?我什至尝试更改 orderStatus 的位置,但没有任何区别。
解决方法
在你的启动方法中添加这一行
self.reqAccountSummary(9002,"All","$LEDGER")