有人可以通过使用IB API Python套接字帮助我弄清楚如何做基本请求吗?(我使用最新的IB API,它似乎支持Python,所以不应该使用人们过去使用的Ibpy)
像这样的代码可以简单地工作并使其连接到TWS.问题是:我不知道如何"看到"从IB发回的消息.
from ibapi import wrapper
from ibapi.client import EClient
from ibapi.contract import *
w = wrapper.EWrapper()
myTWS = EClient(w)
myTWS.connect(host='localhost', port=7496, clientId=100)
print("serverVersion:%s connectionTime:%s" % (myTWS.serverVersion(),
myTWS.twsConnectionTime()))
myTWS.startApi()
c = Contract()
c.m_symbol = "AAPL"
c.m_secType = "STK"
c.m_exchange = "ISLAND"
c.m_currency = "USD"
myTWS.reqRealTimeBars(999, c, 5, "MIDPOINT", True, [])
Run Code Online (Sandbox Code Playgroud)
我知道它之前就像是IBPy之类的Register().我只是不知道如何在当前的IB原始python API中做到这一点.给我一个简单的例子可以帮助别人吗?提前致谢.
我想使用 IBAPI 来获取历史股票数据。我的代码不起作用并且不返回任何内容。有人可以帮我编辑代码吗?谢谢
from ibapi import client
from ibapi import wrapper
import datetime
from ibapi.contract import Contract
from ibapi.common import BarData
# ! [socket_init]
class App(wrapper.EWrapper,client.EClient):
def __init__(self):
wrapper.EWrapper.__init__(self)
client.EClient.__init__(self, wrapper=self)
#Build a sample contract
contract = Contract();
contract.symbol = "9005.T";
contract.secType = "STK";
contract.currency = "JPY";
contract.exchange = "SMART";
app = App()
app.connect(host='localhost',port=7497, clientId=3)
print(app.isConnected())
queryTime = (datetime.datetime.today() - datetime.timedelta(days=180)).strftime("%Y%m%d %H:%M:%S")
print(app.reqHistoricalData(4102, contract, queryTime,"1 M", "1 day", "MIDPOINT", 1, 1, False, []))
queryTime = (datetime.datetime.today() - datetime.timedelta(days=180)).strftime("%Y%m%d %H:%M:%S")
print(app.historicalData(4102,BarData)) …Run Code Online (Sandbox Code Playgroud)