FIX Antenna Java

60 阅读2分钟

FIX Antenna Java是一种高性能的Java FIX引擎,用于支持金融交易中的FIX协议。以下是一些FIX Antenna Java使用事例:

  1. 连接到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();
    }
}
  1. 发送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);
    }
}
  1. 接收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消息。

  1. 解析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`

参考链接:fixantenna.com/fix-antenna…