我看到文档上说支持如下7种data feed,这些和IB有关么?现在我是默认使用了RQData(提示“找不到数据服务驱动vnpy_,使用默认的RQData数据服务”),但是如何直接从IB获取数据呢?应该用哪个feed?谢谢
RQData
Udata
TuShare
TQSDK
Wind
iFinD
Tinysoft
我看到文档上说支持如下7种data feed,这些和IB有关么?现在我是默认使用了RQData(提示“找不到数据服务驱动vnpy_,使用默认的RQData数据服务”),但是如何直接从IB获取数据呢?应该用哪个feed?谢谢
RQData
Udata
TuShare
TQSDK
Wind
iFinD
Tinysoft
使用IB的话不需要配置datafeed,只要购买了对应的数据权限,下载时就会直接从IB接口那边获取历史数据
我已经购买了数据,也连接了(如图),但是还是下载不了历史数据。我看代码种好像没有获取到合约,如下,代码应该是走到else里面去了。那么为啥我scribe了 ES这个合约,contract 却没有呢? 是什么动作才能i将合约添加到合约列表呢?
def download_bar_data():
vt_symbol: str = f"{symbol}.{exchange.value}"
print("engine: query_bar_history:",vt_symbol)
contract: Optional[ContractData] = self.main_engine.get_contract(vt_symbol)
print("ContractData:", self.main_engine.get_contract(vt_symbol))
if contract and contract.history_data:
data: List[BarData] = self.main_engine.query_history(
req, contract.gateway_name
)
# Otherwise use datafeed to query data
else:
print("engine: query_bar_history")
对于IB的合约,要先订阅一次行情(此时会自动查询该合约的信息),然后再去下载历史数据
从我上面帖子的第一站图,是否可以证明已经订阅成功了?(行情已经显示出来)
两个图里代码不同,一个是202306,下面一个是20230619
这个我是故意的,因为我记得下载数据的合约要加上具体日期。
不过两种格式我都试过,都不行的
可以自己去vnpy_datamanager的download_bar_data函数下打印看看是没找到合约信息就没去接口请求历史数据还是接口没返回历史数据。
ib很多历史数据都是要收费的
搞定了。
原来是合约代码的问题;订阅的时候只需要指定几月份的合约,无需指定日期。获取数据的时候的合约需要指定日期。我在tws里面看到是截止日期是19日,不知为何实际上是16日。改了就好了