Я наконец получил reqMktData () для работы! К сожалению, он просто дал мне цену $ 5,54 за акцию SHLD. Это конец четверга. и сейчас суббота … я думаю, она должна дать мне цену закрытия пятницы … и даже самую последнюю цену закрытия после закрытия.
Так кажется, что это выходной? Интересно, это из-за выходных?
Я не уверен. Вот мой фрагмент кода для функции 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
-> в реальном времени рынок данные (например, отображаются в TWS подЯ надеюсь, что смогу помочь вам и смогу прислать вам пример кода, если он вам понадобится.
Других решений пока нет …