2016-11-29 31 views
0

我使用reqHistoricalData()方法,但它在调用后不会返回任何东西。我需要额外的方法来处理数据吗?JAVA IBrokers api

这是我的代码

public void reqHistData(){ 
    // Create a new contract 
    Contract contract = new com.ib.client.Contract(); 
    contract.symbol("USD"); 
    contract.secType("CASH"); 
    contract.currency("EUR"); 
    contract.exchange("IDEALPRO"); 

    api.client().reqHistoricalData(1, contract, "20140920 00:00:00", "1 D", "1 day", "TRADES", 0, 2, null); 
} 

回答

1

的调用是异步的,这意味着你必须等待它返回数据。您可以通过实现EWrapper接口并使用回调中的返回数据执行此操作。在创建套接字时,您传递回调的包装器。

这个例子只是打印结果。

@Override 
public void historicalData(int reqId, String date, double open, double high, double low, double close, int volume, int count, double WAP, boolean hasGaps) { 
    System.out.println(EWrapperMsgGenerator.historicalData(reqId, date, open, high, low, close, volume, count, WAP, hasGaps)); 
} 
+0

有没有什么地方例子或这种方法执行的教程,因为它还挺新的东西,我和API文档不是那么清楚? – liolikas66

+1

看起来你正在使用beta API,9.72。没有文档,但它附带一个示例程序。该文档适用于版本9.71 – brian