正如标题所示,我正试图从twsapi获取给定安全性的价格,并将其作为我的程序中其他地方的变量使用。下面的代码(直接来自InteractiveBroker的一个教程)将运行并在屏幕上打印价格,但我无法以创建包含价格的变量/对象的方式对其进行修改。该代码也只工作大约每十次尝试一次,如果有什么我做错了,请让我知道
from ibapi.client import EClient
from ibapi.wrapper import EWrapper
from ibapi.contract import Contract
from ibapi.ticktype import TickTypeEnum
class TestApp(EWrapper, EClient):
def __init__(self):
EClient.__init__(self, self)
def error(self, reqId, errorCode, errorString):
print('Error: ', reqId, ' ', errorCode, ' ', errorString)
def tickPrice(self, reqId, tickType, price, attrib):
print('Tick Price. Ticker Id:', reqId, 'tickType:', TickTypeEnum.to_str(tickType),
'Price:', price, end=' ')
def main():
app = TestApp()
app.connect('127.0.0.1', 7496, 0)
contract = Contract()
contract.symbol = 'AAPL'
contract.secType = 'STK'
contract.currency = 'USD'
contract.exchange = 'SMART'
app.reqMarketDataType(1)
app.reqMktData(1, contract, '', False, False, [])
app.run()
if __name__ == '__main__':
main()
该程序没有考虑api的异步性质
我会这样写
相关问题 更多 >
编程相关推荐