在使用QuickFixJ与Bloomberg交互时,我们可以使用如下代码来获取Bloomberg的价格:
public class BloombergMessageCracker extends MessageCracker {
@Override
public void onMessage(MarketDataIncrementalRefresh message, SessionID sessionID) throws FieldNotFound {
// 解析价格信息
}
}
SessionID sessionID = new SessionID("FIX.4.4:BLOOMBERG->MY_APP");
BloombergMessageCracker messageCracker = new BloombergMessageCracker();
SessionSettings settings = new SessionSettings("bloomberg.cfg");
SessionFactory sessionFactory = new DefaultSessionFactory();
Application myApp = new MyApplication();
MessageStoreFactory factory = new FileStoreFactory(settings);
LogFactory logFactory = new FileLogFactory(settings);
MessageFactory messageFactory = new DefaultMessageFactory();
Session mySession = sessionFactory.create(sessionID, settings, factory, logFactory, messageFactory);
mySession.logon();
mySession.subscribe(messageCracker);
如果我们不想用自己的类来解析消息,我们也可以直接在应用程序的onMessage()方法中解析来自Bloomberg的MarketDataIncrementalRefresh消息。这就需要我们在我们的应用程序中重写QuickFixJ中的Application适配器的onMessage()方法,像这样:
public class MyApplication extends MessageCracker implements Application {
@Override
public void onLogon(SessionID sessionId) {
// ...
}
@Override
public void onLogout(SessionID sessionId)