FIX Antenna Java是一种高性能的Java FIX引擎,用于支持金融交易中的FIX协议。以下是一些FIX Antenna Java使用事例:
- 连接到FIX服务器:
import com.epam.fixengine.FixEngine;
import com.epam.fixengine.FixEngineFactory;
public class FixClient {
public static void main(String[] args) {
FixEngine fixEngine = FixEngineFactory.create();
fixEngine.setSenderCompID("CLIENT");
fixEngine.setTargetCompID("SERVER");
fixEngine.setSocketConnector("localhost", 9876);
fixEngine.connect();
}
}
- 发送FIX消息:
import com.epam.fixengine.FixEngine;
import com.epam.fixengine.FixEngineFactory;
import com.epam.fixengine.messages.FixMessage;
import com.epam.fixengine.messages.MessageBuilder;
public class FixClient {
public static void main(String[] args) {
FixEngine fixEngine = FixEngineFactory.create();
fixEngine.setSenderCompID("CLIENT");
fixEngine.setTargetCompID("SERVER");
fixEngine.setSocketConnector("localhost", 9876);
fixEngine.connect();
MessageBuilder messageBuilder = fixEngine.getMessageBuilder();
FixMessage fixMessage = messageBuilder.createMessage("35=0");
fixEngine.sendMessage(fixMessage);
}
}
- 接收FIX消息:
import com.epam.fixengine.FixEngine;
import com.epam.fixengine.FixEngineFactory;
import com.epam.fixengine.messages.FixMessage;
import com.epam.fixengine.messages.MessageListener;
public class FixClient {
public static void main(String[] args) {
FixEngine fixEngine = FixEngineFactory.create();
fixEngine.setSenderCompID("CLIENT");
fixEngine.setTargetCompID("SERVER");
fixEngine.setSocketConnector("localhost", 9876);
fixEngine.connect();
fixEngine.addMessageListener(new MessageListener() {
@Override
public void onMessage(FixMessage fixMessage) {
System.out.println("Received message: " + fixMessage.toString());
}
});
}
}
接下来,您需要在代码中实现业务逻辑来处理接收到的FIX消息。以下是一个简单的例子,它从FIX会话中接收消息并将其打印到控制台上:
import com.b2bits.FixFactory;
import com.b2bits.FixMessage;
import com.b2bits.FixSession;
import com.b2bits.engine.EngineParameters;
import com.b2bits.engine.FixEngine;
import com.b2bits.engine.SessionParameters;
public class MyFixApp {
public static void main(String[] args) {
// 创建FIX Antenna实例
FixEngine fixEngine = FixFactory.createEngine();
// 配置FIX引擎参数
EngineParameters parameters = new EngineParameters();
parameters.setConfigPath("config.xml");
parameters.setStoragePath("storage");
parameters.setLicenseKey("license.key");
fixEngine.setParameters(parameters);
// 启动FIX引擎
fixEngine.start();
// 创建FIX会话
FixSession session = fixEngine.createSession();
// 配置FIX会话参数
SessionParameters sessionParameters = new SessionParameters();
sessionParameters.setSenderCompID("MYCOMPID");
sessionParameters.setTargetCompID("YOURCOMPID");
sessionParameters.setHeartbeatInterval(30);
session.setParameters(sessionParameters);
// 连接到目标主机
session.connect("localhost", 1234);
// 接收FIX消息
while (true) {
FixMessage message = session.receive();
if (message != null) {
System.out.println("Received message: " + message.toString());
}
}
// 关闭FIX会话和引擎
session.close();
fixEngine.stop();
}
}
在这个例子中,我们添加了一个无限循环来持续接收FIX消息,并将其打印到控制台上。在实际应用中,您需要根据业务需求来处理接收到的FIX消息。
- 解析FIX消息:
import com.epam.fixengine.FixEngine;
import com.epam.fixengine.FixEngineFactory;
import com.epam.fixengine.messages.FixMessage;
import com.epam.fixengine.messages.MessageBuilder;
import com.epam.fixengine.messages.MessageParser;
public class FixClient {
public static void main(String[] args) {
FixEngine fixEngine = FixEngineFactory.create();
fixEngine.setSenderCompID("CLIENT");
fixEngine.setTargetCompID("SERVER");
fixEngine.setSocketConnector("localhost", 9876);
fixEngine.connect();
MessageBuilder messageBuilder = fixEngine.getMessageBuilder();
FixMessage fixMessage = messageBuilder.createMessage("35=0");
fixEngine.sendMessage(fixMessage);
MessageParser messageParser = fixEngine.getMessageParser();
FixMessage parsedMessage = messageParser.parseMessage(fixMessage.toString());
System.out.println("Parsed message: " + parsedMessage.toString());
}
}
要在Maven项目中接入FIX Antenna Java,需要在pom.xml文件中添加以下依赖:
<dependency>
<groupId>com.b2bits</groupId>
<artifactId>fix-antenna</artifactId>
<version>5.5.1</version>
</dependency>
然后,您可以在代码中导入必要的类来使用FIX Antenna Java。以下是一个简单的例子:
import com.b2bits.FixFactory;
import com.b2bits.FixMessage;
import com.b2bits.FixSession;
import com.b2bits.engine.EngineParameters;
import com.b2bits.engine.FixEngine;
import com.b2bits.engine.SessionParameters;
public class MyFixApp {
public static void main(String[] args) {
// 创建FIX Antenna实例
FixEngine fixEngine = FixFactory.createEngine();
// 配置FIX引擎参数
EngineParameters parameters = new EngineParameters();
parameters.setConfigPath("config.xml");
parameters.setStoragePath("storage");
parameters.setLicenseKey("license.key");
fixEngine.setParameters(parameters);
// 启动FIX引擎
fixEngine.start();
// 创建FIX会话
FixSession session = fixEngine.createSession();
// 配置FIX会话参数
SessionParameters sessionParameters = new SessionParameters();
sessionParameters.setSenderCompID("MYCOMPID");
sessionParameters.setTargetCompID("YOURCOMPID");
sessionParameters.setHeartbeatInterval(30);
session.setParameters(sessionParameters);
// 连接到目标主机
session.connect("localhost", 1234);
// 发送FIX消息
FixMessage message = new FixMessage();
message.setField(35, "D");
message.setField(55, "AAPL");
message.setField(38, 100);
session.send(message);
// 关闭FIX会话和引擎
session.close();
fixEngine.stop();
}
}
在这个例子中,我们创建了一个FIX引擎实例,配置了引擎参数和会话参数,并使用FIX会话连接到目标主机。然后,我们发送了一个简单的FIX消息,并关闭了会话和引擎。
FIX Antenna Java™ format
`sessionIDs=initiatorS, acceptorS`
` `
`#Default session parameters`
`sessions.``default``.storageDirectory=target/data/app`
`sessions.``default``.heartbeatInterval=``30`
`sessions.``default``.fixVersion=FIX.``4.4`
`## Session initiatorS`
`sessions.initiatorS.sessionType=initiator`
`sessions.initiatorS.host=localhost`
`sessions.initiatorS.port=``9876`
`sessions.initiatorS.senderCompID=BANZAI`
`sessions.initiatorS.targetCompID=EXEC`
`//0 - infinitive autoreconnect`
`sessions.initiatorS.autoreconnectAttempts=``0`
`sessions.initiatorS.autoreconnectDelayInMs=``5000`
` `
`## Session acceptorS`
`sessions.acceptorS.sessionType=acceptor`
`sessions.acceptorS.senderCompID=EXEC`
`sessions.acceptorS.targetCompID=BANZAI`