0

我正在尝试通过 Matlab 的 IB API 使用 TWS 请求实时数据。不过,我不想要常规的市场数据,特别是我试图获得隐含波动率。这是我正在使用的指南:http: //www.mathworks.com/help/trading/ibtws.realtime.html

我应该能够通过根据 IB API 放置 f='106' 来获得 IV:https ://www.interactivebrokers.com/en/software/api/api.htm

但每次我得到相同的东西(RTVolume),即出价、要价、最后等。我总是得到市场数据,不管整数 ID 标志被更改为什么。

这是我的代码:

try
    close(ib);
    close(conn);
catch

end

clear all;

ibBuiltInRealtimeData = struct('id',0,'BID_PRICE',0,'BID_SIZE',0,'ASK_PRICE',0,'ASK_SIZE',0);

while true

    ib = ibtws('',7496);
    f = '106';

    ibContract = ib.Handle.createContract;
    ibContract.symbol = 'AAPL';
    ibContract.secType = 'STK';
    ibContract.exchange = 'SMART';
    ibContract.primaryExchange = '';
    ibContract.currency = 'USD';

    tickerid = realtime(ib,ibContract,f);

    d2 = ibBuiltInRealtimeData;
    d2

    pause(1);
end

这是输出:

        id: 5689.00
 BID_PRICE: 102.55
  BID_SIZE: 1.00
 ASK_PRICE: 103.00
  ASK_SIZE: 1.00
LAST_PRICE: 102.79
 LAST_SIZE: 0
    VOLUME: 434689.00

我在任何地方都看不到隐含波动率!除了市场数据,我如何请求其他事物的实时数据?

4

1 回答 1

0

这是一个简单的解释,但不是您想听到的:

您使用的合约是股票而非期权。就像您可以阅读API 手册一样:

注意:并非所有报价类型始终适用于所有工具。如果您认为您应该查看相关报价类型是否在 TWS 本身内可用时没有收到特定报价类型。请记住,TWS API 只是一个交付渠道:如果信息首先在 TWS 本身中不可用,则 TWS 将无法通过 API 套接字发送它。

报价类型“期权隐含波动率”(报价编号 24)用于期权,因此不适用于股票。

只需使用另一个合同,您就会得到预期的结果。

我希望这有帮助。

于 2018-03-24T13:04:16.343 回答