在IBrokers中使用eWrapper和twsCALLBACK进行消息管理

在IBrokers中使用eWrapper和twsCALLBACK进行消息管理,r,algorithmic-trading,interactive-brokers,ibrokers,R,Algorithmic Trading,Interactive Brokers,Ibrokers,我试图理解IBrokers包的交互式代理API,但我发现很难理解EWrapper方法的使用。虽然我确实理解reqMktData用于获取实时数据,但我不确定如何将其与eWrapper一起使用。这是我第一次处理异步事件驱动编程。我已经看了官方文件,但我不知道如何使它起作用 到目前为止,我仍然不知道如何获取两种股票(“AAPL”和“GOOG”)的实时数据,并将其分别放在两个不同的csv(“AAPL.csv”和“GOOG.csv”)文件中。我相信这是一件非常基本的事情,但我无法做到这一点。有人能给我指一

我试图理解IBrokers包的交互式代理API,但我发现很难理解EWrapper方法的使用。虽然我确实理解reqMktData用于获取实时数据,但我不确定如何将其与eWrapper一起使用。这是我第一次处理异步事件驱动编程。我已经看了官方文件,但我不知道如何使它起作用

到目前为止,我仍然不知道如何获取两种股票(“AAPL”和“GOOG”)的实时数据,并将其分别放在两个不同的csv(“AAPL.csv”和“GOOG.csv”)文件中。我相信这是一件非常基本的事情,但我无法做到这一点。有人能给我指一些这样做的示例代码/教程,并解释eWraper、twsCallBack的工作原理吗


还可以在内存中存储多个库存的传入数据,并使用它根据一组规则发送订单吗?

在Java中,在调用
reqMktData
后,每个价格都会调用一个回调方法(至少这是历史数据的工作方式,我没有时间检查,但很可能是同一个概念)。因此,您应该在该回调中编写代码,以存储接收到的数据。对于历史数据,在收到我请求的最后一个价格后,会有一个不同的回调(
historicalDataEnd
)被调用以表示不需要更多数据。如果是最后一句话,我相信这是可能的和正常的,因为当我请求历史数据时,我必须指定符号(股票)。