0

我正在使用 Interactive Brokers IBAPI 连接到正在运行的 TWS 实例。

我想获取外汇对 EUR/USD 的逐笔报价数据。(特定的一对真的无关紧要。)

我正在使用以下 API 函数来请求逐个滴答数据:

_ibClient.ClientSocket.reqTickByTickData(tickerId, contract, "Last", 0, false);

此调用适用于诸如TSLA 之类的股票合约。

在 ForEx 合约的情况下返回的错误消息是:

错误。Id: 2, Code: 10189, Msg: 无法请求逐笔报价数据:没有 EUR/CASH@FXSUBPIP 的历史市场数据 最后 0

我不要求历史数据。

这是合约对象:

contract = new Contract
{
    Symbol = "EUR",
    SecType = "CASH",
    Exchange = "IDEALPRO",
    PrimaryExch = "IDEALPRO",
    Currency = "USD",
};

以下是日志文件的内容:

Next Valid Id: 1
Account list: *********
Market data farm connection is OK:cashfarm
Market data farm connection is OK:usfarm
HMDS data farm connection is OK:euhmds
HMDS data farm connection is OK:cashhmds
HMDS data farm connection is OK:fundfarm
HMDS data farm connection is OK:ushmds
Sec-def data farm connection is OK:secdefil
Error. Id: 2, Code: 10189, Msg: Failed to request tick-by-tick data:No historical market data for EUR/CASH@FXSUBPIP Last 0

谁能帮我理解为什么我无法获得外汇合约的逐笔报价数据?

4

1 回答 1

1

Last 不适用于外汇,只有中点。它不在交易所交易。

_ibClient.ClientSocket.reqTickByTickData(tickerId, contract, "MidPoint", 0, false);

http://interactivebrokers.github.io/tws-api/tick_data.html

nb 会进来的public void tickByTickMidPoint(int reqId, long time, double midPoint)

于 2021-02-12T22:12:58.827 回答