我终于让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
->实时市场数据(例如在交易平台中显示在
符号)
希望我能为您提供帮助,如果您需要一些示例代码,可以给您发送示例代码。