0

我终于让 reqMktData() 工作了!不幸的是,它只给了我股票 SHLD 5.54 美元的价格。那是星期四的收盘。现在是星期六......我认为它应该给我星期五的收盘价......甚至是最近的盘后收盘价。

所以好像放假了?我想知道这是不是因为周末?

我不确定。这是我的 tickPrice() 函数的代码片段(基本上只是打印出来):

void PosixTestClient::tickPrice( TickerId tickerId, TickType field, double price, int canAutoExecute) {
    printf( "Tick Price. Ticker Id: %ld, Field: %d, Price: %g, CanAutoEx: %ld \n",
            tickerId, (int)field, price, canAutoExecute);
}

这是我的 reqMktData() 函数代码:

void PosixTestClient::getHData(){
    Contract contract;
    contract.symbol = "SHLD";
    contract.secType = "STK";
    contract.exchange = "SMART";
    contract.currency = "USD";

    TagValueListSPtr mktDataOptions( new TagValueList);


    m_pClient->reqMktData(1,contract,"",false, mktDataOptions);


}
4

1 回答 1

1

随着reqMktData您在论文和真实账户中收到您需要的所有数据。检查您的设置是否正确,以便在 TWS 中为您想要连接到 API 的账户获取实时数据。

然后查看处理程序收到的消息。有很多不同的领域。我也没有在文档中找到任何有用的东西。但我流式传输所有消息数据并测试了这些字段:

  • field = 9-> 最后收盘价(大部分时间来自昨天)
  • field = 4-> 实时市场数据(如 TWS 中显示的符号下方)

我希望我能帮助你,如果你需要的话,我可以给你发送示例代码。

于 2018-02-27T20:37:02.330 回答