2014-02-13 47 views
1

的IB API reqHistoricalData()方法提供了whatToShow參數,它可取的值來表示你尋求貿易業的數據,中點,BID,ASK等..我們如何才能確定(whatToShow)從iBrokers API收到HistoricalData類型

但是,API的historicalData回調(提供爲異步接收所請求的歷史數據)不會返回相關的whatToShow,從而無法確定所查看的內容。是貿易商,BIDS還是我要求的要求?

我明白這一點,即先要求TRADES,等待整個消息回來,然後請求BIDS,然後再次等待並請求ASKS。

有沒有人有更好的解決方案?

回答

1

請正確使用tickerId這是reqHistoricalData()方法中的第一個參數。當您使用回調獲取歷史數據時,您將收到此id作爲帶有historicalData()的第一個參數。

您只需要跟蹤哪個tickerId與哪種數據(出價,詢問或交易)相關聯以識別回調。

例子:

同時要求:

reqHistoricalData(1, ..whatToShow = Bid,...); 
reqHistoricalData(2, ..whatToShow = Ask,...); 

回調處理:

historicalData(int reqId,....) 
    if(reqId == 1) 
    //This is the data built of bids as per request1 

    else if(reqId == 2) 
    //This is the data built of asks as per request2 
+0

謝謝。我會放棄它。我受到(自己造成的)印象,即tickerId對於特定合同的請求應該保持不變。我想這可能並非如此。我會嘗試這個,並回來 – OldSchool

+1

看來這工作沒有(迄今)任何負面影響。謝謝你的幫助 – OldSchool

相關問題