使用Matlab更改IB API中的tick类型

时间:2016-09-10 00:29:33

标签: matlab interactive-brokers

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

我应该能够通过调整f =' 106'来获得IV。根据IB API: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

我认为任何地方都没有暗示波动!除市场数据外,我如何申请其他事项的实时数据?

1 个答案:

答案 0 :(得分:0)

这是一个简单的解释,但不是你想听的那个:

您使用的合约是股票而非期权。就像你可以在API Manual中看到的那样:

  

注意:并非所有乐器的刻度类型都可用。如果您认为您应该查看TWS本身是否有相关的刻度类型,则您没有收到特定的刻度类型。请记住,TWS API只是一个交付渠道:如果TWS本身首先没有这些信息,TWS将无法通过API套接字发送它。

刻度类型" 期权隐含波动率" (Tick Id 24)用于选项,因此它不适用于股票。

只需使用其他合同即可获得预期结果。

我希望这会有所帮助。