2017-02-12 61 views
0

我終於得到了reqMktData()的工作!不幸的是,它給了我股票SHLD的價格5.54美元。那是星期四結束。現在是星期六......我認爲它應該給我星期五的收盤價......甚至是最近幾個小時的收盤價。交互式經紀人API reqMktData()是24小時後

因此,它似乎是休息一天?我想知道這是因爲週末嗎?

我不確定。這裏是我的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); 


} 
+0

如果您使用演示帳戶,它不會發送有效數據。如果它是一個真實賬戶,我不知道。 – brian

+0

即使我在演示acct中支付真實的市場數據? – rikkitikkitumbo

+0

您無法在模擬賬戶中獲得真實數據,請注意,登錄名不會使用您的姓名或密碼。如果你有一個真實的賬戶數據然後使用它。您可以設置一個紙質交易賬戶並共享數據訂閱。 – brian

回答

0

隨着reqMktData您收到的所有您需要在論文和真實賬戶中使用數據。檢查您的設置是否正確,並在TWS中爲要連接到API的帳戶獲取實時數據。

然後看看處理程序收到的消息。有很多不同的字段。我也沒有在文檔中找到任何有用的東西。但是,我流的所有消息數據和測試領域:

  • field = 9 - >最後接近價格(多數從昨天的時間)
  • field = 4 - >實時市場數據(如顯示在TWS 符號)

我希望我可以幫助你,如果你需要一些我可以給你發送示例代碼。