我终于让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);


}

最佳答案

使用reqMktData,您可以在文件和真实帐户中接收所需的所有数据。检查您的设置是否正确,以便在TWS中获取要连接到API的帐户的实时数据。

然后查看处理程序收到的消息。有很多不同的领域。我在文档中也没有找到任何帮助。但是我流了所有消息数据并测试了字段:


field = 9->最后收盘价(大部分时间是从昨天开始)
field = 4->实时市场数据(例如在交易平台中显示在
符号)


希望我能为您提供帮助,如果您需要一些示例代码,可以给您发送示例代码。

09-07 06:14